Frage

In Oracle gibt es eine Ansicht V $ SQLAREA genannt, dass die Listen Statistiken über gemeinsam genutzten Bereich SQL und enthält eine Zeile pro SQL-Zeichenfolge. Es liefert statistische Daten über SQL-Anweisungen, die im Speicher sind, analysiert und zur Ausführung bereit.

Es gibt eine Spalte -ROWS_PROCESSED dass summiert die Gesamtzahl der Zeilen im Namen dieser SQL-Anweisung verarbeitet wird.

Ich bin für Sicherheiten Informationen in SQL Server 2005 an.

sah ich in einigen der DMV (wie sys.dm_exec_query_stats), aber ich habe nichts im Zusammenhang gefunden.

@@ ROWCOUNT wird mir nicht sinnvoll sein, da ich inkrementelle Statistiken Informationen wünschen, dass die rows_processed der oberen cpu / io / Ausführungs-Verbrauch Abfragen in der Datenbank summieren wird.

Ich würde jede mögliche Hilfe in Bezug auf das Thema zu schätzen wissen.

Vielen Dank im Voraus,

Roni.


Ich sehe, dass, wenn ich die folgende Abfrage abzufragen, erhalte ich den Query Plan in XML.

Innerhalb des XML-Plan Code, gibt es einen „EstimateRows“ Teil mit einer Zahl, die Korrelate der Anzahl der Schätzung Zeilen der Abfrage.

Ich bin von der Möglichkeit denken die query_plan Spalte substr nur die obigen Informationen retreive (wenn ich es in einigen Systemansichten / Tabellen finden würde).

Wo kann ich die tatsächliche Anzahl der Zeilen der Abfrage finden? Wo wird es gespeichert?

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;
War es hilfreich?

Lösung

Es gibt keine direkte Entsprechung besonders für rowcounts soweit ich weiß. Die entsprechenden DMVs verfolgen IO Kosten, die verwendet wird, indiziert zu zeigen, fehlt, teuerste Abfragen usw.

Dies wird Ihnen für aktuelle Sitzungen pro SQL-Anweisung Statistik. YMMV. Ich habe es nur zusammen, basierend auf Skripten habe ich rumliegen

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

sind meine Skripte basierend auf den Verbindungen I hier erwähnt

Andere Tipps

Sie können die Systemvariable verwenden @@ rowcount die Anzahl der Datensätze von letzter Anweisung betroffenen kennen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top