Skip to main Content
Artículo

¿Cuáles son las principales desventajas de la indexación en SQL Server?

Global Knowledge
  • Fecha: 10 September, 2021

El procesamiento de transacciones en línea requiere la capacidad de añadir y eliminar datos, modificar los datos seleccionados y recuperarlos rápidamente. Indexar estos datos puede parecer una solución obvia. Con múltiples índices para categorizar y organizar la información a mano, el análisis y la recuperación de los datos debería ser, en teoría, mucho más fácil.

Sin embargo, el impacto negativo de indexar estos datos puede verse de múltiples maneras.

Mejora del rendimiento general de las consultas

La necesidad constante de mantener los datos precisos e indexados provoca una competencia dentro de la tabla de datos. Las funciones se ejecutan constantemente para mantener los números actualizados, mientras que la indexación analiza estos datos para ordenarlos. En miles de filas de datos, estos procesos pueden consumir demasiado almacenamiento y afectar al rendimiento general. Las cifras de escalabilidad de SQL Server muestran que cada clúster utiliza 50 instancias de almacenamiento SMB o 25 instancias de almacenamiento SAN.

Además, cuando los datos se indexan, el proceso de indexación puede ocupar espacio de almacenamiento adicional. Todos los datos que no forman parte de un índice de datos en clúster necesitan ahora su propio espacio de almacenamiento. Esta necesidad constante de espacio adicional, puede convertirse rápidamente en un grave problema de almacenamiento para las empresas que indexan muchos datos.

Técnicas de optimización de consultas en SQL Server

Una forma sencilla de mejorar el rendimiento de las consultas es identificar aquellas que consumen una cantidad excesiva de recursos. Una vez identificadas estas consultas problemáticas, se puede analizar la ejecución de la consulta para determinar si su rendimiento es deficiente todo el tiempo o sólo en determinadas situaciones.

Una vez realizado este análisis, debería quedar clara la causa. Tanto si la consulta está mal diseñada, como si está limitada por el hardware existente, bloqueada por otra consulta, si utiliza datos sesgados para su procesamiento o si está mal estructurada, hay soluciones disponibles para resolver el problema. Estas soluciones pueden optimizar cada consulta problemática y ayudar a que todo el servidor SQL funcione de forma óptima.

Trucos de SQL y consejos de rendimiento

Un servidor SQL tiene contadores de rendimiento incorporados que facilitan el análisis de la cantidad de memoria utilizada.

Los expertos en gestión de bases de datos coinciden en que la memoria disponible es el recurso más valioso para un servidor SQL que necesita un rendimiento óptimo. Por lo tanto, el seguimiento del uso de la memoria a través de un contador de rendimiento le ayuda a evaluar si la falta de memoria está afectando al rendimiento general. Estos datos se pueden ver a través del Monitor de Rendimiento o de la Vista de Gestión Dinámica (DMV), ambos integrados en el servidor. También hay múltiples contadores de rendimiento incorporados para elegir, incluyendo:

  • Escrituras de páginas por segundo: Controla el número de páginas escritas en el disco
  • Escrituras perezosas: Sigue el uso del proceso Lazy Writer, que mueve las páginas sucias del buffer al disco
  • Concesiones de memoria pendientes: Indica el número de procesos que esperan una concesión de memoria del espacio de trabajo cada segundo

Mejora del rendimiento de la indexación SQL

El uso de técnicas de gestión dinámica para evaluar la eficacia de cualquier cambio realizado en la base de datos puede ayudarle a identificar los problemas antes de que se conviertan en problemas mayores. Dentro del DMV, puede supervisar qué hilos de datos están en espera con el servidor. Gracias al sistema de seguimiento de esperas integrado en el servidor, puede supervisar fácilmente cada hilo en ejecución y ver el registro de los recursos que el hilo está esperando. Los tipos de espera que tienen más probabilidades de causar problemas más grandes pueden incluir:

  • Esperas de semáforos de recursos: Suelen producirse por falta de memoria, lo que hace que las consultas esperen un tiempo excesivo o que falten datos e índices dentro de la cadena de consulta.
  • Esperas de paquetes Cx: Indican un problema de configuración, probablemente en el ajuste del umbral de coste del paralelismo (CTfP).

Aunque hay desventajas en la indexación en un SQL Server, la indexación se puede configurar adecuadamente dentro de la base de datos. Esto significa que se puede obtener un rendimiento óptimo mientras se utilizan los sistemas OLTP de SQL Server.

Más información

Siquieres saber más sobre SQL Server, echa un vistazo a nuestros cursos de Microsoft SQL Server.

Fabricantes relacionados: