Mniej znane polecenia na SQL Serwerze (CHECKPOINT, KILL, SHUTDOWN)

29-paź-2011

Zacznijmy od niegroźnego polecenia

CHECKPOINT

Powoduje ono uruchomienie procesu CHECKPOINT polegającego na przepisaniu „brudnych stron” z bufora SQL Serwera na dysk. Domyślnie czynność ta wykonuje się sama, bez naszej ingerencji, a wpływ ma na nią opcja serwera 'Recovery Interval’. Jeżeli chcesz aby baza danych po awarii odtwarzała się szybciej to zmniejsz recovery interval. Chceckpointy będą występować częściej. Można śledzić kiedy dochodzi do systemowego CHECKPOINTA poprzez pefrmon.

Polecenie CHECKPOINT uruchamiane z ręki wywołuje zapis tylko dla bieżącej bazy danych.

Drugie nietypowe polecenie to KILL. Argumentem dla tego polecenia jest numer ID połączenia, który zamierzasz zabić np

KILL 56

zamknie sesję numer 56. Możesz np w ten sposób przerwać przebudowę indeksu, jeżeli trwa ona za długo, jednak pamiętaj. Przebudowa indeksu jest transakcją i jej wycofanie… również będzie trwało. Dlatego nim zabijesz taki proces spróbuj zbadać ile czasu będzie trwało wycofywanie tego zadania poprzez:

KILL 56 WITH STATUSONLY

Polecenie wyświetli tylko informacje o tym ile będzie trwało wycofywanie danej czynności, bez jej aktualnego wycofnia.

Ostatniego polecenia z tej serii nie uruchamiaj dla testu na maszynie produkcyjnej, gdyż jest to polecenie:

SHUTDOWN

Spowoduje ono wyłączenie serwera. Wyłączenie będzie miało jak najbardziej poprawny przebieg tzn. przed zamknięciem SQL Servera wykona się CHECKPOINT na każdej bazie danych, co też może potrwać. Można jednak wywołać polecenie

SHUTDOWN WITH NOWAIT

i wtedy CHECPOINTY się nie wykonają, ale za to dłużej będzie trwało włączanie bazy danych. Krótko mówiąc coś za coś…

Komentarze są wyłączone

Autor: Rafał Kraik