Domanda

Domanda semplice, ma non ho trovato una buona spiegazione su Google. Quando si utilizza Set Statistics IO ON, le letture logiche e il conteggio delle scansioni vengono forniti nella finestra dei messaggi di Management Studio. Se ho:

tblEsempio, conteggio scansioni 5, letture logiche 20

Cosa significa conteggio delle scansioni?

È stato utile?

Soluzione

Dai libri online

Conteggio scansioni: Numero di scansioni dell'indice o della tabella eseguite.

letture logiche: Numero di pagine lette dalla cache di dati.

letture fisiche: Numero di pagine lette dal disco.

letture a lettura anticipata: Numero di pagine inserite nella cache per la query.

Vedi anche qui: http://technet.microsoft.com/en- us / library / ms184361.aspx

Altri suggerimenti

Per quanto riguarda una "scansione di tabella" significa , il migliore che ho trovato è questo:

  

Conteggio scansioni indica semplicemente quante volte alla tabella o all'indice è stato effettuato l'accesso durante la query. Può essere una scansione completa, una scansione parziale o semplicemente una ricerca.

In altre parole, il conteggio delle scansioni da solo non è informazioni sufficienti per procedere. Devi sapere esattamente quali erano quelle scansioni, quindi dovrai guardare il piano di esecuzione effettivo per maggiori dettagli. In conclusione, non è una metrica molto utile da sola!

Inoltre:

http: // www. eggheadcafe.com/software/aspnet/32171165/set-statistics-io-scan-count-explanation.aspx

  

Sfortunatamente, Conteggio scansioni in questi giorni non è molto informativo . Hm, beh,   se vedi un numero come 19223, probabilmente è possibile accedere alla tabella   attraverso un ciclo nidificato, unisciti più volte.

     

C'è stato un tempo in cui " conteggio scansioni " significava semplicemente " tabella orari accessibile " ;,   ma è stato tanto tempo fa, forse in SQL 6.5. L'unica volta che potresti ottenere   un conteggio delle scansioni con quella definizione di 0 è con una query come ...

select *
from TestA1
where CompanyID = 1
and CompanyID = 2
     

... in cui SQL Server potrebbe essere in grado di concludere che la query non verrà restituita   qualsiasi riga, senza accedere alla tabella.

Se continuare a raccogliere citazioni msdn. Quindi [1] che si ripete in [2]:

  • " Letture logiche
    Questo valore indica il numero totale di accessi alla pagina necessari per elaborare la query. Ogni pagina viene letta dalla cache dei dati, indipendentemente dal fatto che fosse necessario o meno portare quella pagina dal disco nella cache per una determinata lettura . Questo valore è sempre almeno altrettanto grande e di solito maggiore del valore per Letture fisiche. La stessa pagina può essere letta più volte (ad esempio quando una query è guidata da un indice), quindi il conteggio delle letture logiche per una tabella può essere maggiore del numero di pagine in una tabella.

  • Letture fisiche
    Questo valore indica il numero di pagine che sono state lette dal disco; è sempre inferiore o uguale al valore di Letture logiche. Il valore dell'hit ratio della cache buffer, visualizzato da Performance Monitor, viene calcolato dai valori Letture logiche e Letture fisiche come segue:

  • Leggi prima di leggere
    Il valore Read Ahead Reads indica il numero di pagine che sono state lette nella cache utilizzando il meccanismo di lettura anticipata durante l'elaborazione della query. Queste pagine non sono necessariamente utilizzate dalla query. Se alla fine è necessaria una pagina, viene conteggiata una lettura logica ma non una lettura fisica. Un valore alto significa che il valore per Letture fisiche è probabilmente inferiore e il rapporto cache-hit è probabilmente superiore a ... [troncato da vgv8]

  • Conteggio scansioni
    Il valore Conteggio scansione indica il numero di volte in cui è stato effettuato l'accesso alla tabella corrispondente. Le tabelle esterne di un join di loop nidificato hanno un conteggio di scansione di 1. Per le tabelle interne, il conteggio di scansione potrebbe essere il numero di volte "attraverso il loop". che il tavolo era accessibile. Il numero di letture logiche è determinato dalla somma del conteggio scansioni moltiplicato per il numero di pagine a cui si accede su ciascuna scansione. Tuttavia, anche per i join di loop nidificati, il conteggio delle scansioni per la tabella interna potrebbe apparire come 1. SQL Server potrebbe copiare le righe necessarie dalla tabella interna in un piano di lavoro nella cache e utilizzare questo piano di lavoro per accedere alle righe di dati effettive. Quando questo passaggio viene utilizzato nel piano, spesso non vi è alcuna indicazione nell'uscita IO STATISTICA. È necessario utilizzare l'output di STATISTIC TIME, nonché le informazioni sul piano di elaborazione effettivo utilizzato, per determinare il lavoro effettivo coinvolto nell'esecuzione di una query. I join hash e join in genere mostrano il conteggio delle scansioni come 1 per entrambe le tabelle coinvolte nel join, ma questi tipi di join possono comportare una quantità di memoria sostanzialmente maggiore. È possibile controllare il valore del memusage in sysprocesses mentre viene eseguita la query, ma a differenza del valore physical_io, questo non è un contatore cumulativo ed è valido solo per la query attualmente in esecuzione. Al termine di una query, non c'è modo di vedere quanta memoria ha usato. & Quot;

[1]
Capitolo 4. Risoluzione dei problemi relativi alle prestazioni delle query. Monitoraggio delle prestazioni delle query
All'interno di Microsoft & # 174; SQL Server & # 8482; 2005 : ottimizzazione e ottimizzazione delle query
di Kalen Delaney


Editore: Microsoft Press
Data pub: 26 settembre 2007
Stampa ISBN-10: 0-7356-2196-9
Stampa ISBN-13: 978-0-7356-2196-1
Pagine: 448

[2] | Monitoraggio delle prestazioni delle query
Ottimizzazione delle prestazioni della query
Di Ron Soukup, Kalen Delaney
Capitolo 14 da Inside Microsoft SQL Server 7.0, pubblicato da Microsoft Press
http://technet.microsoft.com/en-us/library/cc917719.aspx#ECAA

Ignora conteggio scansioni, non è importante. Concentrati su come ridurre le letture logiche. Basato su http://www.practicalsqldba.com/2013/07 /sql-server-performance-tuning.html.

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