|
Los escenarios complejos de
informes, que aparecen frecuentemente en las aplicaciones de
Business Intelligence, extraen las demandas más solicitadas en el
servidor de la base de datos durante la consulta. Cuando estas
consultas acceden a las vistas el rendimiento puede disminuir a
medida que la base de datos asocia dinámicamente la lógica necesaria
para construir el conjunto de resultados de la consulta completo de
los datos de la tabla.
El overhead de esta
operación puede ser considerable, sobre todo para aquellas vistas
que impliquen el procesamiento complejo de gran cantidad de filas,
por ejemplo, grandes grupos de datos o conjuntos multitabla. Dado
que el conjunto resultante no se almacena permanentemente en la base
de datos (con una vista estándar), los futuros intentos de acceso a
la vista pueden incurrir en el coste de la construcción del
resultado cada vez que se ejecute la consulta.
SQL Server 2000 permite potenciar en gran medida el rendimiento
de las consultas accediendo a estas vistas creando un único índice
de clusters en la vista. Cuando se crea un índice así, la vista se
ejecuta y el conjunto de resultados se almacena en la base de datos
de la misma forma en que se almacena un índice de clusters.
Esto materializa efectivamente los resultados de la consulta en
la base de datos. El optimizador de consultas de SQL Server
utilizará el índice de vistas en consultas que no nombren
directamente la vista en la cláusula FROM. Las consultas existentes
pueden sacar partido de la eficacia mejorada de la recuperación de
datos de la vista indexada sin tener que recodificarlos. Para
ciertos tipos de vista esto puede mejorar el rendimiento
exponencialmente.
Desde una perspectiva de sencillez de uso, la implementación de
las vistas indexadas de SQL Server 2000 es única. Los productos de
la competencia que implementan vistas indexadas o materializadas
requieren que se codifiquen consultas que referencien las vistas,
para que las consultas existentes se actualicen con trucos para
forzar que el procesador de consultas reconozca vistas indexadas o
materializadas.
Como ya mencionamos anteriormente, la implementación de las
vistas indexadas de SQL Server 2000 no requiere la recodificación de
consultas, ya que el procesador de consultas de SQL Server reconoce
automáticamente y potencia las vistas indexadas cuando sea necesario
sin intervención por parte de DBA. |