Zapytania logu Serwera SQL 

Wprowadzenie

To narzędzie jest dostępne z każdego ekranu w programie, po zastosowaniu bazy danych SQLServer™, przy użyciu menu Narzędzi umieszczonego u góry ekranu, które zawiera dwie opcje:

Aktywacja logu SQLServer

Dzięki tej funkcji, za pośrednictwem funkcjonalności logu na SQLServer możliwe jest aktywowanie rekordów zdarzeń dla bazy danych w pliku, zdarzenia mogą zostać poddane analityce.

Dezaktywacja logu

Ta funkcja uruchamia ponowne przetwarzanie logu uzyskanego poprzez aktywowanie, a następnie wyświetlany jest wynik. Dzięki temu, można zobaczyć wszystkie czynności SQL wykonane w trakcie aktywacji.

Wymagania wstępne

Uprawnienie

Użytkownik musi być uprawniony do używania debugera (parametrDBG ).

Ograniczenia techniczne

Ta funkcja może działać tylko jeśli serwer przetwarzania został zainstalowany i jest aktywny w maszynie bazy danych.

Interfejs Użytkownika

Przy używaniu tej funkcji, ekran służy do wprowadzenia grupy opcji :

Odzyskaj wyniki

Konieczne jest wskazanie informacji, które mają być zebrane do analityki.

Opcja Standardowa służy do odzyskiwania planów wykonania dla zapytań.

Opcja Strojenia służy do odzyskiwania informacji dotyczących wykonanych czynności SQL oraz planów wykonania dla zapytań.

Użytkownik może również wybrać zdarzenia, które mają być zebrane poprzez „Zaawansowane parametry zdarzeń”. W odpowiednim oknie wyświetlone zostaną wszystkie dostępne opcje.

Zdarzenia te są grupowane według typów. Więcej informacji dotyczących tych zdarzeń znajduje się w dokumentacji SQLServer, jej fragment znajduje się w aneksie do tego dokumentu.

Opcje sortowania

Domyślnie polecenia SQL są wyszczególnione w porządku chronologicznym, istnieje jednak możliwość określenia opcji sortowania.

Sugerowanych jest kilka opcji sortowania. Pierwszą jest porządek odpowiadający najwyższemu kosztowi, zgodnie z wybranym sortowaniem.

Prezentacja wyników

Użytkownik może zdecydować, żeby na liście znajdowały się tylko pierwsze zwrócone rekordy n.

W wypadku, kiedy użytkownik wybierze dane sortowanie, otrzyma pierwsze wydarzenia n przekazane do bazy danych, które odpowiadają najważniejszemu elementowi tego sortowania.

Otrzymane przy użyciu logu

Czas trwania czynności SQL (otrzymany dla „Zrealizowanego” zdarzenia) oraz zapytania mogą zostać wyświetlone.

Dzięki analityce tych czynności możliwe jest ustalenie czy zapytanie jest wykonywane i czy używane są indeksy.

wyszukanie Table Scan nie jest konieczne

Wyszukanie Constant Scan również nie jest konieczne

Kiedy zostaje wyszukane użycie indeksu (Wyszukiwanie Indeksu), konieczne jest użycie maksymalnej ilości kolumn w indeksie (w sekcji „WYSZUKIWANIE”).

Fragment dokumentacji SQLServer

Ta tabela przedstawia zdarzenia, które mogą zostać dodane lub usunięte z logu.

Numer zdarzenia


Nazwa zdarzenia


Opis

0-9

Zastrzeżone

 

10

RPC:Completed

Pojawia się, kiedy wywołanie zdalnej procedury (RPC) zostaje zakończone.

11

RPC:Starting

Pojawia się, kiedy wywołanie zdalnej procedury zostaje rozpoczęte.

12

SQL:BatchCompleted

Pojawia się, kiedy grupa instrukcji Transact-SQL zostaje zrealizowana.

13

SQL:BatchStarting

Pojawia się, kiedy grupa instrukcji Transact-SQL zostaje rozpoczęta.

14

Login

Pojawia się, kiedy użytkownik loguje się do SQLServer.

15

Wylogowanie

Pojawia się, kiedy użytkownik wylogowuje się z SQLServer.

16

Ostrzeżenie

Pojawia się w tym samym czasie, co ostrzeżenie wydarzeń, na przykład, zapytanie przerywające złożone przez klienta lub przerwanie połączenia z klientem.

17

ExistingConnection

Wykrywa wszystkie czynności użytkowników zalogowanych do SQLServer przez uruchomieniem logu.

18

ServiceControl

Pojawia się kiedy status usługi SQLServer zostaje zmieniony.

19

DTCTransaction

Log transakcji koordynowany przez Microsoft Distributed Transaction Coordinator (MS DTC) między co najmniej dwoma bazami danych.

20

Niepowodzenie Logowania

Wskazuje, że próba podłączenia się z SQLServer podjęta przez klienta nie powiodła się.

21

EventLog

Wskazuje, że wydarzenia zostały wprowadzone w dzienniku aplikacji Microsoft Windows NT®.

22

ErrorLog

Wskazuje, że wydarzenia będące błędami zostały wprowadzone do dziennika błędów SQLServer.

23

Lock:Release

Wskazuje, że blokada zasobu, na przykład strony, została zwolniona.

24

Lock:Acquire

Wskazuje, że blokada zasobu, na przykład strony z danymi, została przyjęta.

25

Lock:Deadlock

Wskazuje, że między dwoma współistniejącymi transakcjami nastąpiło zakleszczenie, w jednej nastąpiła próba uzyskania niekompatybilnych blokad zasobu należącego do drugiej.

26

Lock:Cancelled

Wskazuje, że przyjęcie blokady zasobu zostało anulowane (na przykład, z powodu zakleszczenia).

27

Lock:Timeout

Wskazuje, że zapytanie blokady zasobu (na przykład strony) przekroczyło limit czasu oczekiwania, ponieważ inna transakcja zawiera blokowanie żądanego zasobu. Limit czasu oczekiwania jest określany przez @@LOCK_TIMEOUT i może zostać zdefiniowany poprzez pomoc instrukcji SET LOCK_TIMEOUT.

28

Zdarzenie DOP

Pojawia się przed wykonaniem instrukcji WYBIERZ, WSTAW lub AKTUALIZUJ

29-31

Zastrzeżone

Zastosuj zdarzenie 28.

32

Zastrzeżone

 

33

Wyjątek

Wskazuje, że w SQLServer wystąpił wyjątek.

34

SP:CacheMiss

Wskazuje, że zapisana procedura nie może zostać odnaleziona w pamięci podręcznej procedury.

35

SP:CacheInsert

Wskazuje, że element został wstawiony do pamięci podręcznej procedury.

36

SP:CacheRemove

Wskazuje, że element został usunięty z pamięci podręcznej procedury.

37

SP:Recompile

Wskazuje, że zapisana procedura została ponownie skompilowana.

38

SP:CacheHit

Wskazuje, że zapisana procedura znajduje się w pamięci podręcznej procedury.

39

SP:ExecContextHit

Wskazuje, kiedy wersja wykonania zapisanej procedury została wyszukana w pamięci podręcznej.

40

SQL:StmtStarting

Pojawia się przy rozpoczęciu instrukcji Transact-SQL.

41

SQL:StmtCompleted

Pojawia się na końcu instrukcji Transact-SQL.

42

SP:Starting

Wskazuje, że zapisana procedura została rozpoczęta.

43

SP:Completed

Wskazuje, że zapisana procedura została zakończona.

44

Zastrzeżone

Zastosuj zdarzenie 40.

45

Zastrzeżone

Zastosuj zdarzenie 41.

46

Objetct:Created

Wskazuje, że utworzony został obiekt, na przykład, przy użyciu instrukcji UTWÓRZ INDEKS, UTWÓRZ TABELĘ lub UTWÓRZ BAZĘ DANYCH.

47

Object:Deleted

Wskazuje, że obiekt został usunięty, na przykład przy użyciu instrukcji USUŃ INDEKS, USUŃ TABELĘ.

48

Zastrzeżone

 

49

Zastrzeżone

 

50

Transakcja SQL

Rejestr instrukcji ROZPOCZĘCIE Transact-SQL, WYKONAJ, ZAPISZ i WYCOFYWANIE TRANSAKCJI.

51

Scan:Started

Wskazuje, że analityka tabeli lub indeksu została rozpoczęta.

52

Scan:Stopped

Wskazuje, że analityka tabeli lub indeksu została zakończona.

53

CursorOpen

Wskazuje, że kursor został otwarty w Transact-SQL przez instrukcje ODBC, OLE DB lub DB-Library.

54

Dziennik transakcji

Rejestr podczas zapisywania transakcji w dzienniku transakcji.

55

HashWarning

??Wskazuje, że opcja mieszająca (mieszane połączenie, mieszane sumowanie, mieszana suma zbiorów, unikalny hash), która nie jest przetwarzana na danej partycji zmienia się w plan ponownej zmiany, ponieważ powaga zdarzenia prowadzi do rozbieżności danych, wskaźników logu lub zliczania bitów.

56-57

Zastrzeżone

 

58

Automatyczna aktualizacja statystyki

Wskazuje, że nastąpiła automatyczna aktualizacja statystyk indeksu.

59

Lock:Deadlock Chain

Zaistniały dla każdego zdarzenia prowadzącego do zakleszczenia.

60

Lock:Escalation

Pojawia się, kiedy liczba blokad wzrasta. Przykład: zwiększona liczba blokad wierszy lub konwersja blokad wierszy w blokady stron.

61

Błędy OLE DB

Wskazuje, że wystąpił błąd OLE DB.

62-66

Zastrzeżone

 

67

ExecutionWarnings

Wskazuje, że podczas wykonywania zapisanej procedury lub instrukcji SQLServer pojawiły się komunikaty ostrzegawcze.

68

Plan Wykonania

Wyświetlanie wykonanego planu instrukcji SQL.

69

Ostrzeżenia sortowania

Wskazuje, że operacje sortowanie nie mogły zostać przeprowadzone w pamięci. Nie dotyczy to operacji sortowania zawierających tworzenie indeksów, ale operacji sortowania będących częściami zapytania (na przykład, klauzula KOLEJNOŚĆ WEDŁUG w poleceniu WYBIERZ).

70

CursorPrepare

Wskazuje, że kursor w instrukcji Transact-SQL jest gotowy do użycia przez ODBC, OLE DB lub DB-Library.

71

Przygotuj SQL

ODBC, OLE DB lub DB-Library przygotował co najmniej jedną instrukcję Transact-SQLinstructions do użycia.

72

Wykonanie Przygotowanych SQL

ODBC, OLE DB lub DB-Library wykonał co najmniej jedną przygotowaną instrukcję Transact-SQLinstructions.

73

Anuluj przygotowanie SQL

ODBC, OLE DB lub DB-Library anulował co najmniej jedną przygotowaną instrukcję Transact-SQLinstructions.

74

CursorExecute

Wcześniej przygotowany kursor w Transact-SQL przez instrukcje ODBC, OLE DB lub DB-Library został wykonany.

75

CursorRecompile

Kursor otwarty w Transact-SQL przez instrukcje ODBC lub DB-Library został ponownie skompilowany bezpośrednio lub poprzez zmianę struktury.

Uruchomienie kursorów ANSI i nie-ANSI.

76

CursorImplicitConversion

Typ kursora w instrukcji Transact-SQL został zmieniony przez SQLServer.

Uruchomienie kursorów ANSI i nie-ANSI.

77

CursorUnprepare

Kursor przygotowany w instrukcji Transact-SQL został zmieniony przez ODBC, OLE DB lub DB-Library.

78

CursorClose

Kursor wcześniej otwarty w Transact-SQL przez instrukcje ODBC, OLE DB lub DB-Library został zamknięty.

79

Brakujące statystyki kolumn

Statystyki kolumn użyteczne przy optymalizacji są niedostępne.

80

Brakujący Predykat Połączenia

Wykonywane jest zapytanie bez predykatu połączenia. Może to oznaczać, że wykonanie zapytania zajmuje długi czas.

81

Zmiana Pamięci Serwera

Wykorzystanie pamięci Microsoft SQLServer wzrosło lub zmalało, o 1 MB lub 5% maksymalnej wielkości pamięci, zależnie od tego która liczba jest większa.

82-91

Użytkownik konfigurowalny (0 -9)

Dane wydarzeń określone według użytkownika.

92

Automatyczny Wzrost Pliku Danych

Wskazuje, że plik dziennika został automatycznie powiększony przez serwer.

93

Automatyczny Wzrost logu

Wskazuje, że plik dziennika został automatycznie powiększony przez serwer.

94

Automatyczne zmniejszenie pliku danych

Wskazuje, że plik danych został automatycznie zmniejszony przez serwer.

95

Automatyczne zmniejszenie logu

Wskazuje, że plik dziennika został automatycznie zmniejszony przez serwer.

96

Wyświetl Tekst Planu

Wyświetlanie planu zapytania instrukcji SQL z optymizera zapytań.

97

Wyświetl Kompletny Plan

Wyświetenie planu zapytania z pełnymi szczegółami kompilacji obecnie przetwarzanej instrukcji SQL.

98

Wyświetl Statystyki Planu

Wyświetenie planu zapytania z pełnymi szczegółami wykonania przetwarzanej instrukcji SQL.

99

Zastrzeżone

 

100

Parametr Wyjścia RPC

Przedstawia wartość wyjścia dla parametrów wszystkich RPC.

101

Zastrzeżone

 

102

Audyt Zestawienie GDR

Jest przedstawiany za każdym razem, kiedy UDZIELENIE, ODMOWA lub UNIEWAŻNIENIE są wysyłane przez użytkownika dla autoryzacji instrukcji w SQLServer.

103

Audyt Obiekt GDR

Jest przedstawiany za każdym razem, kiedy UDZIELENIE, ODMOWA lub UNIEWAŻNIENIE są wysyłane przez użytkownika dla autoryzacji obiektu w SQLServer.

104

Audyt Dodaj/Usuń Logowanie

Pojawia się, kiedy logowanie do SQLServer zostaje dodane lub usunięte ; dla sp_addlogin i sp_droplogin.

105

Audyt Login GDR

Pojawia się, kiedy prawo logowania Microsoft Windows® zostaje dodane lub usunięte ; sp_grantlogin, sp_revokelogin oraz sp_denylogin.

106

Audyt Logowanie Zmiana Właściwości

Pojawia się kiedy właściwość logowania, inna niż hasło, zostaje zmieniona ; dla sp_defaultdb oraz sp_defaultlanguage.

107

Audyt Logowanie Zmiana Hasła

Pojawia się, kiedy hasło dla logowania do SQLServer zostaje zmienione.

Hasła zostają zapisane.

108

Audyt Dodanie Logowania do Roli Serwera

Pojawia się kiedy logowanie zostaje dodane lub usunięte ze stałej roli serwera ; dla sp_addsrvrolemember oraz sp_dropsrvrolemember.

109

Audyt Dodanie Użytkownika Bazy Danych

Pojawia się, kiedy logowanie zostaje dodane lub usunięte w formie użytkownika bazy danych (Windows lub SQLServer) dla bazy danych ; dla sp_grantdbaccess, sp_revokedbaccess, sp_adduser i sp_dropuser.

110

Audyt Dodaj Członka do Bazy Danych

Pojawia się, kiedy logowanie zostaje dodane lub usunięte w formie użytkownika bazy danych (stałe lub określone przez użytkownika) w bazie danych ; dla sp_addrolemember, sp_droprolemember i sp_changegroup.

111

Audyt Dodaj/Usuń Rolę

Pojawia się, kiedy logowanie jest dodawane lub usuwane w formie użytkownika bazy danych w bazie danych ; dla sp_addrole oraz sp_droprole.

112

Zmiana Hasła dla Roli Aplikacji

Pojawia się, kiedy hasło dla roli aplikacji zostaje zmienione.

113

Audyt Zezwolenie na Zestawienie

Występuje przy użyciu uprawnienia instrukcji (na przykład UTWÓRZ TABELĘ).

114

Audyt Zezwolenie na Obiekt

Występuje przy użyciu obiektu autoryzacji (na przykład WYBIERZ), bez względu na to, czy kończy się ono powodzeniem.

115

Audyt Backup/Przywrócenie

Występuje przy wydawaniu polecenia BACKUPUJ lub PRZYWRÓĆ.

116

Audyt DBCC

Występuje przy wydawaniu poleceń DBCC.

117

Audyt Zmiana Audytu

Występuje, kiedy ma miejsce modyfikacja logu audytu.

118

Audyt Otrzymane Zezwolenie Obiektu

Występuje przy wydawaniu poleceń obiektu UTWÓRZ, ZMIEŃ, PRZERWIJ.

Błędy

Podczas wprowadzania mogą wyświetlić się następujące komunikaty ogólne oraz o błędach :

„Błąd podczas logowania do serwera bazy danych”

Dostęp do mechanizmu bezy danych nie jest możliwy, nie istnieje żaden serwer przetwarzania lub nie jest on w trybie on-line.

„Błąd dostępu do katalogu logu bazy danych”

Katalog wskazany jako katalog logu nie jest dostępny.