Optimizando el desempeño de SQL Server

Slides:



Advertisements
Presentaciones similares
Mejorando la forma de construir datawarehouses usando Microsoft SQL Server 2008 Integration Services.
Advertisements

Las Copias de seguridad en
Arquitectura y Sistemas Operativos Gestión de Memoria Parte 1 1 Gestión de Memoria – Parte 1 Agenda Parte 1 –RequisitosRequisitos –EvoluciónEvolución –Carga.
10 Cosas que Debes y NO debes de hacer en una base de datos SQL Server Prácticas comunes que pueden o no beneficiar al motor de base de datos.
Septiembre 12, 2015 Bogotá, Colombia #sqlsatBogota.
Desventajas Poco eficiente: lectura y escritura en disco es lenta Necesita otro mecanismo de sincronización para acceder a los datos Son los procesos.
Optimización de Consultas Distribuidas. ÍNDICE Definiciones básicas Modelo de costo Estadísticas de la base de datos Optimización centralizada de consultas.
G ESTIÓN DE LA MEMORIA Paginación y segmentación.
Delayed Durability, desde la perspectiva de una Aplicación Alejandro Cordero Correo electrónico: Twitter:
Bienvenidos!!!#SQLSatMexCi ty. M. IT. Enrique Argüelles Añorve Ing. De Soporte en Microsoft Usando Performance.
SQL2014 Transacciones Diferidas - el AS bajo la manga Alejandro Cordero – Database Consultant - Pythian Correo electrónico: Twitter:
Vinculación de Instrucciones y Datos a Memoria Tiempo de compilación: si la dirección de memoria se conoce a priori, se puede generar código absoluto;
Sistemas Operativos ➢ Que son? ➢ Que hacen? ➢ Por Juan O. Tejeda.
Universidad de Costa Rica Cálculo de Almacenamiento Adm. De Bases de Datos Bach.German Olivares G.
Paginamiento / Paging Sistemas Operativos 16 de Septiembre de 2011.
 Herramientas de Administración de Bases de Datos  Oracle Universal Installer  Instalación no Interactiva con Archivos de Respuesta  Asistente de.
PARTICIONES EN UN DISCO DURO Diagnóstico y Mantenimiento INTE 3020 Elena López 15/11/2013.
Sponsors Agradecimiento especial Mejores prácticas de SQL Server para SharePoint On Premise Alberto De Rossi MCP / MCT SQL Server.
UNIDAD 7.
CC Bases de Datos Otoño Clase 8: SQL (IV) Acceso programático
Canales Oficiales SQL PASS GDL No tenemos  Ya merito 
MERCADEO ELECTRONICO ALOJAMIENTO WEB.
BASE DE DATOS.
Repaso.
DEADLOCKS Arquitectura y Sistemas Operativos
Aidan Hogan CC Bases de Datos Primavera 2016 Clase 11: Integridad, Transacciones, ACID (I) Aidan Hogan
#606 | SANTIAGO 2017 Abril 1, 2017 Santiago, Chile #sqlsatSantiago.
Conceptos a Base de Datos
Curso Computación-Tecnología Médica
Hardware de Computador
#606 | SANTIAGO 2017 Abril 1, 2017 Santiago, Chile #sqlsatSantiago.
CC Bases de Datos Primavera Clase 12: Implementación de ACID
Ultima actualización 23/08/13
Introducción a los Sistemas Operativos
Teoría de Sistemas Operativos Archivos
Uso de herramientas gratuitas para el diagnostic de desempeño
POLITECNICO INDES COROZAL
ADMINISTRACíON DE LA MEMORIA EN SISTEMAS RECIENTES
Memoria Introducción.
Mayo 13, 2017 Bogotá, Colombia #sqlsatBogota.
ADMINISTRACION DE LA MEMORIA
Lenguajes de programación
presentación de LA VIRTUALIZACION
Unidad 7: Nivel Interno Algunos Conceptos Importantes
TÍTULO DEL PROYECTO Plataformas Computacionales de Entrenamiento, Experimentación, Gestión y Mitigación de Ataques a la Ciberseguridad.
SQL Data Warehouse, casos de uso, escalabilidad, cargas de datos
Performance en Bases de Datos
Conalep plantel Zitácuaro 240
Qué son y características generales
MEMORIAS. Alba Lus, Esther Escobar, Laura Hierro, Raquel Fdez.
Base de Datos II 2da Parte. Propiedad ACID  La propiedad ACIDa es una carácterística de un DBMS para poder compartir datos en forma segura.  A :
Diagnostico Avanzado del Rendimiento en SQL Server
El desafío de organizar la información
.La Computadora. La computadora es una maquina capaz de realizar y controla a gran velocidad cálculos y procesos complicados que requieren una toma.
Migración de BD SQL Server hacia Azure SQLDB
Power BI, Sharepoint y SQL Server, una gran conversación
Nuevas Características de SQL Server 2016
Noviembre18, 2017 Concepción, Chile #sqlsatconce.
Análisis de la Salud de una Base de Datos SQL Server
Compartir Informacion Compartir Hardware y Software
Pipelining Peligros de control.
Sistemas Operativos Componentes Ejecutivo de Tiempo Real.
“Ponemos la mejor Tecnología al alcance de TI”
BASES DE DATOS II.
Estructura de Sistemas Operativos CAMPOS CHACALTANA, ANTHONY.
Estructura de los sistemas Operativos 1. Componentes de un sistema operativo  Administración de procesos  Administración de memoria  Subsistema de Entrada/Salida.
ESTRUCTURA DE SISTEMAS OPERATIVOS Carbajal Rojas karla.
CC Bases de Datos Otoño Clase 10: SQL: Vistas y Disparadores
Procesos Lic. Gonzalo Pastor.
Optimización de consultas en SQL Server Crux Consultores, 2017.
Transcripción de la presentación:

Optimizando el desempeño de SQL Server Isabel de la Barra Colaboradora de Pass Chile Trainer Empresa: Netsolutions Twitter: Email: Isabel.delabarra@netsolutions.cl Blog: idelabar.blogspot.com

Patrocinadores del SQL Saturday PASS use Only Silver Sponsor Bronze Sponsor 17-11-2018 | SQL Saturday #472 – Santiago, Chile SQL Saturday #472 – Santiago, Chile

Optimización a Nivel de Sistema Operativo Agenda Optimización a Nivel de Sistema Operativo Optimización a Nivel de Bases de datos Optimización a Nivel de Consultas 17-11-2018 | SQL Saturday #472 – Santiago, Chile SQL Saturday #472 – Santiago, Chile

Sistema Operativo 17-11-2018 | SQL Saturday #472 – Santiago, Chile

¿Problemas de Performance? 17-11-2018 | SQL Saturday #472 – Santiago, Chile SQL Saturday #472 – Santiago, Chile

Cuellos de Botella Una rápida forma de identificar si tenemos contención por algún recurso es ver como estan las colas de procesos esperando por ese recurso. CPU: System: Processor Queue Length Disco: PhysicalDisk: Current Disk Queue Length Red: Network Interface: Output Queue Length Memoria: ????? Queue Length 17-11-2018 | SQL Saturday #472 – Santiago, Chile SQL Saturday #472 – Santiago, Chile

Memoria SQL Server intentará tomar toda la memoria disponible Si otros servicios comparten la máquina pueden quedar asfixiados Si compartes otros servicios en la misma maquina, limita la memoria de SQL Server 17-11-2018 | SQL Saturday #472 – Santiago, Chile SQL Saturday #472 – Santiago, Chile

Memoria Paging File: %Usage Paging File: %Usage Peak 17-11-2018 | SQL Saturday #472 – Santiago, Chile SQL Saturday #472 – Santiago, Chile

Archivo de Paginación Si necesitamos más memoria el archivo de paginación crecerá. Cuando un archiva de paginación crece, deja congelados los procesos. Si tenemos alta disponibilidad los servicios pueden pasar a otro nodo. Mucha paginación implica mucha I/O de Disco. 17-11-2018 | SQL Saturday #472 – Santiago, Chile SQL Saturday #472 – Santiago, Chile

Archivo de Paginación Tamaño entre 1 a 2 veces la memoria física. Inicial y Máximo Iguales!!!! Disco Físico Dedicado. No crecer  No fragmentación No crecer  Evitar Failovers por crecimiento. 17-11-2018 | SQL Saturday #472 – Santiago, Chile SQL Saturday #472 – Santiago, Chile

Virtualizando SQL Server SQL Server puede ser virtualizado pero con ciertas condiciones. Discos directamente atachados, no usar discos virtuales. No sacar Snapshots No revender procesador a mas de 2x1 No usar memoria dinámica. 17-11-2018 | SQL Saturday #472 – Santiago, Chile SQL Saturday #472 – Santiago, Chile

Bases de Datos 17-11-2018 | SQL Saturday #472 – Santiago, Chile

Archivos de bases de datos Separar los archivos de Bases de Datos de los Transactions Logs Priorizar operaciones de lectura en archivos de Bases de Datos Priorizar operaciones de escritura en transactions Logs Separar en disco aparte archivos de tempdb Separar archive de paginación de los archivos de SQL Server 17-11-2018 | SQL Saturday #472 – Santiago, Chile SQL Saturday #472 – Santiago, Chile

Recovery Model Modo Simple Modo Full Modo Bulk-Logged Recuperacion solo al ultimo full No requiere respaldo Modo Full Requiere respaldo del transaction log Recuperacion hasta la ultima transaccion Recuperacion en un punto del tiempo Modo Bulk-Logged Menos I/O que full Menos espacio que Full Requiere Respaldo 17-11-2018 | SQL Saturday #472 – Santiago, Chile SQL Saturday #472 – Santiago, Chile

Recovery Model Las mejores practicas dicen que debemos usar recovery model full… pero …. DEBEMOS RESPALDAR EL TRANSACTION LOG. Si no se respalda el archivo de log crecera y crecera. Algunos DBA dejan un job que los trunca y hace shrink en forma periodica, por que guardar lo que no vamos a conservar? 17-11-2018 | SQL Saturday #472 – Santiago, Chile SQL Saturday #472 – Santiago, Chile

Compresión de Respaldos 17-11-2018 | SQL Saturday #472 – Santiago, Chile SQL Saturday #472 – Santiago, Chile

17-11-2018 | SQL Saturday #472 – Santiago, Chile SQL Saturday #472 – Santiago, Chile

Autogrown y AutoShrink Como una forma de “ahorrar” espacio en disco algunos DBA tienen activado AutoShrink o ejecutan un job que hace el Shrink de la base Problemas: Fragmentacion de los archivos al crecer de a pedacitos Las transacciones quedan en espera cuando el archive esta creciendo Mayor I/O durante el crecimiento Duración mayor de los procesos. 17-11-2018 | SQL Saturday #472 – Santiago, Chile SQL Saturday #472 – Santiago, Chile

17-11-2018 | SQL Saturday #472 – Santiago, Chile SQL Saturday #472 – Santiago, Chile

17-11-2018 | SQL Saturday #472 – Santiago, Chile SQL Saturday #472 – Santiago, Chile

17-11-2018 | SQL Saturday #472 – Santiago, Chile SQL Saturday #472 – Santiago, Chile

Memory Buffer y Buffer Cache Cuando se ejecuta una query la primera vez esta se parsea, optimiza, compila y se ejecuta leyendo la información de disco. La primera ejecución demora mas tiempo que las veces siguientes. Al reiniciar SQL Server se elimina la información en memoria. 17-11-2018 | SQL Saturday #472 – Santiago, Chile SQL Saturday #472 – Santiago, Chile

Consultas 17-11-2018 | SQL Saturday #472 – Santiago, Chile

Bloqueos Los bloqueos son normales en las transacciones, ellos aseguran que los datos no están siendo modificados mientras se realiza una transacción No es deseable que estos bloqueos duren mucho tiempo. 17-11-2018 | SQL Saturday #472 – Santiago, Chile SQL Saturday #472 – Santiago, Chile

DeadLocks Usar las tablas en el mismo orden en las distintas transacciones. Evitar hacer selects de muchos datos dentro de la transacción. No esperar datos o respuesta de usuario dentro de una transacción. Usar WITH (NOLOCK) si no se modificaran los datos Usar índices y paralelismo en consultas lentas Granted Lock Waiting Lock Resource 1 Resource 2 Task 1 Task 2 17-11-2018 | SQL Saturday #472 – Santiago, Chile SQL Saturday #472 – Santiago, Chile

Identificando DeadLocks SQL Server automáticamente los detecta y “mata” la transacción menos costosa devolviendo Error 1205. SQL Server: Locks: Number of DeadLocks este valor debiera estar siempre en 0, si es mayor hay que investigar con profiler que transacciones están causando los deadlocks 17-11-2018 | SQL Saturday #472 – Santiago, Chile SQL Saturday #472 – Santiago, Chile

Deadlocks en Profiler 17-11-2018 | SQL Saturday #472 – Santiago, Chile

WITH (NOLOCK) 17-11-2018 | SQL Saturday #472 – Santiago, Chile

Paralelismo El ejecutar las consultas grandes distribuyéndola en varios procesadores acelera las consultas La configuración max degree of parallelism puede ser sobreescrita con la opción MAXDOP en la query 17-11-2018 | SQL Saturday #472 – Santiago, Chile SQL Saturday #472 – Santiago, Chile

Paralelismo 17-11-2018 | SQL Saturday #472 – Santiago, Chile

Fragmentacion sys.dm_db_index_physical_stats 17-11-2018 | SQL Saturday #472 – Santiago, Chile SQL Saturday #472 – Santiago, Chile

Page Split 17-11-2018 | SQL Saturday #472 – Santiago, Chile

Fill Factor Cuando SQL Server Crea índices, cada pagina queda cercana al 100% llena No hay espacio para los futuros insert o update Puede causar costosas divisiones de paginas en ciertas tablas Promueve la fragmentación del índice SQL Server Permite especificar la cantidad de espacio libre en las hojas del índice con la opción FILL FACTOR en la definición. Además con PAD INDEX indico que se aplique el mismo factor al resto de las páginas del índice. 17-11-2018 | SQL Saturday #472 – Santiago, Chile SQL Saturday #472 – Santiago, Chile

17-11-2018 | SQL Saturday #472 – Santiago, Chile SQL Saturday #472 – Santiago, Chile

Índices Se organizan en arboles B-Tree Las tablas solo pueden tener un índice clusterizado. Evitar muchos índices en tablas frecuentemente actualizadas Usar muchos índices en tablas con pocas actualizaciones de gran volumen y muy consultada. Usar índices en vistas frecuentemente usadas. Evitar índices en tablas pequeñas. Usar DataBase Engine Tunning Advisor para analizar la falta de índices. 17-11-2018 | SQL Saturday #472 – Santiago, Chile SQL Saturday #472 – Santiago, Chile

Índices Índices que cubren una query incluyendo columnas adicionales mejoran el desempeño. Crear índices no clusterizados en columnas frecuentemente usadas en Joins Mantener las llaves del índice lo mas pequeñas posibles. Usar índices XML en columnas de tipo XML Considerar el orden de las columnas cuando el índice contiene varias columnas (mas único primero) No usar índices en columnas del tipo text, ntext, image, varchar(max), nvarchar(max) y varbinary(max) 17-11-2018 | SQL Saturday #472 – Santiago, Chile SQL Saturday #472 – Santiago, Chile

17-11-2018 | SQL Saturday #472 – Santiago, Chile SQL Saturday #472 – Santiago, Chile

Preguntas ?

Sea cual sea su pasión datos - hay un capítulo virtual para usted! 17-11-2018 | SQL Saturday #472 – Santiago, Chile SQL Saturday #472 – Santiago, Chile

Gracias !!!