Errori e messaggi
Gli eventi nel carico di lavoro che non possono essere ottimizzati producono errori e messaggi, che vengono scritti nel log di ottimizzazione ma non interrompono una sessione di ottimizzazione. Gli errori e i messaggi segnalano condizioni che possono fornire agli utenti informazioni utili sulle sessioni di ottimizzazione, per contribuire a una migliore comprensione del processo di ottimizzazione. Tali informazioni possono consentire agli utenti di modificare i parametri di input sulla base dei risultati di una sessione di ottimizzazione precedente, in modo da utilizzare in modo più efficiente Ottimizzazione guidata motore di database.
Questo tipo di informazioni può risultare particolarmente utile quando si utilizzano grandi carichi di lavoro per ottimizzare database. Ad esempio, un messaggio di errore viene scritto nel log di ottimizzazione se si verifica una delle condizioni seguenti:
- Una tabella temporanea creata dal carico di lavoro non esiste più nel database.
- Una tabella a cui la query fa riferimento non è stata selezionata per l'ottimizzazione.
- Non è stato possibile analizzare l'evento.
Voci del log di ottimizzazione
È possibile utilizzare Ottimizzazione guidata motore di database per scrivere errori e messaggi nel log di ottimizzazione, specificando un valore per l'argomento –e quando si utilizza l'utilità della riga di comando dta. In alternativa, è possibile scegliere Salva log di ottimizzazione nella scheda Generale dell'interfaccia utente grafica (GUI) di Ottimizzazione guidata motore di database. Per ulteriori informazioni sull'utilizzo delle due interfacce utente di Ottimizzazione guidata motore di database, vedere Procedura: Ottimizzazione di un database e Utilità dta.
Se non si specifica alcun nome di file o di tabella per l'argomento -e dell'utilità dta, è possibile utilizzare la GUI per visualizzare le informazioni relative al log di ottimizzazione. A tale scopo, selezionare la scheda Stato durante la sessione di ottimizzazione o al termine di tale sessione. Per ulteriori informazioni, vedere Procedura: Visualizzazione dell'output dell'ottimizzazione.
Il log di ottimizzazione della GUI include le colonne elencate nella tabella seguente.
Colonne log di ottimizzazione
Nome colonna | Descrizione |
---|---|
CategoryID |
Associa il record a un identificatore definito (ID). A ogni istanza dell'errore viene assegnato un ID, ovvero un numero di tre cifre preceduto da un unico carattere. Il prefisso consente di cercare nella tabella del log di ottimizzazione le voci relative a errori di istruzioni e vincoli o errori a livello server. Il carattere di prefisso consente di suddividere i record in base alle categorie seguenti:
|
Event |
Stringa evento, se disponibile. Questa colonna potrebbe essere vuota, poiché determinati messaggi non sono associati ad alcun evento. Una stringa evento corrisponde a un nome di stored procedure, un batch e così via. |
Statement |
Ottimizzazione guidata motore di database analizza l'evento e ottimizza le istruzioni associate all'evento. In questa colonna viene acquisita l'istruzione, se applicabile, correlata al messaggio restituito all'utente. Questa colonna può essere vuota se non è rilevante per il messaggio oppure se il server non è in grado di analizzare un evento. |
Frequency |
Numero di occorrenze di questo record. Il valore predefinito è 1. |
Reason |
Ragione che ha impedito l'ottimizzazione dell'istruzione o dell'evento. Questo messaggio può essere generato dal server, da ODBC o da Ottimizzazione guidata motore di database. |
Nella tabella seguente sono elencati i messaggi che possono essere restituiti per le categorie indicate nella descrizione della colonna CategoryID della tabella precedente.
Errori relativi a istruzioni o al carico di lavoro
ID della categoria | Messaggio del log di ottimizzazione |
---|---|
S001 |
L'istruzione non fa riferimento ad alcuna tabella. |
S002 |
L'istruzione fa riferimento a oggetti non selezionati per l'ottimizzazione. |
S003 |
L'istruzione fa riferimento solo a tabelle di piccole dimensioni. |
S004 |
L'istruzione fa riferimento a hint per l'indice oppure l'istruzione contiene un hint per la query NOEXPAND. |
S005 |
Verranno utilizzate le caratteristiche hardware del computer locale. Restituito durante l'utilizzo della modalità di ottimizzazione server di prova. La stored procedure estesa xp_msver ha restituito un errore, quindi Ottimizzazione guidata motore di database non è in grado di determinare le caratteristiche hardware del computer remoto. Per ulteriori informazioni, vedere Riduzione del carico di ottimizzazione del server di produzione. |
S006 |
Lo spazio di archiviazione disponibile nei dischi collegati verrà ignorato. Si è verificato un errore che impedisce a Ottimizzazione guidata motore di database di raccogliere informazioni sullo spazio di archiviazione disponibile nei dischi collegati. In questo caso, Ottimizzazione guidata motore di database presuppone uno spazio di archiviazione disponibile pari a tre volte la dimensione corrente dei dati non elaborati, che include la dimensione totale di heap e indici cluster nelle tabelle del database. |
S0071 |
Sostituire la <string> evento con <string> a scopo di ottimizzazione. |
S0072 |
L'evento non fa riferimento ad alcuna tabella. |
S0072 |
L'evento fa riferimento a oggetti non selezionati per l'ottimizzazione. |
1 In Ottimizzazione guidata motore di database gli eventi sp_cursoropen, sp_executesql, sp_prepare, sp_cursorprepare, sp_prepexec e sp_cursorprepexec vengono sostituiti con la stringa Transact-SQL incorporata in tali eventi per scopi di ottimizzazione. Il messaggio di errore S007 specifica l'evento originale e l'evento sostituito nella colonna Reason del log di ottimizzazione.
2 Si tratta di messaggi a livello di evento, quindi la colonna Statement del log di ottimizzazione sarà vuota.
Errori relativi ai vincoli
ID della categoria | Messaggio del log di ottimizzazione |
---|---|
C002 |
La vista indicizzata specificata nella configurazione di input non include chiavi. La configurazione verrà elaborata comunque. |
C003 o C004 |
Ottimizzazione guidata motore di database rileva se il tempo di ottimizzazione predefinito, o definito dall'utente, è stato impostato per l'ottimizzazione del carico di lavoro e restituisce uno dei messaggi seguenti nel log di ottimizzazione. (dta.exe presuppone un valore di 8 ore mentre l'interfacca utente grafica un valore di 1 ora) Se è stata utilizzata l'impostazione predefinita il messaggio è il seguente: Tutti gli eventi del carico di lavoro non sono stati analizzati. dta.exe suppone un tempo predefinito di 8 ore. Fornire un limite di tempo utilizzando uno dei metodi seguenti. (1) Se si sta utilizzando l'interfaccia grafica utente, limitare il tempo di ottimizzazione nella pagina a schede Opzioni di ottimizzazione. (2) Se si sta utilizzando dta.exe, specificare il tempo massimo per l'argomento -A. (3) Se si sta utilizzando un file di input XML, specificare il tempo massimo per l'elemento TuningTimeInMin in TuningOptions. Se è stato utilizzato un tempo definito dall'utente, il messaggio è: Tutti gli eventi nel carico di lavoro non sono stati analizzati. Utilizzare uno dei metodi seguenti per aumentare il limite di tempo. (1) Se si sta utilizzando l'interfaccia grafica utente, limitare il tempo di ottimizzazione nella pagina a schede Opzioni di ottimizzazione. (2) Se si sta utilizzando dta.exe, specificare il tempo massimo per l'argomento -A. (3) Se si sta utilizzando un file di input XML, specificare il tempo massimo per l'elemento TuningTimeInMin in TuningOptions. |
Errori relativi al server
ID della categoria | Messaggio del log di ottimizzazione |
---|---|
E000 |
Messaggio specifico dal server, variabile in base alle circostanze. |
E001 |
Messaggio specifico dal server di prova, variabile in base alle circostanze. |
E002 |
Impossibile clonare il database nel server di prova. |
Vedere anche
Attività
Informazioni sul log di ottimizzazione