Loading presentation...

Present Remotely

Send the link below via email or IM

Copy

Present to your audience

Start remote presentation

  • Invited audience members will follow you as you navigate and present
  • People invited to a presentation do not need a Prezi account
  • This link expires 10 minutes after you close the presentation
  • A maximum of 30 users can follow your presentation
  • Learn more about this feature in our knowledge base article

Do you really want to delete this prezi?

Neither you, nor the coeditors you shared it with will be able to recover it again.

DeleteCancel

Make your likes visible on Facebook?

Connect your Facebook account to Prezi and let your likes appear on your timeline.
You can change this under Settings & Account at any time.

No, thanks

Optimización SQL Server 2012 Cap. 1

Capítulo 1 del curso de optimización de consultas en SQL Server 2012
by

Iván Trujillo

on 29 June 2013

Comments (0)

Please log in to add your comment.

Report abuse

Transcript of Optimización SQL Server 2012 Cap. 1

¿Qué sucede cuando ejecutamos
una consulta en SQL Server 2012?

Contenido
Planes de ejecución
Plan de ejecución gráfico
Planes de ejecución en texto y XML
Planes complejos
Control de planes de ejecución con sugerencias
Cursores

Optimizador de consultas
Plan de ejecución estimado
Motor relacional
Motor de almacenamiento

Query parsing
Responsable de verificar que una consulta se encuentre correctamente escrita
Si la verificación falla, por ejemplo, al escribir SEELCT en vez de SELECT la interpretación se detiene y se envía un error a la fuente de la consulta
La salida del Query Parser se llama Parse Tree o Query Tree
Un Parse Tree representa los pasos lógicos a seguir para ejecutar el query
Sólo las consultas de DML pueden optimizarse y no así las de DDL porque unicamente existe un modo correcto de, por ejemplo, crear o eliminar una tabla de la base de datos
Algebrizer
Query execution
Plan de ejecución actual
Plan Cache*
*En versiones anteriores se llamaba procedure cache
Planes de ejecución
DBCC FREEPROCCACHE
SHOWPLAN_ALL
SHOWPLAN_TEXT
STATISTICS PROFILE
SHOWPLAN_XML
STATISTICS_XML
GRANT SHOWPLAN TO [USERNAME]
Se ejecutan diferentes procesos a nivel de:
Encargado de resolver los nombres de objetos, tablas y columnas usadas en la consulta
Identifica el tipo de dato de forma individual para cada columna
Localiza las funciones de agregado (Aggregate Binding)
Resuelve los alias y sinónimos
Product.Person causará un error que detendrá todo el proceso de optimización
Query Processor Tree es la salida del Algebrizer al cual se le obtiene el hash y pemite identificar si ya existe un plan de ejecución en el plan cache evitando su regeneración
Query Optimizer
Es un módulo de SQL Server que modela la forma en que el motor relacional de la base de datos opera
Utiliza para esto:
Estadísticas de índices y columnas
Combina los Query Processor Tree y las Estadísticas para generar un plan de ejecución
Decide si es conveniente o no utilizar índices, qué tipo de joins debe ejecutar
Determina basado en diversos cálculos el costo de los diferentes planes de ejecución posible y selecciona el que considera tendrá el menor costo en CPU e I/O
Como éste proceso es intensivo en recursos y si detecta que el determinar el mejor plan tomará mucho tiempo decide emplear el peor de los planes en lugar de consumir tiempo y recursos en encontrar la mejor alternativa
Full transcript