No tienes acceso a esta clase

¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera

Analizar las consultas para crear índices

8/31
Recursos

Aportes 7

Preguntas 4

Ordenar por:

Los aportes, preguntas y respuestas son vitales para aprender en comunidad. Regístrate o inicia sesión para participar.

El análisis de consultas con el plan de ejecución es un tema bastante interesante y bastante amplio, sin embargo solo se ha visto por encima, así que les dejo unos post sobre el tema a quienes les interese conocer un poco mas sobre planes de ejecución.

En este post se explica que es un plan de ejecución y como leerlo(entenderlo) correctamente:
https://www.sqlshack.com/es/planes-de-ejecucion-de-consultas-entendiendo-y-leyendo-los-planes

Este otro post explica cada uno de los elementos que aparecen en el plan de ejecución
https://soportesql.wordpress.com/2016/08/04/12-operaciones-basicas-del-plan-de-ejecucion-de-sql-server/

Espero les sea de ayuda.

Antes de esta clase, tenìa el conocimiento que al agregar columnas en el ìndice era a las que yo utilizaba para filtrar en mi query (where). Pero ahoras sè que es a la columna que deseo mostrar (Select)

Analizar este tipo de consultas es una tarea compleja, es muy importante conocer el fin de la consulta y así poder optimizarla. Importante utilizar las mejores prácticas y una de esas es no utilizar asterisco * en él SELECT.

Creación del índice

CREATE NONCLUSTERED INDEX [IX_STOCKITEMTRANSACTIONS_01]
ON [WAREHOUSE].[STOCKITEMTRANSACTIONS] ([LASTEDITEDBY])
INCLUDE ([STOCKITEMTRANSACTIONID],[STOCKITEMID],[TRANSACTIONTYPEID],[CUSTOMERID],[INVOICEID],[SUPPLIERID],[PURCHASEORDERID],[TRANSACTIONOCCURREDWHEN],[QUANTITY],[LASTEDITEDWHEN])

Lo que puedo entender es identificar la columna que más se consulta y sobre éstas agregarlas al índice.

Cuando ejecuto la consulta del archivo descargado, ya no me sale la advertencia de “Missing Index”, seguramente es porque en las ejecuciones previas hicimos la optimización recomendada en el video previo, y se pierde un poco el seguimiento en el ambiente de prueba local. Sería bueno incluir en el script la desoptimización anterior aplicada, como una especie de deshacer.

Lo que concluyo para ser mas eficientes las consultas es que cada columna que asocie en las operaciones debe ser agregada al índice…

Por lo que entiendo, debería construir índices que suplan las consultas recurrentes que realizo en mi base de datos. al ser subconsultas en alguna parte deben quedar almacenadas, en una base de datos muy grande, si se tienen muchos índices podría ocupar mucho espacio al final resultar ser más un problema que una solución.