SQL Server Timeout Ytelse

SQL Server Timeout Ytelse


Utførelsen av databasedrevne applikasjoner er ofte avhengig av at av SQL Server-programvare, og forsinkelser eller tidsavbrudd kan oppstå for en rekke årsaker. Maskinvare eller minneenflaskehalser, blokkerte poster eller problematiske prosedyrer kan alle spille en rolle i SQL ytelsesproblemer. Mens feilsøking fleste SQL Server problemer krever administratortilgang og database kunnskap, finne problemet spørringer og optimalisering av både server og database vil forhindre flere problemer nedover veien.

årsaker

Fordi outs og ytelsesproblemer kan stamme fra en rekke årsaker, må du utvikle en systematisk feilsøking strategi for å finne og fikse et problem. Microsoft anbefaler at du begynner å teste ved hjelp av SQL Profiler, som logger serverens handlinger, slik at du kan isolere problemet. For detaljer om hvordan du konfigurerer SQL Profiler for å utføre et spor, se lenke i Resources. SQL Server 2012 inneholder også et brukergrensesnitt for den utvidede Arrangementer Profiler, som vil fullstendig ta plassen til SQL Profiler i fremtidige versjoner.

Blokkering

De fleste timeout problemer oppstå på grunn av blokkerte poster. Blokkering oppstår når en forbindelse låser en rekord som en annen tilkobling må låse med en annen lås type. Blokkering er faktisk normal oppførsel, men kan føre til forsinkelser når saktegående spørsmål er også blokkert, en indeks mangler eller i enkelte andre forhold. Mens standard serveren vil vente på ubestemt tid for en blokkert rekord, administratorer ofte bruke "LOCK_TIMEOUT" -innstillingen for å hindre server forsinkelser. For å finne ut om serveren er å ha problemer med å blokkere, kjører du følgende lagret prosedyre når serveren er opplever typisk belastning:

exec sp_who

Se i produksjonen for andre enn 0 oppføringer i "blk" kolonnen. Hvis de finnes, kan du bruke SQL Profiler utgang til null på saktegående spørsmål som kan være årsaken til blokkering.

Bad Execution Plan

Når serveren kjører en spørring, bruker den tilgjengelige data for å optimalisere hvordan det går spørringen. Av og til serveren gjetter feil, noe som resulterer i en dårlig optimalisering plan. Hvis dårlig plan er lastet inn i cache, kan det kjøres om og om igjen, sakker hver spørring betydelig eller timing ut. Ved hjelp av data fra SQL Profiler eller SQL Query Analyzer, kan du finne saktegående spørsmål og tune dem slik at de kjører raskere.

system Flaskehalser

Systemytelsen kan også påvirke ytelsen til SQL Server og forårsake tidsavbrudd. For å finne ut om systemet er under last problemer, kjøre Performance Monitor og se etter høyere enn vanlig CPU-bruk eller lenger enn vanlig I / O-forespørsler. Som med blokkerte poster, vil matche den økte belastningen med data fra SQL Profiler hjelpe deg null på spørsmål, samlinger og andre prosedyrer som tar store mengder ressurser. Hvis justering prosedyrene er umulig, må du forbedre serverens RAM, prosessorkraft eller diskytelse.