Date post: | 08-Jul-2015 |
Category: |
Technology |
Upload: | ahias-portillo |
View: | 4,404 times |
Download: | 2 times |
Sobre Mi
Arquitecto de Inteligencia de NegociosIng. 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.
Organizadores
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
Arquitectura de Sql Server 2012
Método de Acceso
Administrador de
Transacciones Administrador de Buffer
DataFile
Data File
Transaction Log
Optimizador
Cmd Parser
Query Executor
Query Tree
Query Plan
SNI
Evento de Consulta
Planes en Cache
Datos En Cache
Buffer Pool
Sql ServerInterfaces de Red
TDS
TDS
Arquitectura General de Sql Server 2014
Memory Optimized Table FilegroupData Filegroup
SQL Server.exeMemory Optimized Tables & Indexes
TDS Handler and Session Management
Natively Compiled
SPs and Schema
Buffer Pool for Tables & Indexes
Transaction Log
Query
Interop T1 T3T2
T1 T3T2
Tables
Indexes
T-SQL Query Execution
T1 T3T2
Parser,
Catalog,
Optimizer
Hekaton
Compiler
Hekaton
Component
Key
Existing SQL
Component
Generated
.dll
Procesamiento de Querys
Parsing
Binding
Optimización del Query
Ejecución del Query
Parse Tree
Algebrized Tree
Ejecución del Plan
Sentencia SQL
Resultado del Query
Es una Sentencia
DML
SiMotor de
Almacenamiento
No
Motor de Almacenamiento
Resultado del Query
Descomposición del Query (Tree)
From
Inner
Where
Group By
Select
Having
Order By
Descomposición del Query (Tree)Inicio
1FROM
ExisteOperador
(JOIN, APPLY, PIVOT,UNPIVOT)
2Que Operador?
Join Apply
Cross(Producto Cartesiano)
Inner(Filtros)
Outer(Adición de registros)
Cross(Expresiones de Tablas)
Outer(Adición de registros)
ExisteWhere?
SI
NO
3Realizar Filtros Where
SI
2
NO
Descomposición del Query (Tree)
2
Existe Group BY? 3
RealizarGroup By
(Campos Participantes, Agregaciones)
Existe Having?
4Realizar
Filtros en el Group By5Select
SI
SI
3
Descomposición del Query (Tree)
Evaluar expresiones
Existe Distinct?
RealizarDistinct
Existe Top?
RealizarTop
Existe Order By
SI
SI
6Realizar Order By
Columnas Especificadas (Cursor)
NO
NO
FIN
NO
3
SI
Plan de ejecución
Resultado
Row03
Row02
Row01
SQL
Chequeo de Sintaxis(Parsing)
Estimación de Registros
Optimizador
Algebrizer(Binding)
Plan Ejecusion
Hardware
Configuración
Querys Hints
Índices
Particionamiento
Filegroups/Files
Plan de ejecuciónSimplificación(Query Tree)
Estimación de Cardinalidad
Trivial Plan
Existe Trivial Plan?
Faces múltiples de optimización
1 a N planes de ejecución
Es posible procesamiento en
paralelo?
Optimización Para
Proceso en paralelo
Guardar plan de Ejecución En Cache
SI
SI NO
NO
Resumen de Conceptos
Sql Server Network Interface (SNI): Es una capa de protocolo que permiteestablecer conexión entre el cliente y el servidor. Se compone de unconjuntos de API que son utilizadas por el motor de base de datos y el SQLServer Native Client (SNAC)
Este protocolo no es directamente configurable, aunque puedeconfigurarse 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.
Resumen de Conceptos
• Tabular Data Stream (TDS): Es un protocolo propietario de Microsoft, unavez la conexion es realizada por TCP/IP los mensaje enviados sonencapsulados por medio TDS.
• Command Parser: Valida si la sentencia Sql es correcta.
• Optimizador: Es unos de los mas complejos y secretos elemento de SqlServer, es considerado el elemento mas valioso dentro del motor de basede datos.
Resumen de Conceptos
• Método de acceso: Son un conjunto de API que permiten accede alalmacenamientos 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 ladistribución de los datos.
• Selectividad: Es la fracción de registros de una tabla que cumple con losfiltros. También se puede definir el total de filas que retornaría la consultadividido entre el numero total de filas de la tabla y se calcula con lasiguiente formula:• Selectividad= (Filas que cumple el predicado)/(Filas del predecesor)
Resumen de Conceptos
• Cardinalidad: Es la cantidad de registros que retorna un query y se definecon la siguiente formula:• Cardinalidad=Selectividad *#RegistroTabla
• Densidad: Es el numero de duplicados de una columna o conjunto decolumnas .
• Plan de Ejecución: Es el conjunto de pasos que debe realizar el motorpara poder procesar la consulta en proceso.
(ref:http://technet.microsoft.com/en-us/library/cc966419.aspx)
Preguntas
Comunidad
https://www.facebook.com/groups/elrincondesqlserver/
http://www.youtube.com/user/elrincondesqlserver
http://www.elrincondesqlserver.com/