Tengo una consulta compleja en una base de datos con malas estadísticas e índices fragmentados. Lo que me deja perplejo es que cuando examino un plan de consulta real obtengo 54 M filas de un escaneo de tabla en una tabla que tiene 23 K filas. Mucho más arriba en el plan de consulta esta tabla se une contra sí misma (solo 260 K filas de 23 K). ¿Cómo es esto posible?¿Cómo puede una exploración de tabla devolver más filas de las que están en la tabla?
Ejecutar algunas otras consultas o reconstruir índices y estadísticas hace que esto desaparezca, solo estoy tratando de entender por qué sucedería esto.
He reproducido esto con SQL 2005 y SQL 2008 R2 en una restauración de la misma base de datos.
Actualización: Sí, este es un plan real. El número de filas es 20039 (no 23 K como se mencionó anteriormente). Este es uno de los nodos más a la derecha.
Hmmm ... ¿se está escaneando la tabla varias veces? –
La tabla está auto unida en la consulta por buenas razones. En el plan de consulta, se escanea dos veces (Escaneo de tabla mencionado anteriormente) y también tres búsquedas de índices en la tabla. – PavelR
¿Este es el plan de ejecución estimado o el plan de ejecución real? – Ryk