Domanda

In Oracle, c'è una vista chiamata V $ SQLAREA che elenca le statistiche sulla zona SQL in comune e contiene una riga per ogni stringa SQL. Fornisce statistiche su istruzioni SQL che sono nella memoria, analizzato, e pronto per l'esecuzione.

C'è una colonna -ROWS_PROCESSED che le somme il numero totale di righe elaborate a nome di questa istruzione SQL.

sto cercando informazioni collaterali in SQLSERVER del 2005.

Ho guardato in alcune delle DMV del (come sys.dm_exec_query_stats), ma non ho trovato nulla in relazione.

@@ ROWCOUNT non sarà utile per me, come io voglio incrementale informazioni statistiche che sommerà il rows_processed della parte superiore CPU / IO / esecuzione di query di consumo nel database.

Gradirei qualsiasi aiuto per quanto riguarda l'argomento.

Grazie in anticipo,

Roni.


Ho visto che quando mi interrogo la seguente query, ricevo il piano di query in XML.

all'interno del codice piano XML, c'è una parte "EstimateRows" con un numero che correla il numero di righe di stima della query.

Sto pensando la possibilità di substr colonna query_plan per recuperarne solo le informazioni di cui sopra (a meno che non avrei trovato in alcune sull'impianto Visto / tabelle).

Dove posso trovare il numero effettivo di righe della query? Dove è conservato?

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;
È stato utile?

Soluzione

Non c'è un equivalente diretto soprattutto per rowcounts per quanto ne so. Le viste a gestione dinamica relative traccia costo IO che viene utilizzato per mostrare mancanti indicizzati, più costoso query etc

Questo vi darà Statistiche per singola istruzione SQL per le sessioni in corso. YMMV:. Ho appena messo insieme basato su script che ho in giro

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

I miei script si basano sui link I menzionato qui

Altri suggerimenti

È possibile utilizzare la variabile di sistema @@ rowcount di conoscere il numero di record coinvolti dalla ultima dichiarazione.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top