2009-01-12 3 views
2

J'ai une requête SQL Server 2000 qui effectue un balayage d'index en cluster et affiche un très grand nombre de lignes. Pour une table où j'ai 260.000 enregistrements, le nombre réel de lignes affichées dans l'exécution du plan est ... 34.000.000.SQL Server 2000 - Qu'est-ce que le "nombre réel de lignes"?

Est-ce que cela a du sens? Qu'est-ce que je ne comprends pas?

Merci.

Répondre

3

Les valeurs affichées dans le plan d'exécution sont des estimations basées sur des statistiques. Les requêtes normales telles que:

SELECT COUNT(*) FROM Table 

sont 100% précises pour votre transaction *.

Voici un related question.

* Les cas de contours peuvent varier en fonction du niveau d'isolation de la transaction.


Plus d'informations sur les statistiques:

0

Si le nombre de vos lignes sont hors du plan de requête, vous devez mettre à jour les statistiques ou encore l'optimiseur de requête choisira peut-être le mauvais plan. En outre, une analyse d'index en cluster ressemble presque à une analyse de table ... essayez de corriger les index pour obtenir une recherche d'index en cluster ou au moins une recherche d'index.

0

Mais ... Si c'est le "Réel Nombre de lignes" ... pourquoi est-ce basé sur des statistiques?

Je suppose que le estimé Nombre de rangées est utilisé lors de la construction du plan de requête (et les ramasser des statistiques à ce moment-là) et le nombre réel de lignes quelques informations supplémentaires ajoutés après l'exécution de la requête, pour le débogage d'utilisateur et fins de réglage?

N'est-ce pas?

Questions connexes