Web cast de optimización Sql Server - Arquitectura
1. WebCast de Optimización Sql Server
Arquitectura
Expositor:
Ahias Portillo
elrincondesqlserver@gmail.com
2. Sobre Mi
Arquitecto de Inteligencia de Negocios
Ing. Ahias Portillo, MCT, MCITP DBA, BI
Especialista en inteligencia de negocios y base de datos con mas de 7
años de experiencia, ha desarrollado proyectos para mas de 7 países en
América.
Es un evangelista y conferencista latinoamericano de Sql Server,
actualmente es un miembro activo de PASS.
4. Agenda
• Arquitectura de Sql Server 2012
• Arquitectura de Sql Server 2014
• Procesamiento de Querys
• Descomposición del Query (Query Tree)
• Plan de ejecución
• Resumen de Conceptos
5. Arquitectura de Sql Server 2012
Evento de
Consulta
Query Tree
Cmd Parser
TDS
Optimizador
SNI
Query Plan
TDS
Query
Executor
Sql Server
Interfaces de Red
Planes en
Cache
Administrador
de
Transacciones
Transaction
Log
Data
File
Data
File
Método de
Acceso
Administrador
de Buffer
Datos En
Cache
Buffer Pool
6. Arquitectura General de
Sql Server 2014
TDS Handler and Session Management
Natively Compiled
SPs and Schema
Key
Parser,
Catalog,
Optimizer
Existing SQL
Component
Hekaton
Compiler
T-SQL Query Execution
Hekaton
Component
Query
Interop
T1
T2
T3
Tables
Indexes
Memory Optimized Tables & Indexes
T1
Memory Optimized Table Filegroup
Buffer Pool for Tables & Indexes
SQL Server.exe
T2
Transaction Log
T3
T1
T2
Data Filegroup
T3
Generated
.dll
7. Procesamiento de Querys
Sentencia SQL
Parsing
Parse Tree
Es una
Sentencia
DML
No
Resultado del
Query
Motor de
Almacenamiento
Si
Binding
Algebrized Tree
Optimización del
Query
Ejecución del
Plan
Ejecución del
Query
Resultado del
Query
Motor de
Almacenamiento
9. Descomposición del Query (Tree)
Inicio
1
FROM
Existe
Operador
(JOIN, APPLY,
PIVOT,UNPIVOT)
SI
2
Que Operador?
Join
Apply
Cross
(Producto Cartesiano)
Cross
(Expresiones de Tablas)
Inner
(Filtros)
Outer
(Adición de registros)
NO
Outer
(Adición de registros)
NO
2
Existe
Where?
SI
3
Realizar Filtros Where
10. Descomposición del Query (Tree)
2
Existe
Group BY?
Existe
Having?
5
Select
3
SI
3
Realizar
Group By
(Campos Participantes, Agregaciones)
SI
4
Realizar
Filtros en el Group By
11. Descomposición del Query (Tree)
3
Evaluar
expresiones
Existe
Distinct?
SI
Realizar
Distinct
NO
SI
Existe
Top?
Realizar
Top
NO
SI
Existe
Order By
NO
FIN
6
Realizar Order By
Columnas Especificadas
(Cursor)
12. Plan de ejecución
Chequeo de Sintaxis
(Parsing)
Algebrizer
(Binding)
Estimación de Registros
Hardware
Configuración
SQL
Querys Hints
Resultado
Optimizador
Plan
Ejecusion
Row02
Row03
Row01
Índices
Particionamiento
Filegroups/Files
13. Plan de ejecución
Simplificación
(Query Tree)
Estimación de
Cardinalidad
Trivial Plan
SI
Existe Trivial
Plan?
NO
Faces múltiples de
optimización
1 a N planes de
ejecución
NO
Guardar plan de
Ejecución En Cache
Es posible
procesamiento en
paralelo?
SI
Optimización
Para
Proceso en paralelo
14. Resumen de Conceptos
Sql Server Network Interface (SNI): Es una capa de protocolo que permite
establecer conexión entre el cliente y el servidor. Se compone de un
conjuntos de API que son utilizadas por el motor de base de datos y el SQL
Server Native Client (SNAC)
Este protocolo no es directamente configurable, aunque puede
configurarse la forma en que el cliente y servidor se comunicara.
• Shared Memory: Conexiones Locales.
• TCP/IP: IP y puerto, es el protocolo que mas se utiliza.
15. Resumen de Conceptos
• Tabular Data Stream (TDS): Es un protocolo propietario de Microsoft, una
vez la conexion es realizada por TCP/IP los mensaje enviados son
encapsulados por medio TDS.
• Command Parser: Valida si la sentencia Sql es correcta.
• Optimizador: Es unos de los mas complejos y secretos elemento de Sql
Server, es considerado el elemento mas valioso dentro del motor de base
de datos.
16. Resumen de Conceptos
• Método de acceso: Son un conjunto de API que permiten accede al
almacenamientos de los datos, índices, buffer etc.
• Buffer Manager: Es el encargado de administrar la memoria de Sql Server.
• Estadísticas: Es el corazón de la optimización, contiene información de la
distribución de los datos.
• Selectividad: Es la fracción de registros de una tabla que cumple con los
filtros. También se puede definir el total de filas que retornaría la consulta
dividido entre el numero total de filas de la tabla y se calcula con la
siguiente formula:
• Selectividad= (Filas que cumple el predicado)/(Filas del predecesor)
17. Resumen de Conceptos
• Cardinalidad: Es la cantidad de registros que retorna un query y se define
con la siguiente formula:
• Cardinalidad=Selectividad *#RegistroTabla
• Densidad: Es el numero de duplicados de una columna o conjunto de
columnas .
• Plan de Ejecución: Es el conjunto de pasos que debe realizar el motor
para poder procesar la consulta en proceso.
(ref:http://technet.microsoft.com/en-us/library/cc966419.aspx)