Sviluppo > Strumenti > Verifiche > Statistiche database > Statistiche Sql Server 

Questa funzione permette di visualizzare le statistiche generate sul database quando il database utilizzato è SQL Server™.

Permette anche di aggiornare le statistiche.

Osservazione importante

Attenzionw, questo tipo di funzionefacilita, via un'interfaccia utente omogenea con il software, il lancio di procedure di gestione riservate ad un DB administrator. E' concepita per essere lanciata da un tale amministratore (chiamato abitualmente DBA).

Per essere utilizzata con profitto, presuppone una conoscenza preliminare del funzionamento dei database e della loro ottimizzazione.

Al contrario, un utilizzo inappropriato della funzione può comportare seri problemi di prestazioni e mettere in pericolo la sicurezza dell'utilizzo del software.

Gestione videata

Questa funzione permette di visualizzare e di generare le statistiche sul database.
Questi elementi sono presentati su due folder: iI primo fornisce l'elenco degli indici e lo stato delle statistiche per ognuno, il secondo fornisce l'elenco dei parametri dei database collegati alla generazione delle statistiche.

Testata

Presentazione

Permette di conoscere le caratteristiche del database utilizzato.

Chiudi

 

Campi

I seguenti campi sono presenti in questo folder :

  • Database (campo BDDNAM)

Nome del database

  • Versione (campo VER)

Numero di versione del database

  • campo VERDES

Descrizione della versione del database

Chiudi

 

Folder Indice

Presentazione

Questo folder presenta l'elenco degli indici e lo stato delle statistiche per ognuno di loro.

Chiudi

 

Campi

I seguenti campi sono presenti in questo folder :

Riquadro

  • Da elaborare (campo PROFLG)

Permette di definire se la riga deve essere elaborata in generazione delle statistiche, tramite i bottoni in fondo alle videata corrispondente.

  • Tabella (campo TAB)

Nome della tabella nel database

  • Indice (campo INDEX)

Nome dell'indice nel database

  • Numero righe (campo NBRLIN)

Numero di righe della tabella corrispondente all'indice (count)

  • Statistiche automatiche (campo STTAUT)

Indica se le statistiche sono generate automaticamente per l'indice.

Corrisponde al parametro database UPDATE STATISTICS automatico per l'indice.

  • Statistiche generate (campo STTFLG)

Indica se sono generate delle statistiche valide nel database

  • Data ultima analisi (campo STTDAT)

Data dell'ultima analisi delle statistiche

  • campo STTHOU

Ora dell'ultima analisi delle statistiche

Chiudi

 

E' possibile generare le statistiche:

    • per un indice tramite tasto destro,
    • per tutti gli indici o una parte degli indici selezionando le righe desiderate prima di attivare l'azione tramite il bottone in basso alla videata.

Funzioni accessibili tramite click destro sul riquadro

Si a tutto il resto

Quando si ha un riquadro di inserimento di scelte multiple con una scelta di risposta Si / No su ogni riga, questa funzione permette di rispondere Si a tutte le righe a partire dalla riga corrente.

No a tutto il resto

Quando si ha un riquadro di inserimento di scelte multiple con una scelta di risposta Si / No su ogni riga, questa funzione permette di rispondere No a tutte le righe a partire dalla riga corrente.

Attualizza riga

Permette di aggiornare la visualizzazione della riga corrente del riquadro

Genera per la riga

Permette di generare le statistiche per la riga corrente del riquadro

 

Chiudi

 

Folder Database

Presentazione

Questo folder presenta l'elenco dei parameti del database collegati alla generazione automatica delle statistiche.

Chiudi

 

Campi

I seguenti campi sono presenti in questo folder :

Riquadro Parametri statistiche

  • Parametro (campo PAR)

Visualizza le opzioni posizionate sul database per la generazione automatica delle statistiche.

Le opzioni sono le seguenti

Opzione

Descrizione

auto create statistics

Se vera, le statistiche mancanti, precettate da una richiesta per l'ottimizzazione, vengono create automaticamente durante l'ottimizzazione.

auto update statistics

Se vera, le statistiche non aggiornate, precettate da una richiesta per l'ottimizzazione, vengono create automaticamente durante l'ottimizzazione.

  • Valore (campo PARVAL)

 

Chiudi

 

Non è possibile qui agire su questi valori.

Bottoni specifici

Questo bottone, accessibile anche con tasto funzionale , permette di effettuare il refresh dei folder.

Permette di generare le statistiche per tutte le righe selezionate nel riquadro del folder Indice

Chiarimenti sulle statistiche Sql Server

Quando devono essere aggiornate le statistiche?

SQL Server conserva le statistiche di distribuzione dei valori di chiave in ogni indice, e utilizza queste statistiche per determinare gli indici da utilizzare nell'elaborazione delle query.

Può essere utile aggiornare le statistiche se

    • sono apportate delle modifiche significative ai valori della chiave dell'indice,
    • una grande parte dei dati di una colonna indicizzata è stata aggiunta, modificata o eliminata (in altre parole, se si pensa che la distribuzione dei valori di chiave sia cambiata)

Perchè?

Microsoft® SQL Server™ permette di creare le informazioni statistiche in merito alla distribuzione dei valori in una colonna che deve essere creata. Queste statistiche possono essere utilizzate dal processo delle query al fine di determinare la strategia ottimale di valutazione di una query. Quando si crea un indice, SQL Server memorizza automaticamente le informazioni statistiche relative alla distribuzione dei valori nella o nelle colonne indicizzate. L'ottimizzatore di query di SQL Server utilizza queste statistiche per stimare il costo di utilizzo dell'indice per una query. D'altra parte, se l'opzione di database AUTO_CREATE_STATISTICS è attivata (ON), cosa che avviene di default, SQL Server crea automaticamente delle statistiche per le colonne senza indice utilizzate in un predicato

Se i dati di una colonna cambiano, le statistiche dell'indice e della colonna rischiano di diventare obsolete e di portare l'ottimizzatore delle query a prendere delle decisioni poco oculate sul modo di elaborare una query. Per esempio, se si crea una tabella con una colonna indicizzata e con 1 000 righe di dati, tutte comportanti dei valori univoci nella colonna indicizzata, l'ottimizzatore di query considera che la colonna indicizzata costituisca una "buona" soluzione per raccogliere i dati per una query. Se si aggiornano i dati di una colonna creando numerosi valori duplicati, la colonna non sarà più un candidato ideale per essere utilizza in una query. Ciononostante, l'ottimizzatore di query la considera sempre come un candidato appropriato secondo le statistiche di distribuzione obsolete dell'indice, che erano basate sui dati prima dell'aggiornamento.

A partire da quel momento SQL Server aggiorna automaticamente le informazioni statistiche in maniera regolare, man mano che i dati delle tabelle vengono modificati. La campionatura si effettua in maniera aleatoria tra le pagine di dati e proviene dalla tabella o dal più piccolo indice non ordinato in cluster sulle colonne necessarie alle statistiche. In seguito alla lettura di una pagina di dati dal disco, tutte le righe della pagina sono utilizzate per aggiornare le informazioni statistiche. La frequenza dell'aggiornamento di quest'ultime è funzione del volume di dati presenti nella colonna o nell'indice e della quantità di dati variabili.

SQL Server garantisce sempre la campionatura di un numero minimo di righe. Le tabelle di dimensione inferiore a 8 Mb sono sempre oggetto di un'analisi completa con lo scopo di elaborare le statistiche.

Il costo di tale aggiornamento automatico delle statistiche è minimizzato in ragione della campionatura dei dati; questi ultimi non vengono analizzati tutti.

Informazioni tecniche

Tutte le informazioni sulle tabelle, indici e statistiche sono lette direttamente nel database a partire dalle tabelle e viste Sql Server:

    • sysusers
    • sysobjects
    • sysindexes

Le date delle statistiche sono ottenute con l'aiuto della funzione STATS_DATE

Le informazioni sulla generazione automatica delle statistiche sugli indici sono ottenute con l'aiuto della procedura sp_autostats

Le informazioni sulla gestione automatica delle statistiche sul database sono ottenute con l'aiuto della procedura sp_dboption

Le statistiche sono aggiornate con l'istruzione UPDATE STATISTICS

Messaggi di errore

Non esistono messaggi di errore ad eccezione di quelli generici.

Tabelle utilizzate

SEEREFERTTO Riferirsi alla documentazione di Implementazione