Question

Dans Oracle, il y a une vue appelée V $ SQLAREA que les statistiques sur les listes partagées zone SQL et contient une ligne par chaîne SQL. Il fournit des statistiques sur les instructions SQL qui sont en mémoire, analysable, et prêt pour l'exécution.

Il y a une colonne -ROWS_PROCESSED qui sommes le nombre total de lignes traitées au nom de cette instruction SQL.

Je cherche des informations collatérales SQLServer 2005.

Je regardai dans certains des (comme sys.dm_exec_query_stats) de DMV, mais je n'ai rien trouvé lié.

@@ ROWCOUNT ne sera pas utile pour moi, comme je veux des statistiques supplémentaires des informations qui résumera la rows_processed de la consommation cpu top / io / exécution des requêtes dans la base de données.

J'apprécierait toute aide en ce qui concerne le sujet.

Merci à l'avance,

Roni.


J'ai vu que lorsque je fais une recherche de la requête suivante, je reçois le plan de requête en XML.

A l'intérieur du code de plan XML, il y a une partie « EstimateRows » avec un nombre qui est en corrélation avec le nombre de lignes d'estimation de la requête.

Je pense à la possibilité de substr la colonne query_plan pour récupérer uniquement les informations ci-dessus (à moins que je trouverais dans certaines vues système / tables).

Où puis-je trouver le nombre réel de lignes de la requête? Où est-il stocké?

SELECT 
       case when sql_handle IS NULL
           then ' '
           else ( substring(st.text,(statement_start_offset+2)/2,       
   (case when qs.statement_end_offset = -1         
   then len(convert(nvarchar(MAX),st.text))*2      
   else statement_end_offset    
   end - statement_start_offset) /2  ) )
        end as query_text , 
    query_plan,
 FROM sys.dm_exec_query_stats qs 
CROSS APPLY sys.dm_exec_query_plan(qs.plan_handle)
cross apply sys.dm_exec_sql_text(sql_handle) st;
Était-ce utile?

La solution

Il n'y a pas d'équivalent direct en particulier pour les rowcounts pour autant que je sais. Les DMVs pertinents suivi des coûts IO qui est utilisé pour montrer manquant indexé, le plus cher des requêtes etc

Cela vous donnera les statistiques par instruction SQL pour les sessions en cours. YMMV. Je l'ai juste mis ensemble en fonction des scripts que je l'ai couché autour

SELECT 
    *
FROM 
    sys.dm_exec_query_stats  QS
    CROSS APPLY 
    sys.dm_exec_sql_text(sql_handle) ST

Mes scripts sont basés sur les liens I mentionné ici

Autres conseils

Vous pouvez utiliser la variable système @@ rowcount de connaître le nombre d'enregistrements affectés par la dernière déclaration.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top