Sono stati aggiunti nuova concorrenza e pianificazione di diagnostica a SQL Server

Traduzione articoli Traduzione articoli
Identificativo articolo: 319892 - Visualizza i prodotti a cui si riferisce l?articolo.
BUG #: 102179 (SQLBUG_70)
BUG #: 356317 (SQLBUG_80)
Espandi tutto | Chiudi tutto

In questa pagina

Sommario

Per mantenere estremamente dinamici, SQL Server contiene i processi interni diversi per garantire la stabilitÓ. Un esempio Ŕ il monitor di blocco che Ŕ possibile utilizzare per identificare e risolvere situazioni di blocco critico (deadlock).

SQL Server 7.0 Service Pack 4 (SP4) e SQL Server 2000 Service Pack 3 (SP3) sono aggiunti migliorato il monitoraggio dello stato di processo. Miglioramenti di monitoraggio dello stato sono state eseguite nelle seguenti aree:
  • Blocco
  • Problemi di rete
  • Input/output (IO)
  • Memoria
  • CPU
Quando SQL Server rileva i problemi di integritÓ, una serie di nuovi messaggi di errore, ad esempio, vengono registrati nel registro errore SQL Server. Per informazioni su queste condizioni del messaggio di errore, vedere la "informazioni" sezione di questo articolo.

SQL Server 7.0

Errore 1223: ID processo % d: % d Impossibile acquisire il blocco "% s" su risorsa %s perchÚ un deadlock potenziale esiste su %d di pianificazione per la risorsa. Processo ID % d: % d contiene un blocco "% h" su questa risorsa.

SQL Server 2000

Errore 1229: ID processo % d: % d Ŕ proprietario di risorse che bloccano i processi su UtilitÓ di pianificazione % d.
I nuovi messaggi di errore includono la seguente serie.

estesa rilevamento blocco: 1223, 1229
rilevamento di utilitÓ di pianificazione bloccate: 17881, 17883
bloccate tutte le utilitÓ di pianificazione rilevamento: 17882, 17884
avviso Si noti che un problema correlato dello stato Ŕ spesso il risultato di una condizione che Ŕ stato verificato in precedenza. ╚ necessario esaminare il log degli errori SQL Server e log eventi del sistema con attenzione per determinare la causa principale effettiva.

Ad esempio, un messaggio di 17883 errore potrebbe indicare un problema di utilitÓ di pianificazione. Tuttavia, il log degli errori potrebbe mostrare un'eccezione precedente in modo non corretto lasciato il processo di SQL Server in uno stato scarsa o l'applicazione potrebbe aver causato una grave condizione di blocco.
Nota Microsoft tenta di mantenere aggiornati con le pi¨ recenti 17883 condizioni tutto il contenuto. Tuttavia, il messaggio di 17883 errore Ŕ un messaggio di rilevamento dello stato pu˛ essere attivato per diversi motivi. Microsoft non Ŕ corretto solo problemi noti con il prodotto software di SQL Server, ma anche ha rilevato l'errore 17883 in svariate situazioni non correlate al software di SQL Server. Ad esempio, verificato l'errore con utilizzo della CPU applicazione esterna e gli errori hardware. Se si desidera evitare un reoccurrence indesiderato dell'errore, Ŕ necessario determinare la causa principale del messaggio di 17883 errore.

Informazioni

In questa sezione vengono illustrati i miglioramenti di integritÓ e il messaggi di errore associati che possono essere registrati nel log degli errori SQL Server.

UMS

Per comprendere meglio alcuni la diagnostica di ulteriori condizioni, Ŕ innanzitutto necessario comprendere come SQL Server utilizza un file di supporto UMS.dll pianificazione modalitÓ utente (UMS).

Sia in SQL Server 7.0 e in Microsoft SQL Server 2000 Ŕ possibile utilizzare le utilitÓ di pianificazione logico. Queste utilitÓ di pianificazione consentono di assicurarsi che SQL Server ingrandisce il sistema operativo utilizzo delle risorse in relazione ai percorsi di azione di database di chiavi. Il livello UMS garantisce che SQL Server utilizza correttamente gli eventi di Win32 per controllare esclusivamente thread e fiber (o entrambi) pianificazione visibilitÓ per il sistema operativo. Controllando rigorosamente il thread o fiber che Ŕ possibile eseguire, SQL Server pu˛ ottimizzare l'utilizzo della CPU in relazione alle primitive di database, ad esempio blocco.

Ad esempio, logica di programmazione waiters di blocco consente di sospensione (WaitForSingleObject su un evento di Win32) fino al proprietario del blocco rilascia il blocco e segnali (SetEvent) a riattivare.

Rilevamento del blocco esteso

Il monitor di blocco Ŕ stata estesa per rilevare uno scenario blocco livello (thread) risorse. Se uno SPID che possiede che un blocco Ŕ attualmente accodato per l'utilitÓ di pianificazione, perchÚ tutti i thread di lavoro assegnate sono state create e tutti i thread di lavoro assegnato si trovano in uno stato di attesa un-resolvable, il seguente messaggio di errore viene scritto il log degli errori di SQL Server:

SQL Server 7.0

Errore 1223: ID processo % d: % d Impossibile acquisire il blocco "% s" su risorsa %s perchÚ un deadlock potenziale esiste su %d di pianificazione per la risorsa. Processo ID % d: % d contiene un blocco "% h" su questa risorsa.
Parametro Descrizione:
  1. SPID in attesa
  2. In attesa ECID (ID di esecuzione del processo di Sub)
  3. Nome di modalitÓ di blocco
  4. Nome risorsa
  5. ID di pianificazione UMS logico
  6. Proprietario SPID
  7. Proprietario ECID
  8. Proprietario nome risorsa

SQL Server 2000

Errore 1229: ID processo % d: % d Ŕ proprietario di risorse che bloccano i processi su UtilitÓ di pianificazione % d.
Parametro Descrizione:
  1. Proprietario SPID
  2. Proprietario ECID (ID di esecuzione del processo di Sub)
  3. Proprietario l'ID di pianificazione UMS logico

Flag di traccia

SQL Server contiene un flag di traccia per disattivare questo report di stato.

Per disattivare il comportamento di report, utilizzare uno dei metodi descritti di seguito:
  • Stabilire un parametro di avvio (-T ### )
  • Utilizzare DBCC traceon ( ### )
SQL Server 7.0 :-T1216

SQL Server 2000 :-T1261

Nota Non si tratta di un errore di digitazione. -T1216 in SQL Server 2000 Ŕ giÓ utilizzato come il flag di traccia associato all'output blocco critico (deadlock). Di conseguenza, 1261 viene invece utilizzato.

scenario di esempio

Client 1 si connette a SQL Server.

Client 1 viene eseguito un comando di Transact-SQL che avvia una transazione e modifica dei dati.

Ad esempio:
begin tran
update authors set au_lname = 'test'
client 1 diventa IDLE, viene visualizzato come inattivo e in attesa di un comando con una transazione aperta nella tabella sysprocesses di sistema.

I client 2 e 255: circa 254 pi¨ client accede a SQL Server e di emettere un'istruzione SELECT dalla tabella authors. Questi client verranno diventano bloccati l'aggiornamento originale.

Client 1 tenta di eseguire il commit della transazione, ma diventa in coda perchÚ il thread di lavoro sono occupato dai client 2 e 255.

Blocco

Questo messaggio di errore indica generalmente una situazione di blocco estesa. Ogni volta che il monitor di blocco viene eseguito (circa ogni 5 secondi), Ŕ possibile aggiungere messaggi di log degli errori di SQL Server.

Nota Viene registrato un messaggio per ogni SPID/ECID presenta il problema di risorse. Pertanto, possono essere registrati diversi messaggi durante l'iterazione di monitor di blocco stesso.

SQL Server non consente automaticamente di risolvere questa situazione. Tuttavia, indicherÓ il problema come messaggio di errore (1223 o 1229) di conseguenza. Quando si verifica questo problema, Ŕ possibile risolvere in diversi modi.

Timeout di blocco o una query

Se la query utilizza un blocco o di un timeout di query, la situazione verrÓ generalmente risolto automaticamente quando si verificano i valore di timeout. Tuttavia, la situazione garantisce l'analisi quanto indica una riduzione di applicazione generate in concorrenza.

Transact-SQL KILL

Se l'amministratore Ŕ in grado di eseguire una query la tabella di sistema sysprocesses , Ŕ possibile utilizzare il comando Transact-SQL KILL per terminare lo SPID gravi e per terminare l'appropriato SPIDS bloccato per liberare il thread di lavoro e tornare al sistema a uno stato normale.
251004Monitoraggio dei blocchi in SQL Server 7.0
271509Come monitorare i blocchi SQL Server 2000
263889Blocchi di blocchi a causa di [[compilazione]] SQL

Supporto assistenza

Se non Ŕ possibile ottenere le informazioni della tabella sysprocesses della tabella di sistema, Ŕ quindi ottenere un dump del processo del processo (sqlservr.exe) e contattare il supporto di Microsoft SQL Server per l'analisi aggiuntive.

Query parallele

In rari casi, pu˛ verificarsi questo messaggio di errore a causa di una selezione di piano di query parallele scarsa. Se la query parallela decide di utilizzare un numero significativo di dipendenti di SQL Server disponibile per completare la query, Ŕ possibile esaurire al pool di lavoro di SQL Server. La tabella di sistema di sysprocesses contiene una colonna ECID per indicare il numero di dipendenti che vengono utilizzati per conto di tale numero di singolo. Se il valore ECID Ŕ elevato in relazione con le CPU fisiche del computer, in genere Ŕ un'indicazione di una query ottimizzata. Esaminare il piano di query e l'impostazione per ottimizzare correttamente la query in questione dell'opzione query max degree of parallelism (MAXDOP).

Importante le utilitÓ di pianificazione

Il numero di logica di utilitÓ di pianificazione Ŕ importante. Quando viene avviata, l'impostazione di max worker thread Ŕ suddivisa in equamente tra l'utilitÓ di pianificazione logico. Aumenta il numero di CPU disponibile per SQL Server Ŕ suddivisa la coda di lavoro in pi¨. Un'applicazione che presenta l'attivitÓ di ambito di transazione indesiderati pu˛ manifestarsi scenari di carenza di risorse pi¨ veloce quando sono coinvolti pi¨ CPU. Per questo tipo di scenario, l'ambito della transazione di applicazioni viene immediatamente corretto.

Nella tabella seguente vengono indicati le assegnazioni di pool di lavoro basate sul numero di CPU se sp_configure memorizzato procedura impostazione massimo thread di lavoro Ŕ uguale a 255.
Riduci questa tabellaEspandi questa tabella
blocco di CPU lunghezza di catena
1255
2128
464
832
1616
Si consiglia di mantenere l'impostazione di max worker thread l'impostazione predefinita di 255. Per ulteriori informazioni, fare clic sul numero dell'articolo della Microsoft Knowledge Base riportato di seguito riportato:
319942Come determinare la corrette configurazione di SQL Server

IntegritÓ UMS

╚ stata aggiunta una nuova routine interna per verificare l'integritÓ dell'utilitÓ logico ogni 60 secondi. Se l'utilitÓ di pianificazione viene considerato come bloccato o non risponde, il messaggio di errore appropriato viene registrato nel log degli errori SQL Server. Ogni 60 secondi finchÚ non viene risolto il problema viene registrato un errore.

Come accennato in precedenza, questi messaggi sono spesso un'indicazione di un evento precedente. Attentamente consultare i SQL Server Errore registro e l'applicazione registri eventi per determinare la causa principale del problema.

Nota Uno snapshot viene eseguito ogni 60 secondi. Di conseguenza, pu˛ essere 120 secondi, prima che la condizione viene rilevata prima.

SQL Server 7.0

Errore: 17881 - la pianificazione %1! ld! sembra bloccato. PSS 0 x % 2! p!, EC 0 x % 3! p!, UMS contesto 0 x % 4! p!
Errore: potenziali deadlock 17882 - esiste in tutte le utilitÓ di pianificazione

Flag di traccia

╚ possibile disattivare questi due controlli, se si avvia SQL Server 7.0 con il -T1217 parametro di avvio.

SQL Server 2000 SP3

8.00.760 (SP3)
Errore: 17883 - la pianificazione %1! ld! sembra bloccato. SPID %2! ld!, ECID % 3! ld!, UMS contesto 0 x % 4! p!

8.00.765

Avvio con il caldo 8.00.765 risolvere, il messaggio Ŕ stato modificato da pi¨ descrittivo.
Errore: 17883 - processo %1! ld!: % 2! ld! (%3! lx!) Contesto UMS 0 x % 4! p! verrÓ visualizzato come non producendo nella pianificazione %5! ld!

Esempio:
2003-03-21 08:22:20.27 server Errore: 17883, gravitÓ: 1, stato: 0
2003-03-21 08:22:20.27 server processo 51:0 (dbc) UMS contesto 0x018DA930 sembra non producendo nella pianificazione 0.
2003-03-21 server di 08:22:22.45 firma dell'elenco, per il dump Ŕ 0 x 00000000
Errore: potenziali deadlock 17884 - esiste in tutte le utilitÓ di pianificazione

Flag di traccia

╚ possibile disattivare questi due controlli, se si avvia SQL Server con un parametro di avvio-T1260.

File di MiniDump di SQL Server 2000

A partire da SQL Server 2000 SP3, Ŕ stata implementata la possibilitÓ di acquisire un processo di MiniDump. A partire da generazione 8.00.765, viene generato un file di MiniDump quando SQL Server rileva prima una bloccato utilitÓ di pianificazione.

Per evitare la continua di generazione dei file di MiniDump per questi messaggi di errore (17883 and17884), il comportamento di impostazione predefinita Ŕ per produrre un unico file di MiniDump per la durata del processo di SQL Server. Per attivare un file MiniDump di tutte le occorrenze dei messaggi, Ŕ possibile attivare il flag di traccia - T1262.

Nel LOG viene generato il file di MiniDump cartella sia SQLDmpr ### .mdmp. Questo file di MiniDump pu˛ essere valutato dal supporto tecnico Microsoft per determinare la causa principale del problema.

Errore 17881 ed Error 17883

Questi messaggi indicano un'unica utilitÓ di pianificazione UMS Ŕ verificarsi problemi yield. Il monitoraggio dello stato ha rilevato che sembra essere una pianificazione con un thread di lavoro che non consente altri agli specialisti di avanzamento e l'utilitÓ di pianificazione Ŕ venga contrassegnato come non risponde. Un'utilitÓ di pianificazione ha smesso di rispondere Ŕ in genere un bug con il prodotto SQL Server o un componente esterno (XProc, l'oggetto COM, e cosý via).

Di seguito sono esempi di 17833 condizioni noti. Assicurarsi che la ricerca della Knowledge Base articoli correlati. Se il sistema richiede una patch aggiornata, Ŕ possibile applicarlo conseguenza.
815056FIX: Il processo di checkpoint pu˛ ritardare l'attivitÓ di database SQL Server e non produce pianificazione correttamente causa errore: 17883 si verifichi
810885Sottosistemi di dischi fascia alta possono verificarsi errori 17883
Se non Ŕ possibile determinare la causa principale immediatamente, consultare il log degli errori per i problemi e partecipa a sforzi di supporto esteso.

Quando un'utilitÓ di pianificazione non risponde correttamente, Ŕ possibile ridurre la concorrenza globale per SQL Server. SQL Server pu˛ essere visualizzato anche essere bloccato oppure potrebbe bloccarsi.

Errore 17882 e 17884

Questi messaggi indicano che tutti hanno sperimentato l'utilitÓ di pianificazione UMS generano problemi. Questo viene indicato che un problema a livello di sistema di SQL Server e SQL Server sarÓ visualizzato hanno smesso di rispondere. Come con i messaggi di 17881 e 17883, per ulteriori informazioni consultare il log degli errori e il Microsoft della Knowledge Base. Se necessario, partecipa a sforzi di supporto esteso.

ProprietÓ

Identificativo articolo: 319892 - Ultima modifica: mercoledý 18 maggio 2005 - Revisione: 8.0
Le informazioni in questo articolo si applicano a:
  • Microsoft SQL Server 2000 Service Pack 3
  • Microsoft SQL Server 7.0 Service Pack 4
Chiavi:á
kbmt kbsample kberrmsg kbbug kbfix kbinfo KB319892 KbMtit
Traduzione automatica articoli
Il presente articolo Ŕ stato tradotto tramite il software di traduzione automatica di Microsoft e non da una persona. Microsoft offre sia articoli tradotti da persone fisiche sia articoli tradotti automaticamente da un software, in modo da rendere disponibili tutti gli articoli presenti nella nostra Knowledge Base nella lingua madre dell?utente. Tuttavia, un articolo tradotto in modo automatico non Ŕ sempre perfetto. Potrebbe contenere errori di sintassi, di grammatica o di utilizzo dei vocaboli, pi¨ o meno allo stesso modo di come una persona straniera potrebbe commettere degli errori parlando una lingua che non Ŕ la sua. Microsoft non Ŕ responsabile di alcuna imprecisione, errore o danno cagionato da qualsiasi traduzione non corretta dei contenuti o dell?utilizzo degli stessi fatto dai propri clienti. Microsoft, inoltre, aggiorna frequentemente il software di traduzione automatica.
Clicca qui per visualizzare la versione originale in inglese dell?articolo: 319892
LE INFORMAZIONI CONTENUTE NELLA MICROSOFT KNOWLEDGE BASE SONO FORNITE SENZA GARANZIA DI ALCUN TIPO, IMPLICITA OD ESPLICITA, COMPRESA QUELLA RIGUARDO ALLA COMMERCIALIZZAZIONE E/O COMPATIBILITA' IN IMPIEGHI PARTICOLARI. L'UTENTE SI ASSUME L'INTERA RESPONSABILITA' PER L'UTILIZZO DI QUESTE INFORMAZIONI. IN NESSUN CASO MICROSOFT CORPORATION E I SUOI FORNITORI SI RENDONO RESPONSABILI PER DANNI DIRETTI, INDIRETTI O ACCIDENTALI CHE POSSANO PROVOCARE PERDITA DI DENARO O DI DATI, ANCHE SE MICROSOFT O I SUOI FORNITORI FOSSERO STATI AVVISATI. IL DOCUMENTO PUO' ESSERE COPIATO E DISTRIBUITO ALLE SEGUENTI CONDIZIONI: 1) IL TESTO DEVE ESSERE COPIATO INTEGRALMENTE E TUTTE LE PAGINE DEVONO ESSERE INCLUSE. 2) I PROGRAMMI SE PRESENTI, DEVONO ESSERE COPIATI SENZA MODIFICHE, 3) IL DOCUMENTO DEVE ESSERE DISTRIBUITO INTERAMENTE IN OGNI SUA PARTE. 4) IL DOCUMENTO NON PUO' ESSERE DISTRIBUITO A SCOPO DI LUCRO.

Invia suggerimenti

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com