Microsoft SQL Server 2000. Księga eksperta

35
Wydawnictwo Helion ul. Chopina 6 44-100 Gliwice tel. (32)230-98-63 e-mail: [email protected] PRZYK£ADOWY ROZDZIA£ PRZYK£ADOWY ROZDZIA£ IDZ DO IDZ DO ZAMÓW DRUKOWANY KATALOG ZAMÓW DRUKOWANY KATALOG KATALOG KSI¥¯EK KATALOG KSI¥¯EK TWÓJ KOSZYK TWÓJ KOSZYK CENNIK I INFORMACJE CENNIK I INFORMACJE ZAMÓW INFORMACJE O NOWOCIACH ZAMÓW INFORMACJE O NOWOCIACH ZAMÓW CENNIK ZAMÓW CENNI K CZYTELNIA CZYTELNIA FRAGMENTY KSI¥¯EK ONLINE FRAGMENTY KSI¥¯EK ONLINE SPIS TRECI SPIS TRECI DODAJ DO KOSZYKA DODAJ DO KOSZYKA KATALOG ONLINE KATALOG ONLINE Microsoft SQL Server 2000. Ksiêga eksperta Autorzy: Ray Rankins, Paul Jensen, Paul Bertucci T³umaczenie: Micha³ Dadan, Leszek Mosingiewicz, Rafa³ Szpoton ISBN: 83-7197-721-2 Tytu³ orygina³u: Microsoft SQL Server 2000. Unleashed Format: B5, stron: 1302 „Microsoft SQL Server 2000. Ksiêga eksperta” to pozycja przeznaczona dla rednio zaawansowanego i zaawansowanego u¿ytkownika. Nadaje siê ona zarówno dla administratorów programu SQL Server, jak i programistów chc¹cych w pe³ni zrozumieæ dzia³anie tego produktu i pisaæ lepsze aplikacje oraz kod Transact-SQL. Je¿eli jeste odpowiedzialny za analizê, projektowanie, implementacjê, obs³ugê, administrowanie czy rozwi¹zywanie problemów z SQL Server 2000, ta ksi¹¿ka bêdzie stanowiæ doskona³e ród³o praktycznych informacji. Autorzy szczegó³owo omówili bardziej z³o¿one aspekty produktu, takie jak wykorzystanie nowych narzêdzi, kodowanie w jêzyku Transact-SQL, administrowanie serwerem, analizowanie zapytañ, optymalizacjê, hurtownie danych, zarz¹dzanie bardzo du¿ymi bazami danych i poprawianie wydajnoci. Omówione zagadnienia to m.in. • rodowisko Microsoft SQL Server 2000 i zmiany wprowadzone w najnowszej wersji programu • Instalowanie i konfigurowanie serwera i programów klienckich • Narzêdzia administracyjne i administrowanie SQL Serverem • Praca z SQL Server Enterprise Managerem i narzêdziami uruchamianymi z linii poleceñ • Tworzenie baz danych, tabel, indeksów, widoków • Pisanie procedur przechowywanych na serwerze i wyzwalaczy • Tworzenie w³asnych funkcji • Kwestie zwi¹zane z bezpieczeñstwem bazy danych, uprawnieniami u¿ytkowników i odzyskiwaniem danych w przypadku awarii • Zarz¹dzanie serwerami sprzê¿onymi i zdalnymi, tworzenie klastrów • Import, eksport i replikacja danych • U¿ycie jêzyka T-SQL • Wewnêtrzne mechanizmy serwera • Kwestie strojenia i optymalizacji zapytañ • Blokowanie i jego wp³yw na wydajnoæ • Techniki projektowania efektywnych baz danych • XML w programie SQL Server 2000 • Us³ugi analizy danych w programie SQL Server • Microsoft Transaction Server i jego zastosowanie Ksi¹¿ka ta nie jest tylko opisem sk³adni, zastêpuj¹cym dokumentacjê do³¹czan¹ do SQL Server. Przydaje siê ona tam, gdzie dokumentacja online nie zdaje egzaminu. Autorzy dziel¹ siê z czytelnikami przyk³adami i przemyleniami wynikaj¹cymi z ich wieloletniego dowiadczenia zawodowego w pracy z MS SQL Server. „Microsoft SQL Server 2000. Ksiêga eksperta” to niezbêdne ród³o informacji dla wszystkich pracuj¹cych z tym programem.

description

"Microsoft SQL Server 2000. Księga eksperta" to pozycja przeznaczona dla średnio zaawansowanego i zaawansowanego użytkownika. Nadaje się ona zarówno dla administratorów programu SQL Server, jak i programistów chcących w pełni zrozumieć działanie tego produktu i pisać lepsze aplikacje oraz kod Transact-SQL. Jeżeli jesteś odpowiedzialny za analizę, projektowanie, implementację, obsługę, administrowanie czy rozwiązywanie problemów z SQL Server 2000, ta książka będzie stanowić doskonałe źródło praktycznych informacji. Autorzy szczegółowo omówili bardziej złożone aspekty produktu, takie jak wykorzystanie nowych narzędzi, kodowanie w języku Transact-SQL, administrowanie serwerem, analizowanie zapytań, optymalizację, hurtownie danych, zarządzanie bardzo dużymi bazami danych i poprawianie wydajności.Omówione zagadnienia to m.in. * Środowisko Microsoft SQL Server 2000 i zmiany wprowadzone w najnowszej wersji programu * Instalowanie i konfigurowanie serwera i programów klienckich * Narzędzia administracyjne i administrowanie SQL Serverem * Praca z SQL Server Enterprise Managerem i narzędziami uruchamianymi z linii poleceń * Tworzenie baz danych, tabel, indeksów, widoków * Pisanie procedur przechowywanych na serwerze i wyzwalaczy * Tworzenie własnych funkcji * Kwestie związane z bezpieczeństwem bazy danych, uprawnieniami użytkowników i odzyskiwaniem danych w przypadku awarii * Zarządzanie serwerami sprzężonymi i zdalnymi, tworzenie klastrów * Import, eksport i replikacja danych * Użycie języka T-SQL * Wewnętrzne mechanizmy serwera * Kwestie strojenia i optymalizacji zapytań * Blokowanie i jego wpływ na wydajność * Techniki projektowania efektywnych baz danych * XML w programie SQL Server 2000 * Usługi analizy danych w programie SQL Server * Microsoft Transaction Server i jego zastosowanieKsiążka ta nie jest tylko opisem składni, zastępującym dokumentację dołączaną do SQL Server. Przydaje się ona tam, gdzie dokumentacja online nie zdaje egzaminu. Autorzy dzielą się z czytelnikami przykładami i przemyśleniami wynikającymi z ich wieloletniego doświadczenia zawodowego w pracy z MS SQL Server. "Microsoft SQL Server 2000. Księga eksperta" to niezbędne źródło informacji dla wszystkich pracujących z tym programem.

Transcript of Microsoft SQL Server 2000. Księga eksperta

Page 1: Microsoft SQL Server 2000. Księga eksperta

Wydawnictwo Helionul. Chopina 644-100 Gliwicetel. (32)230-98-63e-mail: [email protected]

PRZYK£ADOWY ROZDZIA£PRZYK£ADOWY ROZDZIA£

IDZ DOIDZ DO

ZAMÓW DRUKOWANY KATALOGZAMÓW DRUKOWANY KATALOG

KATALOG KSI¥¯EKKATALOG KSI¥¯EK

TWÓJ KOSZYKTWÓJ KOSZYK

CENNIK I INFORMACJECENNIK I INFORMACJE

ZAMÓW INFORMACJEO NOWO�CIACH

ZAMÓW INFORMACJEO NOWO�CIACH

ZAMÓW CENNIKZAMÓW CENNIK

CZYTELNIACZYTELNIA

FRAGMENTY KSI¥¯EK ONLINEFRAGMENTY KSI¥¯EK ONLINE

SPIS TRE�CISPIS TRE�CI

DODAJ DO KOSZYKADODAJ DO KOSZYKA

KATALOG ONLINEKATALOG ONLINE

Microsoft SQL Server2000. Ksiêga ekspertaAutorzy: Ray Rankins, Paul Jensen, Paul BertucciT³umaczenie: Micha³ Dadan, Leszek Mosingiewicz,Rafa³ SzpotonISBN: 83-7197-721-2Tytu³ orygina³u: Microsoft SQL Server 2000. UnleashedFormat: B5, stron: 1302

„Microsoft SQL Server 2000. Ksiêga eksperta” to pozycja przeznaczona dla �rednio zaawansowanego i zaawansowanego u¿ytkownika. Nadaje siê ona zarówno dla administratorów programu SQL Server, jak i programistów chc¹cych w pe³ni zrozumieæ dzia³anie tego produktu i pisaæ lepsze aplikacje oraz kod Transact-SQL. Je¿eli jeste� odpowiedzialny za analizê, projektowanie, implementacjê, obs³ugê, administrowanie czy rozwi¹zywanie problemów z SQL Server 2000, ta ksi¹¿ka bêdzie stanowiæ doskona³e �ród³o praktycznych informacji. Autorzy szczegó³owo omówili bardziej z³o¿one aspekty produktu, takie jak wykorzystanie nowych narzêdzi, kodowanie w jêzyku Transact-SQL, administrowanie serwerem, analizowanie zapytañ, optymalizacjê, hurtownie danych, zarz¹dzanie bardzo du¿ymi bazami danych i poprawianie wydajno�ci.

Omówione zagadnienia to m.in.

• �rodowisko Microsoft SQL Server 2000 i zmiany wprowadzone w najnowszej wersji programu • Instalowanie i konfigurowanie serwera i programów klienckich • Narzêdzia administracyjne i administrowanie SQL Serverem • Praca z SQL Server Enterprise Managerem i narzêdziami uruchamianymi z linii poleceñ • Tworzenie baz danych, tabel, indeksów, widoków • Pisanie procedur przechowywanych na serwerze i wyzwalaczy • Tworzenie w³asnych funkcji • Kwestie zwi¹zane z bezpieczeñstwem bazy danych, uprawnieniami u¿ytkowników i odzyskiwaniem danych w przypadku awarii • Zarz¹dzanie serwerami sprzê¿onymi i zdalnymi, tworzenie klastrów • Import, eksport i replikacja danych • U¿ycie jêzyka T-SQL • Wewnêtrzne mechanizmy serwera • Kwestie strojenia i optymalizacji zapytañ • Blokowanie i jego wp³yw na wydajno�æ • Techniki projektowania efektywnych baz danych • XML w programie SQL Server 2000 • Us³ugi analizy danych w programie SQL Server • Microsoft Transaction Server i jego zastosowanie

Ksi¹¿ka ta nie jest tylko opisem sk³adni, zastêpuj¹cym dokumentacjê do³¹czan¹ do SQL Server. Przydaje siê ona tam, gdzie dokumentacja online nie zdaje egzaminu. Autorzy dziel¹ siê z czytelnikami przyk³adami i przemy�leniami wynikaj¹cymi z ich wieloletniego do�wiadczenia zawodowego w pracy z MS SQL Server. „Microsoft SQL Server 2000. Ksiêga eksperta” to niezbêdne �ród³o informacji dla wszystkich pracuj¹cych z tym programem.

Page 2: Microsoft SQL Server 2000. Księga eksperta

���������

�������� �������������������������������������������������������������������������������������������������������

�����������������������������������������������������������������������������������������������������������������������

������������ �� ���������������������� ��������������������������������������

���������������������������������� ��!�"!������������������������������������������������#�Ogólny opis architektury klient-serwer ....................................................................................... 41

Model wykorzystujący komputery mainframe ....................................................................... 43Model wykorzystujący komputery PC pracujące w sieci LAN................................................. 43Warstwy pośredniczące ....................................................................................................... 43

Silnik baz danych SQL Servera ................................................................................................. 44Niezawodne przechowywanie danych................................................................................... 45Natychmiastowy dostęp do danych....................................................................................... 45Zapewnianie spójnego dostępu do danych............................................................................. 46Kontrola dostępu ................................................................................................................ 46Narzucanie reguł integralności danych.................................................................................. 46

SQL Server Enterprise Manager ................................................................................................ 47SQL Service Manager............................................................................................................... 48SQL Server Agent .................................................................................................................... 49SQL Query Analyzer ................................................................................................................ 50SQL Profiler ............................................................................................................................ 51Usługi przekształcania danych................................................................................................... 52Replikacja................................................................................................................................ 54

Replikacja migawkowa........................................................................................................ 54Replikacja transakcyjna....................................................................................................... 54Replikacja scalająca ............................................................................................................ 55Uaktualnienia błyskawiczne................................................................................................. 55

Microsoft Search Server (wyszukiwanie pełnotekstowe) .............................................................. 56Usługi analizy danych (OLAP Server)........................................................................................ 57

��������������������������$����!��%!��� ��!�"!����&&& ��������������������������' Środowiska pracy SQL Server 2000........................................................................................... 59

Windows 98 i Windows ME ................................................................................................ 59Windows NT 4.0 ................................................................................................................ 60Windows 2000 ................................................................................................................... 60Windows CE...................................................................................................................... 61Tabela platform systemowych i wersji SQL Servera 2000 ...................................................... 62

Page 3: Microsoft SQL Server 2000. Księga eksperta

6 Microsoft SQL Server 2000. Księga eksperta

Wersje SQL Servera 2000......................................................................................................... 63SQL Server 2000 Standard Edition ....................................................................................... 63SQL Server 2000 Enterprise Edition ..................................................................................... 64Inne wersje SQL Servera 2000............................................................................................. 65

Modele licencjonowania SQL Servera 2000................................................................................ 67Licencjonowanie wersji Personal Edition .............................................................................. 69Licencjonowanie wersji Database Engine.............................................................................. 69Licencjonowanie wersji Windows CE Edition ....................................................................... 69Wybór modelu licencjonowania ........................................................................................... 69Mieszanie modeli licencjonowania ....................................................................................... 70Licencje dla klastrów .......................................................................................................... 70

������������(���)������ ��!�"!��!��&&& ���������������������������������������������������*�Nowe właściwości SQL Servera 2000........................................................................................ 71

Funkcje definiowane przez użytkownika ............................................................................... 72Widoki indeksowane........................................................................................................... 72Rozproszone widoki częściowe............................................................................................ 73Wyzwalacze INSTEAD OF i AFTER................................................................................... 73Nowe typy danych.............................................................................................................. 73Tekst w wierszu danych ...................................................................................................... 74Kaskadowe ograniczenia RI................................................................................................. 74Możliwość uruchamiania kilku kopii SQL Servera................................................................. 74Obsługa XML .................................................................................................................... 75Przenoszenie dziennika........................................................................................................ 75

Rozszerzenia wprowadzone w SQL Serverze 2000...................................................................... 76Rozszerzenia w systemie indeksowania................................................................................. 76Rozszerzenia sposobu sortowania......................................................................................... 76Rozszerzenia DBCC ........................................................................................................... 77Rozszerzenia w wyszukiwaniu pełnotekstowym .................................................................... 77Rozszerzone możliwości tworzenia klastrów ......................................................................... 77Rozszerzenia dotyczące tworzenia i przywracania kopii bezpieczeństwa.................................. 78Obsługa do 64 GB pamięci .................................................................................................. 78Rozszerzenia usług analizy danych....................................................................................... 78

������������������������������ ����������������������������������������������������� !

���������#��+,���-���,�!�,��!%��������� ��!�"!����������������������������������������.�Wybór wersji SQL Servera ....................................................................................................... 83Wymagania sprzętowe.............................................................................................................. 85

Procesor ............................................................................................................................ 85Pamięć............................................................................................................................... 85Przestrzeń dyskowa i rodzaje dysków twardych..................................................................... 86

Wymagania programowe........................................................................................................... 86System operacyjny.............................................................................................................. 87System plików.................................................................................................................... 87Pozostałe wymagania .......................................................................................................... 88

Wybór opcji konfiguracyjnych w czasie instalacji........................................................................ 88Wybór komponentów SQL Servera i miejsca położenia plików............................................... 88Konta użytkowników programów SQL Server i SQL Server Agent ......................................... 90Wybór trybu uwierzytelniania .............................................................................................. 91

Page 4: Microsoft SQL Server 2000. Księga eksperta

Spis treści 7

Wybór domyślnego sposobu sortowania................................................................................ 91Biblioteki sieciowe.............................................................................................................. 92Metody licencjonowania...................................................................................................... 93

Sprawdzanie poprawności instalacji ........................................................................................... 94Uruchamianie, zatrzymywanie i pauzowanie SQL Servera ........................................................... 94

Łączenie się z SQL Serverem .............................................................................................. 95Konfiguracja SQL Servera po jego zainstalowaniu ...................................................................... 96

Zmiana hasła użytkownika sa............................................................................................... 96Konfiguracja kont administratora ......................................................................................... 96Konfiguracja dziennika błędów............................................................................................ 97Narzędzie Server Network................................................................................................... 97

Rozwiązywanie problemów z instalacją...................................................................................... 97Instalacja zdalna ....................................................................................................................... 98Instalacja nienadzorowana......................................................................................................... 98Instalowanie kopii SQL Servera o określonej nazwie ................................................................... 99

Po co instalować wiele kopii SQL Servera ............................................................................ 99Uaktualnianie z wcześniejszych wersji ..................................................................................... 100

���������'��+,���-���,�!�����,��/���%���-�!,�� �����������������������������������������&�Architektura klienta SQL Servera ............................................................................................ 101Instalowanie narzędzi klienckich.............................................................................................. 103

Wymagania klientów......................................................................................................... 103Opcje instalacyjne............................................................................................................. 103

Konfiguracja klientów............................................................................................................. 105Narzędzie konfiguracji sieci SQL Servera ........................................................................... 106

Obsługa protokołów sieciowych .............................................................................................. 109Protokoły sieciowe............................................................................................................ 109Rozwiązywanie problemów z połączeniami klienckimi ........................................................ 112

Instalowanie ODBC................................................................................................................ 115Konfiguracja źródeł danych ODBC .................................................................................... 115Rozwiązywanie problemów z połączeniami ODBC.............................................................. 116OLE DB .......................................................................................................................... 116

Łączenie się z SQL Serverem za pośrednictwem Internetu ......................................................... 117Zabezpieczanie połączeń przychodzących z Internetu .......................................................... 117Łączenie się z SQL Serverem za pośrednictwem Microsoft Proxy Server .............................. 118

����������"����#����#$�����%�����#$���� ����&��'��$�$�������������������������������������������������� !!�

���������0��1��������!���,�%!���,�����������2�,������������������������������Obowiązki administratora systemu........................................................................................... 121Systemowe bazy danych......................................................................................................... 122

master.............................................................................................................................. 122msdb ............................................................................................................................... 122model .............................................................................................................................. 123tempdb ............................................................................................................................ 123Baza distribution............................................................................................................... 123

Tabele systemowe.................................................................................................................. 123Katalog systemowy........................................................................................................... 124Katalog baz danych........................................................................................................... 125

Page 5: Microsoft SQL Server 2000. Księga eksperta

8 Microsoft SQL Server 2000. Księga eksperta

Katalog replikacji.............................................................................................................. 125Tabele systemowe w msdb ................................................................................................ 126

Procedury przechowywane w systemie..................................................................................... 127Specjalne cechy procedur przechowywanych w systemie ..................................................... 128

Przydatne procedury systemowe.............................................................................................. 128Inne sposoby wykonywania zapytań na tabelach systemowych................................................... 129

Widoki schematów informacyjnych.................................................................................... 129Funkcje systemowe i funkcje operujące na metadanych ....................................................... 130

���������*���� ��!�"!��3,�!�����!���,�/!� ��������������������������������������������������Tworzenie grup serwerów i rejestrowanie SQL Servera w Enterprise Managerze ......................... 132

Grupy serwerów............................................................................................................... 132Rejestrowanie serwerów.................................................................................................... 132Łączenie się z i odłączanie się od serwerów ........................................................................ 133Uruchamianie i zatrzymywanie serwerów ........................................................................... 134

Konfiguracja serwera.............................................................................................................. 134Opcje serwera .................................................................................................................. 135Opcje dotyczące bezpieczeństwa........................................................................................ 135Zmiana konfiguracji .......................................................................................................... 135

Bazy danych.......................................................................................................................... 136Tworzenie i modyfikacja baz danych.................................................................................. 136Tworzenie i przywracanie kopii bezpieczeństwa.................................................................. 138Praca z diagramami baz danych ......................................................................................... 138

Bezpieczeństwo...................................................................................................................... 139Zarządzanie nazwami użytkowników i rolami ..................................................................... 139Zarządzanie serwerami połączonymi i zdalnymi .................................................................. 141

Zarządzanie serwerem ............................................................................................................ 141SQL Server Agent............................................................................................................. 141Kopie bezpieczeństwa ....................................................................................................... 142Bieżące operacje............................................................................................................... 142Plany konserwacji baz danych ........................................................................................... 143Dzienniki SQL Servera ..................................................................................................... 143

Usługi przekształcania danych................................................................................................. 145Usługi pomocnicze ................................................................................................................. 145

Koordynator transakcji rozproszonych................................................................................ 145Wyszukiwanie pełnotekstowe ............................................................................................ 146SQL Mail......................................................................................................................... 146

Narzędzia systemowe ............................................................................................................. 146Query Analyzer ................................................................................................................ 146SQL Profiler..................................................................................................................... 147Zarządzanie komunikatami o błędach ................................................................................. 148

Replikacja.............................................................................................................................. 149Publikacje ........................................................................................................................ 149Subskrypcje ..................................................................................................................... 149

Korzystanie z narzędzia Database Taskpad............................................................................... 150Korzystanie z Query Designera................................................................................................ 151Obiekty skryptowe ................................................................................................................. 152Uzyskiwanie pomocy.............................................................................................................. 154

Page 6: Microsoft SQL Server 2000. Księga eksperta

Spis treści 9

���������.��(����������$���$��,!�����!�������-!!4����������������������������''BCP...................................................................................................................................... 155Narzędzia związane z usługami przekształcania danych............................................................. 156ISQL i OSQL......................................................................................................................... 157makepipe i readpipe................................................................................................................ 158ODBCcmpt............................................................................................................................ 159odbcping................................................................................................................................ 159rebuildm................................................................................................................................ 160regrebld ................................................................................................................................. 161Narzędzia związane z replikacją danych ................................................................................... 161SQLDiag ............................................................................................................................... 163SQLMaint.............................................................................................................................. 164SQLServer............................................................................................................................. 165VSwitch ................................................................................................................................ 165

��������� ��5����!,�!�6�����,$�������7���,�!�,�2�������������������������������0*Co składa się na bazę danych SQL Servera............................................................................... 167Przechowywanie danych w SQL serwerze................................................................................ 168Pliki baz danych..................................................................................................................... 168

Pliki podstawowe.............................................................................................................. 169Pliki dodatkowe................................................................................................................ 169Korzystanie z grup plików ................................................................................................. 170Plik dziennika transakcji.................................................................................................... 171

Tworzenie baz danych............................................................................................................ 171Korzystanie z kreatora Create Database (utwórz bazę danych) .............................................. 172Korzystanie z Enterprise Managera..................................................................................... 172Korzystanie z T-SQL........................................................................................................ 174

Zarządzanie bazami danych..................................................................................................... 175Zarządzanie rozszerzaniem plików ..................................................................................... 175Rozszerzanie baz danych................................................................................................... 175Zmniejszanie baz danych................................................................................................... 176

Ustawianie opcji baz danych ................................................................................................... 179Opcje baz danych ............................................................................................................. 179Ustawianie opcji baz danych za pomocą Enterprise Managera .............................................. 179Ustawianie opcji baz danych w języku T-SQL .................................................................... 180Uzyskiwanie informacji o bieżących ustawieniach ............................................................... 181

����������&��5����!,�!���6!-�������7���,�!�,�2�����������������������������������������.'Typy danych.......................................................................................................................... 186

Znakowe i binarne typy danych.......................................................................................... 186uniqueidentifier ................................................................................................................ 188timestamp ........................................................................................................................ 188Typy danych datetime....................................................................................................... 188Logiczny typ danych: bit ................................................................................................... 190

Numeryczne typy danych........................................................................................................ 190Typy danych dla liczb całkowitych..................................................................................... 190Przybliżone typy numeryczne ............................................................................................ 191Precyzyjne typy numeryczne ............................................................................................. 191Typy money..................................................................................................................... 191

Page 7: Microsoft SQL Server 2000. Księga eksperta

10 Microsoft SQL Server 2000. Księga eksperta

Synonimy typów danych......................................................................................................... 192Typy danych zdefiniowane przez użytkownika.......................................................................... 192Tworzenie tabel...................................................................................................................... 193

Nazywanie tabel ............................................................................................................... 194Tworzenie tabel w języku T-SQL ............................................................................................ 195

Definiowanie kolumn........................................................................................................ 195Właściwości kolumn ......................................................................................................... 196Wybór lokalizacji dla tabeli ............................................................................................... 197Definiowanie stałych......................................................................................................... 198Dodawanie, usuwanie i modyfikacja kolumn w języku T-SQL ............................................. 199

Tworzenie tabel za pomocą Table Designera............................................................................. 202Dodawanie, usuwanie i modyfikacja kolumn w Table Designerze ......................................... 202Generowanie skryptów tworzących tabele........................................................................... 203

Przeglądanie właściwości tabel i zawartych w nich danych w Enterprise Managerze .................... 204Ograniczenia rozmiarów i wymiarów tabel ............................................................................... 205Usuwanie tabel....................................................................................................................... 206Tabele tymczasowe ................................................................................................................ 206

Tworzenie tabel tymczasowych.......................................................................................... 206

�������������5����!,�!��,�!��8��������7���,�!�,�2� ��������������������������������&*Rodzaje indeksów .................................................................................................................. 208

Indeksy klastrowe............................................................................................................. 208Indeksy nieklastrowe......................................................................................................... 208

Tworzenie indeksów w języku T-SQL ..................................................................................... 209Składnia polecenia CREATE INDEX................................................................................. 209Przykłady użycia poleceń języka Transact-SQL do tworzenia indeksów ................................ 209

Tworzenie indeksów w Enterprise Managerze........................................................................... 211Zarządzanie indeksami............................................................................................................ 212Usuwanie indeksów................................................................................................................ 212

���������������8%,�)9���,$ �����������������������������������������������������������������������Rodzaje spójności danych ....................................................................................................... 213

Spójność domenowa ......................................................................................................... 214Spójność jednostkowa....................................................................................................... 214Spójność odwoławcza ....................................................................................................... 214

Wymuszanie spójności danych ................................................................................................ 214Deklaracje........................................................................................................................ 214Metody proceduralne ........................................................................................................ 215

Ograniczenia.......................................................................................................................... 215Ograniczenia PRIMARY KEY .......................................................................................... 215Ograniczenia UNIQUE ..................................................................................................... 216Ograniczenie zapewniające spójność odwoławczą: FOREIGN KEY...................................... 216Ograniczenia CHECK....................................................................................................... 218Nakładanie ograniczeń w Enterprise Managerze .................................................................. 220Zarządzanie ograniczeniami............................................................................................... 222Zbieranie informacji o istniejących ograniczeniach .............................................................. 222

Reguły................................................................................................................................... 223Stosowanie reguł............................................................................................................... 224Tworzenie reguł i zarządzanie nimi .................................................................................... 224Ograniczenia reguł ............................................................................................................ 225

Page 8: Microsoft SQL Server 2000. Księga eksperta

Spis treści 11

Wartości domyślne ................................................................................................................. 225Deklaratywne wartości domyślne ....................................................................................... 226Związywane wartości domyślne ......................................................................................... 226Zastosowanie wartości domyślnych.................................................................................... 227Kiedy nadawane są wartości domyślne ............................................................................... 227Pierwszeństwo powiązań z regułami i wartościami domyślnymi............................................ 229

�������������5����!,�!������8��������7���,�!�,�2� �����������������������������������Definicja widoku.................................................................................................................... 231Widoki ułatwiające dostęp do danych....................................................................................... 232Widoki jako mechanizm bezpieczeństwa .................................................................................. 233Zmiany w danych a widoki...................................................................................................... 234Tworzenie widoków ............................................................................................................... 235

Wytyczne dotyczące tworzenia widoków............................................................................ 235Ograniczenia związane z tworzeniem widoków ................................................................... 236Tworzenie widoków w języku T-SQL ................................................................................ 236Tworzenie widoków za pomocą View Designera ................................................................. 238

Modyfikacja i usuwanie widoków............................................................................................ 240Modyfikacja widoków....................................................................................................... 240Usuwanie widoków........................................................................................................... 240

Widoki partycji ...................................................................................................................... 241Tworzenie widoku partycji ................................................................................................ 242Uaktualnianie danych za pośrednictwem widoku partycji ..................................................... 242

Widoki indeksowane............................................................................................................... 243Trochę teorii..................................................................................................................... 243Zalety widoków indeksowanych......................................................................................... 243Wady widoków indeksowanych ......................................................................................... 244

����������#��5����!,�!����!�������!��$��,$�,���!��!��!������7���,�!�,�2� ������������������������������������������������������������������������������������������#'

Zalety procedur przechowywanych na serwerze........................................................................ 245Tworzenie i wykonywanie procedur......................................................................................... 247

Grupy procedur ................................................................................................................ 248Odroczone odwzorowywanie nazw.......................................................................................... 249

Identyfikacja obiektów, do których odwołuje się procedura .................................................. 251Przeglądanie i modyfikacja treści procedur ............................................................................... 252Parametry wejściowe.............................................................................................................. 257

Ustawianie domyślnych wartości parametrów ..................................................................... 258Przekazywanie nazw obiektów w parametrach .................................................................... 260Stosowanie masek w parametrach ...................................................................................... 261

Parametry wyjściowe.............................................................................................................. 262Kod wyjścia........................................................................................................................... 263

Systemowe kody wyjścia................................................................................................... 264Stosowanie kursorów w procedurach ....................................................................................... 264

Zmienne typu cursor ......................................................................................................... 266Procedury zagnieżdżone.......................................................................................................... 269

Procedury rekurencyjne..................................................................................................... 270Stosowanie tabel tymczasowych w procedurach........................................................................ 273

Tabele tymczasowe a wydajność........................................................................................ 275

Page 9: Microsoft SQL Server 2000. Księga eksperta

12 Microsoft SQL Server 2000. Księga eksperta

Posługiwanie się typem danych table ....................................................................................... 278Zdalne procedury ................................................................................................................... 280Usuwanie błędów w procedurach za pomocą Query Analyzera ................................................... 281Usuwanie błędów w procedurach w Microsoft Visual Studio i w Visual Basicu ........................... 282Procedury systemowe............................................................................................................. 283

Tworzenie własnych procedur systemowych....................................................................... 285Ostrzeżenie przed bezpośrednim odwoływaniem się do tabel systemowych ........................... 287Systemowe widoki schematów informacyjnych ................................................................... 287Widoki zgodne ze standardem ANSI .................................................................................. 288

Wydajność procedur............................................................................................................... 288Buforowanie informacji o zapytaniach ................................................................................ 289Pamięć podręczna procedur ............................................................................................... 290Współdzielone plany wykonywania.................................................................................... 291Automatyczna rekompilacja planów wykonywania .............................................................. 293Wymuszanie rekompilacji planów wykonywania ................................................................. 298

Stosowanie dynamicznych poleceń języka SQL w procedurach.................................................. 301Korzystanie z sp_executesql .............................................................................................. 303

Procedury wywoływane przy starcie ........................................................................................ 305Rozszerzone procedury przechowywane .................................................................................. 308

Tworzenie procedur rozszerzonych .................................................................................... 309Instalacja procedur rozszerzonych na serwerze.................................................................... 310Przeglądanie informacji na temat procedur rozszerzonych.................................................... 310Procedury rozszerzone dostarczane z SQL Serverem ........................................................... 310Posługiwanie się procedurą xp_cmdshell............................................................................. 311

Ograniczenia procedur i rady dla programistów......................................................................... 314Wywoływanie procedur w czasie trwania transakcji ............................................................. 315

����������'��5����!,�!��$���-��$�������7���,�!�,�2������������������������������ Zalety wyzwalaczy i ich zastosowania...................................................................................... 319Tworzenie wyzwalaczy........................................................................................................... 321Wyzwalacze AFTER .............................................................................................................. 323

Wykonywanie .................................................................................................................. 325Kolejność wywoływania wyzwalaczy................................................................................. 326Przypadki szczególne ........................................................................................................ 326Ograniczenia wyzwalaczy AFTER..................................................................................... 327

Tabele inserted i deleted.......................................................................................................... 327Sprawdzanie, czy kolumny były uaktualniane ........................................................................... 329Wyzwalacze zagnieżdżone ...................................................................................................... 330Wyzwalacze rekurencyjne....................................................................................................... 331Narzucanie spójności odwoławczej za pomocą wyzwalaczy....................................................... 332

Kaskadowe usuwanie danych............................................................................................. 333Kaskadowe uaktualnianie danych....................................................................................... 335

Wyzwalacze INSTEAD OF..................................................................................................... 337Wykonywanie .................................................................................................................. 338Porównanie wyzwalaczy AFTER i INSTEAD OF ............................................................... 339Jednoczesne stosowanie wyzwalaczy AFTER i INSTEAD OF.............................................. 340Definiowanie wyzwalaczy INSTEAD OF dla widoków........................................................ 341Ograniczenia wyzwalaczy INSTEAD OF............................................................................ 344

Page 10: Microsoft SQL Server 2000. Księga eksperta

Spis treści 13

����������0��:�,�%!��!��,����,!����!���;$����,���������������������������������#'Po co korzystać z funkcji definiowanych przez użytkownika ...................................................... 345Rodzaje funkcji ...................................................................................................................... 347

Funkcje skalarne............................................................................................................... 347Funkcje zwracające wartości tabelowe................................................................................ 349

Tworzenie funkcji i zarządzanie nimi ....................................................................................... 351Tworzenie funkcji............................................................................................................. 351Przeglądanie i modyfikowanie funkcji ................................................................................ 357Zarządzanie uprawnieniami funkcji definiowanych przez użytkowników............................... 363

Uruchamianie funkcji zdefiniowanych przez użytkownika ......................................................... 363Globalne funkcje o wartościach tabelowych.............................................................................. 363Przepisywanie procedur przechowywanych na serwerze do postaci funkcji.................................. 364

����������*��<�/��,�!,���6!���!�!4����������7���,�!��;$����,���2� �����������������������������������������������������������������������0*

Ogólny opis systemu bezpieczeństwa SQL Servera ................................................................... 367Metody uwierzytelniania ......................................................................................................... 368

Tryb uwierzytelniania Windows......................................................................................... 368Tryb mieszany.................................................................................................................. 368Wybór trybu uwierzytelniania ............................................................................................ 368Uprawnienia..................................................................................................................... 369

Mechanizm bezpieczeństwa: loginy ......................................................................................... 370Mechanizm bezpieczeństwa: nazwy użytkowników................................................................... 370

dbo.................................................................................................................................. 371guest................................................................................................................................ 371

Mechanizm bezpieczeństwa: role ............................................................................................. 371Zdefiniowane na stałe role odnoszące się do całego serwera ................................................. 372Zarządzanie rolami odnoszącymi się do całego serwera........................................................ 372Zdefiniowane na stałe role odnoszące się do baz danych ...................................................... 373Zarządzanie rolami odnoszącymi się do baz danych............................................................. 373Role definiowane przez użytkownika.................................................................................. 374Role przeznaczone dla aplikacji.......................................................................................... 375

Zarządzanie loginami.............................................................................................................. 376Zarządzanie loginami za pomocą Enterprise Managera......................................................... 376Zarządzanie loginami za pomocą poleceń języka T-SQL...................................................... 378

Zarządzanie użytkownikami .................................................................................................... 379Zarządzanie użytkownikami za pośrednictwem Enterprise Managera..................................... 379Zarządzanie użytkownikami za pośrednictwem poleceń języka T-SQL.................................. 380

Zarządzanie rolami ................................................................................................................. 380Zarządzanie rolami za pośrednictwem Enterprise Managera.................................................. 380Zarządzanie rolami za pośrednictwem poleceń języka T-SQL............................................... 381

Zarządzanie uprawnieniami ..................................................................................................... 382Zarządzanie uprawnieniami poleceniowymi ........................................................................ 382Zarządzanie uprawnieniami poleceniowymi za pośrednictwem Enterprise Managera .............. 382Zarządzanie uprawnieniami poleceniowymi w języku T-SQL............................................... 383Zarządzanie uprawnieniami na poziomie obiektów .............................................................. 384Zarządzanie uprawnieniami na poziomie obiektów w Enterprise Managerze .......................... 384Zarządzanie uprawnieniami na poziomie obiektów w języku T-SQL..................................... 385

Page 11: Microsoft SQL Server 2000. Księga eksperta

14 Microsoft SQL Server 2000. Księga eksperta

Różne podejścia do zagadnienia uprawnień............................................................................... 386Przydzielanie uprawnień do roli public ............................................................................... 386Przydzielanie uprawnień do ról zdefiniowanych przez użytkownika ...................................... 386Przydzielanie uprawnień za pośrednictwem widoków .......................................................... 386Przydzielanie uprawnień za pośrednictwem procedur przechowywanych na serwerze............. 386Przedzielanie uprawnień za pośrednictwem ról przeznaczonych dla aplikacji ......................... 387

Właściciele obiektów.............................................................................................................. 387Zmiana właściciela obiektu................................................................................................ 387

Szyfrowanie obiektów............................................................................................................. 387

����������.��5����!,�!�������6!���!�!4����������$�����,�!���,$�����. Opracowanie planu tworzenia kopii bezpieczeństwa.................................................................. 389Po co tworzy się kopie bezpieczeństwa..................................................................................... 390Typowy proces tworzenia kopii bezpieczeństwa i odzyskiwania danych...................................... 391Rodzaje kopii bezpieczeństwa ................................................................................................. 392

Pełne kopie baz danych..................................................................................................... 392Różnicowe kopie baz danych............................................................................................. 393Kopie plików i grup plików ............................................................................................... 393Kopie dziennika transakcji................................................................................................. 394Tryby odzyskiwania danych............................................................................................... 394Tryb pełny ....................................................................................................................... 394Tryb logowany ................................................................................................................. 395Tryb prosty ...................................................................................................................... 395

Wybór trybu odzyskiwania danych .......................................................................................... 396Urządzenia do wykonywania kopii........................................................................................... 396

Urządzenia taśmowe ......................................................................................................... 396Urządzenia dyskowe ......................................................................................................... 397Taśma czy dysk................................................................................................................ 397Urządzenia dostępne w sieci na określonych kanałach.......................................................... 398Wykonywanie kopii na kilku urządzeniach.......................................................................... 398

Nośniki.................................................................................................................................. 398Wprowadzanie informacji o nowych urządzeniachdo tworzenia kopii za pomocą poleceń języka T-SQL................................................................ 399Wprowadzanie informacji o nowych urządzeniachdo tworzenia kopii za pomocą Enterprise Managera................................................................... 402Tworzenie kopii bazy danych .................................................................................................. 402

Tworzenie kopii baz danych za pomocą poleceń języka T-SQL ............................................ 403Tworzenie kopii baz danych za pomocą Enterprise Managera ............................................... 405

Tworzenie kopii dziennika transakcji........................................................................................ 408Tworzenie kopii dziennika transakcji za pomocą poleceń języka T-SQL................................ 408NO_LOG oraz TRUNCATE_ONLY.................................................................................. 408NO_TRUNCATE............................................................................................................. 409NORECOVERY | STANDBY= nazwa_pliku_undo............................................................. 409Przykłady użycia polecenia BACKUP LOG........................................................................ 410Tworzenie kopii dziennika transakcji za pomocą Enterprise Managera................................... 410Tworzenie kopii bezpieczeństwa baz systemowych.............................................................. 412

Odtwarzanie zawartości bazy danych z kopii bezpieczeństwa..................................................... 412Uzyskiwanie informacji na temat posiadanych kopii bezpieczeństwa..................................... 413Odtwarzanie zawartości baz danych za pomocą poleceń języka T-SQL ................................. 413Odtwarzanie zawartości dziennika transakcji za pomocą poleceń języka T-SQL..................... 415

Page 12: Microsoft SQL Server 2000. Księga eksperta

Spis treści 15

Przykłady odzyskiwania danych za pomocą poleceń języka T-SQL ............................................ 416Odtwarzanie danych z kopii bezpieczeństwa za pomocą Enterprise Managera ........................ 417

Umieszczanie danych odzyskanych z kopii bezpieczeństwa w innej bazie danych........................ 419Odzyskiwanie plików i grup plików ......................................................................................... 420Odtwarzanie stanu bazy z określonej chwili .............................................................................. 420Częściowe odtwarzanie bazy danych z kopii bezpieczeństwa...................................................... 421Odtwarzanie systemowych baz danych..................................................................................... 421Inne zagadnienia dotyczące kopii bezpieczeństwa ..................................................................... 422

Częstotliwość wykonywania kopii baz danych .................................................................... 422Korzystanie z serwera standby........................................................................................... 423Uwagi dotyczące bardzo dużych baz danych....................................................................... 424

���������� ��1�!-�/,�%��6�����,$��������������������������������������������������������#�'Co wymaga pielęgnacji ........................................................................................................... 425Kreator planu konserwacji bazy danych (DBMPW)................................................................... 425

Wybór baz danych............................................................................................................ 426Aktualizacja informacji optymalizujących dostęp do danych i ich przechowywania ................ 426Kontrola integralności bazy danych.................................................................................... 427Określenie planu tworzenia kopii zapasowych..................................................................... 428Wybór katalogu dyskowego dla kopii bazy danych.............................................................. 428Określenie planu tworzenia kopii transakcji......................................................................... 428Wybór katalogu dyskowego dla kopii transakcji .................................................................. 429Generowanie raportów ...................................................................................................... 429Historia konserwacji bazy danych ...................................................................................... 430Zakończenie pracy kreatora ............................................................................................... 430

Ustalanie własnych zadań pielęgnacyjnych ............................................................................... 431Polecenia konsoli bazy danych (DBCC) ................................................................................... 432

Wykrywanie i rozwiązywanie problemów związanych z uszkodzeniem baz danych................ 433Użycie DBCC do włączenia znaczników śledzenia .............................................................. 434

Użycie SQLMAINT.exe do pielęgnacji bazy danych................................................................. 434

����������&���� ��!�"!��=�����,������������2��,�! �����������������������������#�'SQL Agent ............................................................................................................................ 435Konfigurowanie SQL Agenta .................................................................................................. 436

Konto początkowe............................................................................................................ 436Profil pocztowy ................................................................................................................ 436Agent jako użytkownik...................................................................................................... 437Konto proxy SQL Agenta .................................................................................................. 437

Przeglądanie dzienników błędów agenta ................................................................................... 437Operatorzy............................................................................................................................. 438Zadania ................................................................................................................................. 439

Definiowanie właściwości zadań........................................................................................ 439Definiowanie elementów zadań.......................................................................................... 440Tworzenie terminarza zadań .............................................................................................. 442Określenie sposobów powiadamiania.................................................................................. 442Przeglądanie historii zadań ................................................................................................ 443

Ostrzeżenia ............................................................................................................................ 443Definiowanie właściwości ostrzeżeń................................................................................... 443Definiowanie operatorów i odpowiedzi na ostrzeżenia.......................................................... 444

Page 13: Microsoft SQL Server 2000. Księga eksperta

16 Microsoft SQL Server 2000. Księga eksperta

Skrypty zadań i ostrzeżeń........................................................................................................ 445Zarządzanie zadaniami wielu serwerów.................................................................................... 446

Utworzenie SQL Agenta dla serwera głównego ................................................................... 446Lista serwerów docelowych............................................................................................... 446Zadania dla wielu serwerów............................................................................................... 446

Przesyłanie informacji o zdarzeniach........................................................................................ 446

�������������<���7���,�!��!��!��2�������;�,$2�������-,$2� ����������������## Zdalne serwery....................................................................................................................... 449

Konfigurowanie zdalnego serwera...................................................................................... 450Serwery sprzężone ................................................................................................................. 454

Rzeczywiście sprzężone .................................................................................................... 454Zapytania rozproszone ...................................................................................................... 455Transakcje rozproszone..................................................................................................... 455

Dodawanie, usuwanie i konfigurowanie serwerów sprzężonych.................................................. 456sp_addlinkedserver ........................................................................................................... 456sp_linkedserver................................................................................................................. 458sp_dropserver................................................................................................................... 459sp_serveroption ................................................................................................................ 459

Mapowanie lokalnych logowań do logowań na serwerach sprzężonych....................................... 461sp_addlinkedserverlogin .................................................................................................... 461sp_droplinkedserverlogin................................................................................................... 462sp_helplinkedsrvlogin ....................................................................................................... 463

Uzyskiwanie informacji o serwerach sprzężonych..................................................................... 464Wykonanie procedury przechowywanej na serwerze sprzężonym............................................... 465Konfigurowanie serwerów przyłączonych przez Enterprise Manager........................................... 465

�������������+2�������!���������,$��� ��!�"!�����$����$���,�!2����/��2��2����!/���������,���>?@1A �����������������#0

Program masowego kopiowania (BCP) .................................................................................... 475Podstawy eksportu i importu danych .................................................................................. 477Typy danych pliku ............................................................................................................ 480Plik formatu danych.......................................................................................................... 480Używanie widoków........................................................................................................... 487Ładowanie danych binarnych............................................................................................. 488

Operacje rejestrowane i nierejestrowane................................................................................... 489Pakiety ............................................................................................................................ 489Ładowanie współbieżne..................................................................................................... 490Wskazówki sposobu kopiowania ........................................................................................ 491

Instrukcja T-SQL BULK INSERT........................................................................................... 493Zwiększenie wydajności kopiowania........................................................................................ 494Dodatki do programu masowego kopiowania ............................................................................ 495

�������������+2�������,�!���!���������,�!���,$��� ��!�"!�������2�7�����/����,����2�%����,$�>B5�A������������������������������������������#

Koncepcja i architektura usług transformacji danych ................................................................. 502Narzędzia DTS................................................................................................................. 504

Narzędzia wspomagające uruchamianie pakietów...................................................................... 506Uruchamianie i wykorzystanie kreatora DTS............................................................................ 509

Page 14: Microsoft SQL Server 2000. Księga eksperta

Spis treści 17

Projektowanie pakietów DTS (DTS Designer) .......................................................................... 513Pompa danych.................................................................................................................. 517Zapytania zależne od danych (DDQs)................................................................................. 518

Nieco więcej o metadanych..................................................................................................... 518

����������#����2�,�������,�!�6��������;$2�6���2����,$��� ��!�"!�������������������������������������������������������������������������'�

Czy moja baza to bardzo duża baza danych (BDBD)................................................................. 519Metody konserwacji BDBD .................................................................................................... 520

Tworzenie kopii zapasowej i odtwarzanie bazy danych ........................................................ 520Prowadzenie kontroli integralności ..................................................................................... 520Aktualizacja statystyk ....................................................................................................... 521Odbudowywanie indeksów ................................................................................................ 521Usuwanie zbędnych danych i archiwizacja .......................................................................... 522

Partycjonowanie danych ......................................................................................................... 522Partycjonowanie pionowe.................................................................................................. 522Partycjonowanie poziome.................................................................................................. 523Użycie rozproszonych widoków partycjonowanych ............................................................. 523

����������'���!�-���%����,$������������������������������������������������������������������'�'Czym jest replikacja ............................................................................................................... 525Publikator, dystrybutor i subskrybent ....................................................................................... 527

Publikacje i artykuły ......................................................................................................... 528Filtrowanie artykułów ....................................................................................................... 528

Scenariusze replikacji ............................................................................................................. 531Centralny publikator.......................................................................................................... 531Centralny publikator ze zdalnym dystrybutorem .................................................................. 532Publikujący subskrybent.................................................................................................... 533Centralny subskrybent....................................................................................................... 534Wiele publikatorów lub wiele subskrybentów...................................................................... 534Modyfikujący subskrybent................................................................................................. 535Subskrypcje ..................................................................................................................... 536Subskrypcja anonimowa (żądana) ...................................................................................... 537Dystrybucyjna baza danych............................................................................................... 537

Agenci replikacji .................................................................................................................... 538Agent migawki ................................................................................................................. 539Agent odczytu dziennika transakcji (Log Reader Agent)....................................................... 541Agent dystrybucji (Distribution Agent) ............................................................................... 542Agent scalający (Merge Agent) .......................................................................................... 542Pozostałe agenty replikacji (Miscellaneous Agents) ............................................................. 543

Planowanie replikacji danych SQL Servera............................................................................... 544Autonomia, synchronizowanie i opóźnienie danych ............................................................. 544Metody dystrybucji danych................................................................................................ 545

Typy replikacji w SQL Serverze .............................................................................................. 546Replikacja migawkowa...................................................................................................... 546Replikacja transakcyjna..................................................................................................... 547Replikacja scalająca .......................................................................................................... 548

Wymagania użytkowników a projektowanie replikacji............................................................... 549Charakterystyki danych..................................................................................................... 550

Page 15: Microsoft SQL Server 2000. Księga eksperta

18 Microsoft SQL Server 2000. Księga eksperta

Konfigurowanie replikacji ....................................................................................................... 551Włączenie publikowania.................................................................................................... 552Tworzenie publikacji......................................................................................................... 554Tworzenie subskrypcji ...................................................................................................... 555

Skrypty replikacji ................................................................................................................... 558Monitorowanie replikacji ........................................................................................................ 560

Polecenia SQL.................................................................................................................. 560SQL Enterprise Manager ................................................................................................... 562Rozwiązywanie problemów związanych z błędami replikacji................................................ 563Monitor wydajności .......................................................................................................... 566Replikacja w środowiskach heterogenicznych...................................................................... 566Replikacja do subskrybentów internetowych ....................................................................... 567Konfiguracja publikatora lub dystrybutora do nasłuchu na TCP/IP........................................ 567Konfiguracja publikacji do użycia FTP............................................................................... 567Konfiguracja subskrypcji do wykorzystania FTP................................................................. 567Tworzenie kopii zapasowej i odzyskiwanie konfiguracji replikacyjnej ................................... 568Kilka uwag o wydajności................................................................................................... 569Przesyłanie dziennika transakcji jako alternatywa replikacji danych ...................................... 569

����������0��B!��,����,�!�)������������ ��!�"!�������,�!,%��,�������'*�Określenie środowisk SQL Servera .......................................................................................... 573

Środowisko tworzenia oprogramowania.............................................................................. 574Środowisko testowania aplikacji......................................................................................... 578Środowisko eksploatacyjne................................................................................................ 580Wykorzystanie kontroli kodu źródłowego ........................................................................... 581

Konwencje używania nazw w SQL Serverze ............................................................................ 581Nazwy SQL Servera ......................................................................................................... 582Przykład konwencji nazwania ............................................................................................ 591Standardy nazw systemu operacyjnego ............................................................................... 591

�������(�)��%��*+��� ������������������������������������������������������������������������ ,�,

����������*���$����$���,�!�%��$���5C�� ��������������������������������������������������' *T-SQL i ANSI i ISO SQL ....................................................................................................... 597Co nowego w T-SQL.............................................................................................................. 598

Nowe typy danych............................................................................................................ 599Funkcje definiowane przez użytkowników .......................................................................... 603Widoki indeksowane......................................................................................................... 604Nowości wprowadzone w SQL Server 7.0 .......................................................................... 604

SELECT, INSERT, UPDATE i DELETE................................................................................. 605Instrukcja SELECT........................................................................................................... 606GRUP BY i HAVING....................................................................................................... 609CUBE, ROLLUP, GROUPING ......................................................................................... 610Łączenie tabel................................................................................................................... 614Podzapytania.................................................................................................................... 617Dodawanie wierszy za pomocą INSERT............................................................................. 620Modyfikacja wierszy tabeli — UPDATE............................................................................ 621Usuwanie wierszy za pomocą DELETE.............................................................................. 622

Page 16: Microsoft SQL Server 2000. Księga eksperta

Spis treści 19

Funkcje SQL Servera ............................................................................................................. 622Funkcje łańcuchowe (String Functions)............................................................................... 623Funkcje matematyczne...................................................................................................... 623Funkcje daty .................................................................................................................... 624Funkcje metadanych ......................................................................................................... 626Funkcje systemowe........................................................................................................... 626Funkcje dostępu ............................................................................................................... 629Funkcje Text i Image......................................................................................................... 629Funkcje zestawu rekordów ................................................................................................ 630Funkcje bez argumentów................................................................................................... 632Funkcje agregujące ........................................................................................................... 633

Konstrukcje programowe ........................................................................................................ 639Instrukcja IF..................................................................................................................... 639WHILE, BREAK i CONTINUE ........................................................................................ 639Wyrażenie CASE.............................................................................................................. 640RETURN......................................................................................................................... 641GOTO............................................................................................................................. 642WAITFOR....................................................................................................................... 642EXECUTE....................................................................................................................... 642Wsady (Batches) .............................................................................................................. 643Komentarze...................................................................................................................... 644Zmienne lokalne ............................................................................................................... 645Funkcje nazywane zmiennymi globalnymi .......................................................................... 646Zwracanie wiadomości z T-SQL........................................................................................ 650Zarządzanie komunikatami o błędach SQL Servera.............................................................. 653Opcje SET ....................................................................................................................... 654

Kursory ................................................................................................................................. 664Przykłady kursorów i nieco składni .................................................................................... 665Używanie zmiennych CURSOR......................................................................................... 672Uzyskiwanie informacji o kursorach................................................................................... 674Interfejs programowania kursora ........................................................................................ 678Kiedy należy używać kursorów.......................................................................................... 680

����������.��<���7���,�!����,���%�2�������!,,������,���%�������������������0.�Czym jest transakcja............................................................................................................... 683Jak SQL Server obsługuje transakcje........................................................................................ 684Definiowanie transakcji........................................................................................................... 685

Transakcje zatwierdzane automatycznie (AutoCommit)........................................................ 685Transakcje definiowane jawnie przez użytkownika .............................................................. 686Transakcje niejawne (Implicit Transactions)........................................................................ 690Transakcje niejawne czy jawne.......................................................................................... 692

Dziennik transakcji i proces odzyskiwania ................................................................................ 692Proces punktu kontrolnego (Checkpoint)............................................................................. 693Proces odzyskiwania ......................................................................................................... 696

Transakcje i wsady................................................................................................................. 698Transakcje i procedury zapamiętane......................................................................................... 700Transakcje i wyzwalacze......................................................................................................... 704

Używanie punktów kontrolnych w wyzwalaczach................................................................ 706Transakcje i blokady............................................................................................................... 708Kodowanie efektywnych transakcji .......................................................................................... 709

Page 17: Microsoft SQL Server 2000. Księga eksperta

20 Microsoft SQL Server 2000. Księga eksperta

Transakcje o długim czasie wykonywania................................................................................. 710Połączenia związane ............................................................................................................... 712

Tworzenie połączeń związanych ........................................................................................ 712Wiązanie wielu aplikacji.................................................................................................... 713

Transakcje rozproszone .......................................................................................................... 714

���������� ��1��!������,�!����,���%�����������,$������������������������������*�'Przetwarzanie transakcji rozproszonych ................................................................................... 715Zapytania rozproszone............................................................................................................ 717Serwery sprzężone ................................................................................................................. 719

Konfiguracja serwera sprzężonego do zdalnego źródła danych.............................................. 719Polecenia T-SQL dla serwerów sprzężonych....................................................................... 723

Transakcje rozproszone .......................................................................................................... 724Architektura MS DTC ............................................................................................................ 724

Dwufazowy protokół zatwierdzania zmian .......................................................................... 725

������(���������������������� �������� %#������ ���������������� -��

����������&���,����!��� ��!�"!�� ���������������������������������������������������������������*�'Zarządzanie pamięcią w SQL Serverze..................................................................................... 735

Zarządzanie buforem i pule pamięci ................................................................................... 736Kontroler bufora ............................................................................................................... 736Dostęp do buforów pamięci ............................................................................................... 736Proces punktu kontrolnego................................................................................................. 737Proces lazywritera............................................................................................................. 738Ciągłe utrzymywanie stron w pamięci................................................................................. 739Wsparcie dla dużych pamięci ............................................................................................. 740Kontroler dziennika........................................................................................................... 741

Zarządzanie procesami w SQL Serverze................................................................................... 742Wątki SQL Servera........................................................................................................... 742

Dyskowe operacje wejścia-wyjścia w SQL Serverze ................................................................. 743Asynchroniczne operacje wejścia-wyjścia ........................................................................... 743Operacje wejścia-wyjścia typu rozrzuć i zbieraj ................................................................... 744Czytanie z wyprzedzeniem ................................................................................................ 744Skanowanie karuzeli ......................................................................................................... 745

Struktury danych w SQL Serverze ........................................................................................... 745Pliki baz danych i grupy plików............................................................................................... 746

Podstawowe pliki danych .................................................................................................. 747Dodatkowe pliki danych.................................................................................................... 748Plik dziennika transakcji.................................................................................................... 749Wykorzystanie grup plików ............................................................................................... 755Zarządzanie dyskami......................................................................................................... 757

Strony bazy danych................................................................................................................ 758Typy stron ....................................................................................................................... 758Kontrola zawartości strony ................................................................................................ 758Strony danych .................................................................................................................. 762Strony indeksowe ............................................................................................................. 775Alokacja przestrzeni.......................................................................................................... 778Strony różnicowego mapowania zmian ............................................................................... 783Strony masowego mapowania zmian .................................................................................. 783

Page 18: Microsoft SQL Server 2000. Księga eksperta

Spis treści 21

Tabele ................................................................................................................................... 784Ograniczenie rozmiarów wierszy i kolumn.......................................................................... 784Tabele o strukturze stosu (nieuporządkowane)..................................................................... 784Tabele zgrupowane........................................................................................................... 785

Indeksy ................................................................................................................................. 786Indeksy zgrupowane ......................................................................................................... 787Indeksy niezgrupowane ..................................................................................................... 798Pielęgnacja indeksów w SQL Serverze ............................................................................... 809

Modyfikacje danych a wydajność ............................................................................................ 815Wprowadzanie danych ...................................................................................................... 815Usuwanie wierszy ............................................................................................................. 818Modyfikacje wierszy ......................................................................................................... 821

�������������+,�!��$����$��%,�)9���������������������������������������������������������������.�'Kryteria wykorzystania indeksów ............................................................................................ 826Wybór indeksów .................................................................................................................... 827Określanie użyteczności indeksu.............................................................................................. 828Statystyki indeksów................................................................................................................ 830

Histogram statystyk .......................................................................................................... 832Gęstość indeksu................................................................................................................ 834Wykorzystanie statystyk indeksów do określania liczby wierszy ........................................... 835Tworzenie i utrzymywanie statystyk indeksów .................................................................... 836

Zasady projektowania indeksów .............................................................................................. 842Używanie indeksu zgrupowanego....................................................................................... 843Używanie indeksu niezgrupowanego .................................................................................. 845Indeksy zawierający odpowiedź ......................................................................................... 847Indeksy złożone czy wiele indeksów................................................................................... 849

Widoki indeksowane............................................................................................................... 849Zasady tworzenia widoków indeksowanych ........................................................................ 850

Indeksy na kolumnach obliczanych .......................................................................................... 850Kreator dostrajania indeksów................................................................................................... 851

Wykorzystanie programu itwiz........................................................................................... 858Wybór indeksów: zapytania czy zwiększenie wydajności ........................................................... 858

�������������<����$����$2�-���%�����$��4����������������������������������������������.0�Czym jest optymalizator zapytań ............................................................................................. 864Kompilacja i optymalizacja zapytania....................................................................................... 864

Kompilacja poleceń DML.................................................................................................. 865Kroki optymalizacji........................................................................................................... 865

Krok 1. Analiza zapytania ....................................................................................................... 866Identyfikacja argumentów poszukiwania............................................................................. 866Identyfikacja klauzul OR................................................................................................... 868Identyfikowanie klauzul JOIN............................................................................................ 869Przetwarzanie podzapytań ................................................................................................. 870

Krok 2. Wybór indeksów ........................................................................................................ 871Obliczanie selektywności SARG i złączeń .......................................................................... 871Szacowanie kosztu indeksu................................................................................................ 872Wykorzystanie wielu indeksów.......................................................................................... 878Optymalizacja za pomocą widoków indeksowanych ............................................................ 885

Page 19: Microsoft SQL Server 2000. Księga eksperta

22 Microsoft SQL Server 2000. Księga eksperta

Krok 3. Wybór złączeń ........................................................................................................... 885Strategie przetwarzania złączeń.......................................................................................... 887

Krok 4. Wybór planu wykonania ............................................................................................. 891Wielokrotne wykorzystanie planów wykonania zapytań............................................................. 893

Wiele planów w buforze pamięci........................................................................................ 893Inne strategie przetwarzania zapytań ........................................................................................ 896

Predykat przechodniości .................................................................................................... 896Optymalizacja GROUP BY............................................................................................... 897Zapytania z DISTINCT..................................................................................................... 897Zapytania z UNION.......................................................................................................... 898

Równoległe przetwarzanie zapytań .......................................................................................... 898Hurtownie danych i strategie zapytań w dużych bazach danych.................................................. 902

Iloczyn kartezjański tabel wymiarowych............................................................................. 903Redukcja niepełnego złączenia........................................................................................... 903

Najczęstsze problemy optymalizowania zapytań ....................................................................... 903Nieaktualne lub niedostępne statystyki................................................................................ 904Źle zaprojektowane indeksy............................................................................................... 904Problemy z argumentem poszukiwania ............................................................................... 905Wyzwalacze ..................................................................................................................... 907

Zarządzanie optymalizatorem .................................................................................................. 907Wskazówki optymalizatora ................................................................................................ 908Ograniczanie wykonywania planu zapytania za pomocą zarządcy zapytań ............................. 912

��������������,�-�������$��4����������������������������������������������������������������������� �'Wyświetlanie planów wykonania przy użyciu analizatora zapytań .............................................. 916

Wskazówki analizatora...................................................................................................... 918Ikony operatorów logicznych i fizycznych .......................................................................... 920Analizowanie procedur składowanych ................................................................................ 926

Ślady serwera w analizatorze zapytań....................................................................................... 928Statystyki klienta w analizatorze zapytań .................................................................................. 929SHOWPLAN_ALL oraz SHOWPLAN_TEXT......................................................................... 929Statystyki............................................................................................................................... 932

statistics profile................................................................................................................. 932statistics io ....................................................................................................................... 933statistics time.................................................................................................................... 936Wykorzystywanie datediff() do pomiaru czasu wykonania.................................................... 938

Analiza zapytań za pomocą SQL Profilera ................................................................................ 938

����������#���� ��!�"!��1����-!��������������������������������������������������������������������� #�Architektura SQL Profilera...................................................................................................... 941Tworzenie śladów .................................................................................................................. 943

Właściwości — zakładka General....................................................................................... 944Właściwości — zakładka Events ........................................................................................ 945Właściwości — zakładka Data Columns ............................................................................. 950Właściwości — zakładka Filters......................................................................................... 952

Zapisywanie i eksportowanie śladów........................................................................................ 953Analizowanie śladów przy użyciu kreatora dostrajania indeksów .......................................... 954

Odtwarzanie danych śladu....................................................................................................... 955Tworzenie śladów po stronie serwera ....................................................................................... 956

Page 20: Microsoft SQL Server 2000. Księga eksperta

Spis treści 23

Scenariusze SQL Profilera....................................................................................................... 957Powolne procedury składowane ......................................................................................... 957Kontrola zmian fizycznych ................................................................................................ 958Określanie zapytań utworzonych ad hoc ............................................................................. 958Określanie wąskiego gardła wydajności .............................................................................. 959Statystyki uaktualniane w sposób automatyczny.................................................................. 959Śledzenie postępu wykonywania programu ......................................................................... 960

����������'���$����$��$��,�!��!6�//!����� ���,�-�������!����$��4�������������������������������������������������������������������������������� 0�

Pierwszy debugger T-SQL ...................................................................................................... 964Wykorzystywanie debuggera T-SQL w analizatorze zapytań...................................................... 965

Powszechne problemy podczas testowania .......................................................................... 965Konfiguracja DCOM......................................................................................................... 967

Ograniczenia debuggera .......................................................................................................... 968Krokowe wykonywanie procedury składowanej ........................................................................ 968

Testowanie wyzwalaczy i funkcji użytkownika.................................................................... 968

����������0����,�������,�!��$��%,�)���� ��!�"!�������������������������������� 0 Podejście do monitorowania wydajności................................................................................... 970Monitor wydajności ................................................................................................................ 971

Widoki monitora wydajności ............................................................................................. 972Monitorowanie wartości .................................................................................................... 972

Liczniki wydajności w systemie Windows................................................................................ 974Monitorowanie interfejsu sieciowego.................................................................................. 974Monitorowanie procesorów ............................................................................................... 977Monitorowanie pamięci ..................................................................................................... 978Monitorowanie systemu dyskowego ................................................................................... 980

Liczniki wydajności SQL Servera ............................................................................................ 983Obiekt MSSQL: Cache Manager ........................................................................................ 984Monitorowanie obciążenia dysku przez SQL Server ............................................................ 984Blokady ........................................................................................................................... 985Użytkownicy .................................................................................................................... 985Pamięć podręczna procedur ............................................................................................... 985Liczniki definiowane przez użytkownika............................................................................. 986

Obsługa SNMP...................................................................................................................... 986Badanie wydajności za pomocą DBCC..................................................................................... 987

SQLPERF........................................................................................................................ 988PERFMON...................................................................................................................... 989SHOWCONTIG............................................................................................................... 989PROCCACHE.................................................................................................................. 989INPUTBUFFER i OUTPUTBUFFER ................................................................................ 990

Inne czynniki wpływające na wydajność SQL Servera............................................................... 990

����������*��?-�����,�!����$��%,�)9 �������������������������������������������������������� �Konieczność używania blokad................................................................................................. 991Poziomy izolowania transakcji w SQL Serverze........................................................................ 992

Read Uncommitted ........................................................................................................... 993Read Committed............................................................................................................... 994Repeatable Read............................................................................................................... 994Serializable ...................................................................................................................... 995

Page 21: Microsoft SQL Server 2000. Księga eksperta

24 Microsoft SQL Server 2000. Księga eksperta

Zarządca blokad..................................................................................................................... 996Badanie stanu blokad w SQL Serverze ..................................................................................... 997

Korzystanie z procedury składowanej sp_lock..................................................................... 997Przeglądanie tabeli syslockinfo .......................................................................................... 999Oglądanie stanu blokad w Enterprise Managerze ................................................................1000Oglądanie stanu blokad w SQL Profilerze ..........................................................................1002Oglądanie aktualnych blokad w monitorze wydajności ........................................................1005

Rodzaje blokad w SQL Serverze ............................................................................................1006Blokady dzielone .............................................................................................................1007Blokady do aktualizacji ....................................................................................................1007Blokady na wyłączność ....................................................................................................1008Blokady intencyjne ..........................................................................................................1009Blokady struktury ............................................................................................................1010Blokady hurtowej aktualizacji ...........................................................................................1010Rodzaje blokad i tabela syslockinfo ...................................................................................1011

Ziarnistość blokad SQL Servera..............................................................................................1014Serializacja i blokowanie zakresu kluczy............................................................................1016Wykorzystywanie blokad aplikacji ....................................................................................1018Blokowanie indeksów ......................................................................................................1020Blokowanie na poziomie wierszy a blokowanie na poziomie stron .......................................1021Zmiana rodzaju blokady ...................................................................................................1022Ustawienie konfiguracji blokad — opcja locks ...................................................................1023

Zgodność blokad ...................................................................................................................1024Rywalizacja o blokadę i zakleszczenia.....................................................................................1024

Wykrywanie rywalizacji o blokady....................................................................................1025Ustawianie czasu oczekiwania na blokadę..........................................................................1028Ograniczanie rywalizacji o blokadę ...................................................................................1029Zakleszczenia ..................................................................................................................1030Obsługa i kontrolowanie zakleszczeń.................................................................................1033

Wskazówki dotyczące blokad na poziomie tabel ......................................................................1038Wskazówki dotyczące transakcyjnego poziomu izolowania tabel .........................................1039Wskazówki dotyczące ziarnistości blokad ..........................................................................1040Wskazówki dotyczące rodzaju blokady..............................................................................1041

Blokowanie optymistyczne.....................................................................................................1041Blokowanie optymistyczne z użyciem danych typu Timestamp............................................1042

����������.��1��%!���6��$���,$����$��%,�)9��������������������������������������&#'Podstawowe zasady projektowania .........................................................................................1045Logiczne projektowanie bazy danych......................................................................................1046

Warunki normalizacji .......................................................................................................1047Postaci normalne .............................................................................................................1047

Denormalizacja bazy danych..................................................................................................1049Wskazówki denormalizacji ...............................................................................................1049Podstawowe techniki denormalizacji .................................................................................1050

Indeksy a wydajność .............................................................................................................1054Badanie przydatności indeksów.........................................................................................1055Rozkład danych...............................................................................................................1057

Wskazówki projektowania indeksów.......................................................................................1062Wskazania używania indeksów klastrowych.......................................................................1063Wskazówki projektowania indeksów zwykłych (nieklastrowych) .........................................1063

Page 22: Microsoft SQL Server 2000. Księga eksperta

Spis treści 25

Pokrycie indeksem...........................................................................................................1064Indeksy złożone a wiele indeksów.....................................................................................1064

Pielęgnacja indeksów w SQL Serverze....................................................................................1065Używanie DBCC SHOWCONTIG....................................................................................1066Fragmentacja obszarów....................................................................................................1068Naprawianie tabel z dużą fragmentacją ..............................................................................1069Ustawianie współczynnika wypełnienia .............................................................................1071Aktualizacja współczynnika wypełnienia ...........................................................................1072

Aktualizacja a wydajność.......................................................................................................1072Aktualizacja odłożona ......................................................................................................1072Aktualizacja w miejscu.....................................................................................................1072

Grupy plików bazy danych a wydajność..................................................................................1073Technologia RAID ................................................................................................................1074

RAID poziom 0 ...............................................................................................................1074RAID poziom 1 ...............................................................................................................1075RAID poziom 10 .............................................................................................................1076RAID poziom 5 ...............................................................................................................1076

���������� ��D�,��/�����,�!E�����%!,�!�����$2�-�����,�!�������!4��� ��!�"!���������������������������������������������������&*

Architektura instancji SQL Servera .........................................................................................1079Zmienne konfiguracyjne.........................................................................................................1080Zmiana błędnego ustawienia zmiennej.....................................................................................1086Ustawianie zmiennych konfiguracyjnych przy użyciu SQL Enterprise Manager ..........................1087Przestarzałe zmienne konfiguracyjne.......................................................................................1087Opcje konfiguracyjne a wydajność..........................................................................................1088

Affinity Mask..................................................................................................................1088Allow Update ..................................................................................................................1089AWE Enabled..................................................................................................................1091Cost Threshold for Parallelism ..........................................................................................1091Cursor Threshold .............................................................................................................1092Default language..............................................................................................................1093Fill Factor .......................................................................................................................1093Index Create Memory (kB)...............................................................................................1094Lightweight Pooling.........................................................................................................1094Locks .............................................................................................................................1095Max Degree of Parallelism................................................................................................1095Max Server Memory oraz Min Server Memory ..................................................................1096Max Text Repl Size..........................................................................................................1097Max Worker Threads .......................................................................................................1098Min Memory Per Query ...................................................................................................1099Nested Triggers ...............................................................................................................1100Network Packet Size ........................................................................................................1100Open Objects ..................................................................................................................1101Priority Boost ..................................................................................................................1101Query Governor Cost Limit ..............................................................................................1101Query Wait .....................................................................................................................1102Recovery Interval ............................................................................................................1103Remote Proc Trans ..........................................................................................................1103Scan for Startup Procs......................................................................................................1104

Page 23: Microsoft SQL Server 2000. Księga eksperta

26 Microsoft SQL Server 2000. Księga eksperta

Set Working Set Size........................................................................................................1105Show Advanced Options ..................................................................................................1106User Connections.............................................................................................................1106User Options ...................................................................................................................1106

������(�����'�����������������������.����/��������� ���������� !!0�

���������#&���� ����- ��������������������������������������������������������������������������������������Konfiguracja klienta poczty oraz profilu pocztowego................................................................1111

Jak skonfigurować SQL Mail do współpracy z serwerem Exchange .....................................1113Jak skonfigurować SQL Mail do współpracy z internetowym serwerem poczty .....................1114Jak skonfigurować SQL Mail do współpracy z serwerem poczty Lotus Notes .......................1115Co dalej?.........................................................................................................................1117

Konfiguracja programu SQL Mail...........................................................................................1117Automatyczne uruchamianie programu SQL Mail...............................................................1118

Konfiguracja programu SQL Agent Mail .................................................................................1119Konfiguracja powiadomień operatorów w programie SQL Server Agent...............................1119Konfiguracja powiadomień dla zdarzeń programu SQL Server Agent ...................................1122Konfiguracja powiadomień dla zadań programu SQL Server Agent......................................1124

Procedury składowane programu SQL Mail .............................................................................1125xp_startmail ....................................................................................................................1125xp_stopmail.....................................................................................................................1126xp_sendmail ....................................................................................................................1126xp_findnextmsg ...............................................................................................................1129xp_readmail ....................................................................................................................1129xp_deletemail ..................................................................................................................1132sp_processmail ................................................................................................................1132

���������#���F;$��,�!�%��$���G� ����� ��!�"!��!��&&&��������������������������'Tworzenie katalogu wirtualnego na potrzeby SQL Server 2000.................................................1135Poznawanie rozszerzalnego języka znaczników (Extensible Markup Language — XML) ............1137Pobieranie danych za pomocą klauzuli FOR XML ...................................................................1140Wykorzystanie klauzuli FOR XML RAW................................................................................1140Wykorzystanie klauzuli FOR XML AUTO..............................................................................1142Wykorzystanie klauzuli FOR XML AUTO, ELEMENTS.........................................................1143Wykorzystanie klauzuli FOR XML EXPLICIT........................................................................1143Odczytywanie schematów danych XML..................................................................................1147Pobieranie danych binarnych w postaci dokumentu XML .........................................................1149Podstawy języka XPath .........................................................................................................1150Wykorzystywanie XML w procedurach składowanych.............................................................1151Wykorzystanie OPENXML do odczytu dokumentu XML.........................................................1153Używanie zapytań w URL .....................................................................................................1156Stosowanie szablonów XML ..................................................................................................1158Szablony uaktualniające .........................................................................................................1160

���������#���F���/���,�-��$���,$����� ��!�"!��! ���������������������������������0�Co oznaczają usługi analizy danych i OLAP............................................................................1163Podstawy środowiska usług analizy danych .............................................................................1165

OLAP a OLTP ................................................................................................................1169MOLAP..........................................................................................................................1170

Page 24: Microsoft SQL Server 2000. Księga eksperta

Spis treści 27

ROLAP ..........................................................................................................................1170HOLAP ..........................................................................................................................1170

Metodologia projektowania analitycznego ...............................................................................1171Uproszczona metodologia analityczna ...............................................................................1172

Przykład wymagań OLAP......................................................................................................1174Tworzenie kostki OLAP ........................................................................................................1175

Program Analysis Manager...............................................................................................1175Tworzenie bazy danych OLAP...............................................................................................1176

Dodawanie źródła danych.................................................................................................1177Dodawanie wymiarów......................................................................................................1177Tworzenie kostki .............................................................................................................1184Miary..............................................................................................................................1185Elementy obliczeniowe.....................................................................................................1188Projektowanie sposobu przechowywania danych................................................................1189Przetwarzanie kostki ........................................................................................................1191Przeglądanie kostki danych za pomocą aplikacji Analysis Manager ......................................1192Analiza zapytań i optymalizacja ........................................................................................1194Podział kostki ..................................................................................................................1195Tworzenie kostki wirtualnej..............................................................................................1195

Praca z relacyjną bazą danych ................................................................................................1196Ograniczenia relacyjnych baz danych ................................................................................1196Dostarczanie danych do użytkowników .............................................................................1197Wyrażenia wielowymiarowe.............................................................................................1197Wielowymiarowe obiekty danych ActiveX.........................................................................1199

Pliki na poziomie systemu operacyjnego..................................................................................1199Bezpieczeństwo podczas analizy danych............................................................................1199Modele pobierania danych................................................................................................1200Usługi przekształcania danych ..........................................................................................1204Repozytorium metadanych ...............................................................................................1205

���������#������������5��,�����,��!�"!� ��������������������������������������������������&*MTS w skrócie......................................................................................................................1207

Dlaczego należy używać serwera transakcji........................................................................1208Podstawy przetwarzania za pomocą MTS ..........................................................................1210Konfiguracja serwera transakcji ........................................................................................1211Eksplorator MTS.............................................................................................................1211Poznawanie hierarchii MTS..............................................................................................1211

Tworzenie komponentu MTS.................................................................................................1212ObjectContext .................................................................................................................1213Metody realizujące zadania bazy danych............................................................................1214

Instalowanie komponentu MTS..............................................................................................1216Tworzenie pakietu ...........................................................................................................1216Ustawianie właściwości komponentu.................................................................................1218

Konfiguracja zabezpieczeń.....................................................................................................1219Opcje bezpieczeństwa pakietu...........................................................................................1220Tworzenie ról ..................................................................................................................1220Ustawianie członkostwa roli dla komponentu .....................................................................1221Jakie jest powiązanie zabezpieczeń MTS i MS-SQL Servera ...............................................1221Scenariusz 1. Dostęp według użytkowników ......................................................................1222

Page 25: Microsoft SQL Server 2000. Księga eksperta

28 Microsoft SQL Server 2000. Księga eksperta

Scenariusz 2. Dostęp według pakietów...............................................................................1222Inne zagadnienia związane z bezpieczeństwem...................................................................1222

Uruchamianie aplikacji MTS..................................................................................................1222Uruchamianie przykładowej aplikacji ................................................................................1224Rozwiązywanie problemów ..............................................................................................1225

Użycie puli połączeń..............................................................................................................1226Zmiana czasu działania sterownika ....................................................................................1227

���������##��<��������,�!��� ��!�"!������-�������������������������������������� Od Windows NT Enterprise Edition do Windows 2000 Advanced Server...................................1230

Serwer transakcji .............................................................................................................1231Serwer kolejkujący — Message Queue Server....................................................................1231

Klastry .................................................................................................................................1232Obsługa klastrów w SQL Serverze..........................................................................................1234

Unikanie niebezpiecznych sytuacji ....................................................................................1236Przykład procedury odtwarzania .......................................................................................1237

Równoważenie obciążenia sieci ..............................................................................................1237

���������#'��1��!�������,�!��!���� �������������������������������������������������������������� W jaki sposób działa serwer przeszukiwania ............................................................................1239Konfiguracja indeksu.............................................................................................................1240Utrzymywanie aktualnej zawartości indeksów..........................................................................1242

Wybór najlepszego harmonogramu uaktualniania indeksu ...................................................1242Odtwarzanie poprzedniej zawartości indeksu......................................................................1243Skutki posiadania niespójnych danych...............................................................................1244

Przeszukiwanie całego tekstu..................................................................................................1245CONTAINS()..................................................................................................................1245FREETEXT()..................................................................................................................1246CONTAINSTABLE() oraz FREETEXTTABLE() ..............................................................1247

Stosowanie filtrów dokumentów.............................................................................................1248Index Server oraz pełne przeszukiwanie plików danych ............................................................1248

1�#�� �������������������������������������������������������������������������������������������� !2,!

��������� �������������������������������������������������������������������������������������������������������'�

Page 26: Microsoft SQL Server 2000. Księga eksperta

���������

������������ ���

������������������������

����������

W tym rozdziale omówiona zostanie rola administratora SQL Servera, a także syste-

mowe bazy danych i tabele. Ponadto powiemy, w jaki sposób administrator może zdo-bywać informacje o systemie. Zrozumienie tych podstawowych struktur ma kluczowe

znaczenie przy administrowaniu bazami danych SQL Servera. Podobnie jak mechaniknaprawiający samochody, administrator musi wiedzieć, gdzie należy zajrzeć, gdy poja-

wią się problemy.

������������ ��������������

Administrator odpowiada za spójność i dostępność danych. Jest to proste w założeniu,ale to wielka odpowiedzialność. Niektóre duże firmy szacują wartość swych danych na

milion dolarów za każde 100 MB. Nie chodzi tu jednak tylko o pieniądze. Wiele firm,które utraciły dane o krytycznym dla siebie znaczeniu, po prostu nigdy już nie podnio-

sło się po tej stracie.

To, co w praktyce wchodzi w zakres obowiązków administratora systemu, określane jest

dość ogólnie. W małych firmach zadaniem administratora może być wykonanie i wdro-

żenie projektu sieci lokalnej, zainstalowanie SQL Servera, implementacja struktury lo-gicznej, wyregulowanie zainstalowanej kopii serwera oraz zajmowanie się codziennymi

czynnościami, takimi jak tworzenie kopii bezpieczeństwa. W większych zakładach zada-nia te mogą być rozbite na kilka stanowisk. Najczęściej zarządzaniem użytkownikami

i tworzeniem kopii bezpieczeństwa zajmuje się niezależna osoba. Jednak wciąż powinnoistnieć stanowisko głównego administratora, który będzie określał politykę postępowania

z systemem i koordynował prowadzone działania. Niezależnie od tego, czy zadania tewykonywane są przez parę osób czy w pojedynkę, administrator:

� Instaluje i konfiguruje SQL Server.

� Rozplanowuje i tworzy bazy danych.

� Zarządza przechowywaniem danych.

Page 27: Microsoft SQL Server 2000. Księga eksperta

122 Część III � Narzędzia administracyjne i administrowanie programem...

� Kontroluje bezpieczeństwo.

� Ulepsza konfigurację baz danych.

� Wykonuje kopie bezpieczeństwa i przywraca z nich system w razie awarii.

Inną czynnością wykonywaną niekiedy przez administratorów jest zarządzanie procedu-rami przechowywanymi na serwerze. Ponieważ procedury przechowywane na serwerze,

przeznaczone dla aplikacji użytkowników, często zapisane są w postaci skomplikowanegokodu T-SQL, w zasadzie zajmowanie się nimi wchodzi w zakres obowiązków programi-

stów. Jednak procedury przechowywane na serwerze są także obiektami w bazie danych,więc również administrator jest za nie odpowiedzialny. Jeżeli aplikacje stosowane w fir-

mie czytelnika wywołują niestandardowe procedury przechowywane na serwerze, czytel-

nik musi być tego świadomy i koordynować swoje działania z twórcami aplikacji.

Praca administratora systemu potrafi być źródłem stresów i frustracji. Jest także wyma-

gająca, ale i ciekawa, a stanowisko administratora jest wysoce poważane. Od admini-stratora wymaga się, aby wszystko wiedział, wszystko widział i wszystko przewidywał,

ale jest on za to adekwatnie wynagradzany.

������������� ���

Systemowe bazy danych zostały stworzone, by wspomagać pracę SQL Servera. Pro-gram instalacyjny tworzy cztery systemowe bazy danych — ������, ����, ��� oraz

�����. Mówi się, że systemowe bazy danych zawierają „metadane” lub inaczej daneo danych. Nie można wykonywać zrzutów tych baz danych.

������

Jak sama nazwa wskazuje, w bazie danych ������ zawarte są wszystkie informacjesystemowe dotyczące SQL Servera. Jeżeli jakikolwiek obiekt zdefiniowany jest na po-

ziomie całego serwera, jest on przechowywany w bazie ������. Konta logowania, usta-wienia konfiguracyjne, systemowe procedury przechowywane na serwerze oraz infor-

macje o istnieniu innych baz danych zapisane są w bazie ������. Jeżeli baza danych������ ulegnie uszkodzeniu, SQL Server nie uruchomi się, tak więc regularne tworzenie

kopii bezpieczeństwa tej bazy jest sprawą priorytetową. Dalsze informacje można zna-leźć w rozdziale 18.

����

Baza danych ��� przechowuje informacje dla SQL Server Agenta. Gdy administratorokreśla zadania, alarmy i wyznacza operatorów, informacje o nich są trzymane w bazie

���. W bazie tej znajdują się też informacje o operacjach tworzenia kopii bezpieczeń-stwa, tak więc nawet jeżeli nie korzysta się z SQL Agenta, należy pamiętać o tworzeniu

kopii zapasowych bazy ���. W wersji Enterprise Edition w bazie tej występuje dodat-kowa tabela obsługująca przenoszenie dziennika.

Page 28: Microsoft SQL Server 2000. Księga eksperta

Rozdział 6. � Podstawowe funkcje i narzędzia administratora 123

���

Baza danych ���� jest szablonem, na którego podstawie tworzone są wszystkie bazy

danych użytkowników. Wszystkie bazy danych muszą zawierać podstawowy zbiór

obiektów, znany jako katalog bazy danych. Gdy tworzona jest nowa baza danych, tak

naprawdę kopiowana jest baza ����, dzięki czemu w nowej bazie znajdują się już

wszystkie wymagane obiekty. Oczywiście do bazy ���� można w wygodny sposób

dodawać nowe obiekty. Jeżeli chcemy na przykład, aby we wszystkich naszych bazach

danych występowała określona tabela, wówczas wystarczy utworzyć ją w bazie danych

����. Modyfikując bazę ����, należy pamiętać o zapisaniu jej na dysku, gdyż w prze-

ciwnym razie wprowadzone zmiany zostaną utracone.

������

Baza ����� przechowuje obiekty tymczasowe. Bezpośrednio utworzone tabele tymcza-

sowe, a także tymczasowe procedury przechowywane na serwerze i obiekty tworzone

przez system trafiają do bazy �����. O ����� należy myśleć jak o przestrzeni robo-

czej, swego rodzaju podręcznym notesie, w którym SQL Server przechowuje przej-

ściowe dane. Na przykład, zanim wynik złożonej operacji sortowania zostanie zwrócony

do użytkownika, jest ona przeprowadzana w bazie �����. Można również tak skonfigu-

rować system, aby baza ����� była wykorzystywana podczas tworzenia indeksów.

Przechowywanie bazy ����� na osobnym dysku może wyraźnie skrócić czas tworzenia

indeksów. Po każdym uruchomieniu SQL Servera baza danych ����� tworzona jest na

nowo, więc nie ma potrzeby tworzenia jej kopii bezpieczeństwa.

�� �������������

Baza ������ ���� nie jest domyślnie tworzona, choć z technicznego punktu widzenia

jest to systemowa baza danych. Zostanie ona zainstalowana z chwilą, gdy użytkownik

zdecyduje się korzystać z replikacji danych. Więcej informacji na ten temat znajduje się

w rozdziale 25.

��������������

SQL Server wykorzystuje tabele systemowe do przechowywania informacji o obiektach

i ustawieniach konfiguracyjnych. Generalnie nazwy tabel systemowych zaczynają się

przedrostkiem sys, od systemowetabele. Z tego powodu tabele te są często nazywane

tabelami ���. Niektóre z nich, takie jak ��������, zostały zaimplementowane jako wi-

doki. Tabele systemowe dzielą się na dwie główne kategorie. Tabele katalogu systemo-

wego znajdują się w bazie danych ������ i przechowują informacje wspólne dla całej

kopii SQL Servera. Tabele katalogu baz danych znajdują się w każdej bazie danych,

w tym w bazie ������, i zawierają informacje specyficzne dla danej bazy. Baza danych

��� ma — oprócz swego katalogu baz danych — dodatkowe tabele systemowe, zwią-

zane z SQL Agentem, narzędziem Backup and Recovery oraz z przenoszeniem dziennika

Page 29: Microsoft SQL Server 2000. Księga eksperta

124 Część III � Narzędzia administracyjne i administrowanie programem...

(tylko w wersji Enterprise). Gdy uaktywniona jest replikacja danych, w bazie ������,

������ ���� i w bazach danych użytkowników, które biorą udział w procesie replika-

cji, tworzone są dodatkowe tabele systemowe.

��������������

W tabeli 6.1 wymieniono tabele i widoki z katalogu systemowego.

�����������Tabele i widoki z katalogu systemowego

���� � � ����

���������� Tabela Zawiera informacje o plikach bazy danych ��� . Ponieważ baza��� tworzona jest na nowo przy każdym uruchomieniu SQLServera, informacje te muszą być przechowywane w bazie ����.

�������� ���� Tabela Zawiera informacje o wykorzystaniu skompilowanych obiektóww pamięci podręcznej. Jest to tabela wirtualna, która materializuje sięza każdym razem, gdy jest na niej wykonywane jakieś zapytanie.

���������� Tabela Zawiera zainstalowane zestawy znaków i porządki sortowania.

������������ Tabela Przechowuje informacje o konfiguracji systemu, które mają zostaćwykorzystane przy najbliższym uruchomieniu SQL Servera.

������������� Tabela Przechowuje informacje o bieżącej konfiguracji systemu. Jest totabela wirtualna, która materializuje się za każdym razem, gdy jestna niej wykonywane jakieś zapytanie.

������� ��� Tabela Zawiera informacje o wszystkich bazach danych.

�������� Tabela Zawiera osobny wpis dla każdego pliku bazy danych, a także plikówprzechowywanych na dyskach i taśmowych kopiach bezpieczeństwa.

����������� Tabela Zawiera osobny wpis dla każdego języka zainstalowanego naserwerze. Nie ma jedynie wpisu dla amerykańskiej odmiany językaangielskiego, choć jest on zawsze dostępny.

����������� Tabela Przechowuje informacje o wszystkich aktywnych blokadachw systemie.

��������� Widok Przechowuje wszystkie nazwy użytkowników w oparciuo informacje zawarte w tabeli ����������.

�������� Tabela Przechowuje systemowe komunikaty o błędach i ostrzeżenia.

������ ���� Widok Przechowuje informacje o mapowanych nazwach użytkownikówi hasłach na złączonych serwerach w oparciu o dane dostępnew tabeli ����������.

��������� Tabela Zawiera mierniki wydajności, które mogą być wyświetlane przezPerformance Monitor.

���������� Tabela Przechowuje informacje o wszystkich procesach klienckichi systemowych pracujących pod SQL Serverem.

������������ Widok Zawiera osobny wpis dla każdego zdalnego użytkownika mogącegowywoływać zdalne procedury przechowywane na serwerze.

���������� Tabela Zawiera informacje o wszystkich nazwach użytkowników.

Page 30: Microsoft SQL Server 2000. Księga eksperta

Rozdział 6. � Podstawowe funkcje i narzędzia administratora 125

�������� �������

W tabeli 6.2 wymieniono tabele i widoki z katalogu baz danych.

������������Tabele i widoki z katalogu baz danych

���� � � ����

��������� Tabela Zawiera osobny wpis dla każdej kolumny ze wszystkich tabeli widoków, a także osobny wiersz dla każdego parametru proceduryprzechowywanej na serwerze.

�������� Tabela Zawiera wpisy dla wszystkich widoków, reguł, wartości domyślnych,wyzwalaczy, ograniczeń CHECK, ograniczeń DEFAULT i procedurprzechowywanych na serwerze.

�������������� Widok Przyporządkowuje ograniczenia do obiektów, które są ich właścicielami.Informacje tu zawarte opierają się na danych z tabeli ���� ���.

�������� Tabela Zawiera informacje na temat zależnych od siebie obiektów, takiejak relacje między widokami a tabelami.

������������ Tabela Zawiera informacje o grupach plików.

������� Tabela Zawiera informacje o plikach baz danych, w tym nazwy logicznei fizyczne, a także rozmiary plików.

������������ Tabela Zawiera informacje o występujących w bazie danych zależnościachmiędzy obcojęzycznymi kluczami.

������������������ Tabela Zawiera osobny wpis dla każdego katalogu pełnotekstowego.

�������� Tabela Zawiera informacje o indeksach w bazie danych.

���������� Widok Zawiera informacje o kluczach indeksów.

��� �� Tabela Zawiera informacje o rolach nadanych poszczególnym użytkownikom.

���� ���� Widok Zawiera osobny wpis dla każdego obiektu występującego w bazie danych.

������������ Tabela Przechowuje informacje o pozwoleniach związanych z określonymirolami, pozwoleniach przyznanych i odmówionych użytkownikomoraz grupom użytkowników.

���������� Tabela Zawiera informacje o pozwoleniach przyznanych kontombezpieczeństwa za pomocą deklaracji ����� i ��� .

��������� Tabela Zawiera informacje o mapowaniu kolumn dla dopuszczalnychzakresów danych, określonych dla obcojęzycznych kluczy.

������� Tabela Zawiera informacje o wszystkich typach danych zdefiniowanychprzez system i przez użytkowników.

������� Tabela Zawiera osobny wpis dla każdego użytkownika Windows, grupyużytkowników Windows, użytkownika SQL Servera oraz roli SQLServera, mających dostęp do bazy danych.

���������������

Tabele katalogu replikacji tworzone są dopiero wówczas, gdy zostanie skonfigurowana re-

plikacja danych. Po jej skonfigurowaniu odpowiednie tabele tworzone są w bazie ������,

���, ������ ���� oraz w bazach danych użytkowników, biorących udział w procesie re-plikacji. Konfiguracja tabel może być różna w zależności od przyjętego modelu replikacji.

Page 31: Microsoft SQL Server 2000. Księga eksperta

126 Część III � Narzędzia administracyjne i administrowanie programem...

���������������������

Poza standardowymi tabelami katalogu baz danych baza ��� zawiera tabele charakte-

rystyczne dla SQL Server Agenta, tworzonych kopii bezpieczeństwa, przenoszeniadziennika oraz narzędzia Database Maintenance Plan (plan zarządzania bazą danych).

W tabeli 6.3 pokazano tabele SQL Server Agenta.

������������Tabele SQL Server Agenta

���� ����

�������� Nazwa, numer błędu itd. dla wszystkich określonych komunikatów o błędach.

����������� Kategorie używane do segregowania zadań, alarmów i operatorów.

�����!��������� Kolejka zadań mająca być rozesłana do innych serwerów.

����� ������� Tabela z historią zadań zaplanowanych w czasie.

����� � Informacja o zadaniach SQL Server Agenta.

����� ������� Informacje o tym, kiedy mają być wykonane poszczególne, zaplanowanezadania.

����� ����� Zależności między danym zadaniem a jednym lub kilkoma serwerami,na których ma ono zostać wykonane.

����� ���� Poszczególne kroki składające się na wszystkie zaplanowane zadania.

���������������� Informacje dla każdego operatora uszeregowane według zadań.

����������� Informacje o operatorach, takie jak nazwisko, adres e-mail itd.

����������������� �� Serwery docelowe wchodzące w skład grupy wieloserwerowej.

������������������ Grupy serwerów docelowych zdefiniowane na serwerze.

������������� Lista serwerów docelowych.

���������� Odwzorowanie zadań z wcześniejszej wersji na zadania realizowanew bieżącej wersji systemu.

W tabeli 6.4 znalazły się informacje na temat tabel odnoszących się do kopii bezpieczeństwa.

������������Tabele odnoszące się do kopii bezpieczeństwa

���� ����

�������� Zawiera informacje o każdym pliku dziennika i pliku z danymi, którezostały uwzględnione przy tworzeniu kopii bezpieczeństwa.

������������� Zawiera informacje o rodzinach mediów, na których tworzone są kopiebezpieczeństwa, takie jak nazwa, zbiór mediów, fizyczne i logicznenazwy plików itd.

���������� Zawiera nazwę, opis itd. każdego zestawu mediów.

������� Zawiera osobny wiersz dla każdego zestawu kopii bezpieczeństwa.

������������� Zawiera informacje o każdej przeprowadzonej, oznaczonej transakcji.

�������� Zawiera osobny wpis dla każdego pliku przywróconego z kopiibezpieczeństwa.

������������� Zawiera osobny wpis dla każdej przywróconej grupy plików.

������������ Zawiera osobny wiersz dla każdej przeprowadzonej operacjiprzywracania danych.

Page 32: Microsoft SQL Server 2000. Księga eksperta

Rozdział 6. � Podstawowe funkcje i narzędzia administratora 127

W tabeli 6.5 wymieniono tabele związane z planem konserwacji systemu.

������������Tabele związane z planem konserwacji systemu

���� ����

���� ��������"���� ��� Zawiera po jednym wierszu dla każdej bazy danych uwzględnionejw planie.

���� ��������"������� Historia zadań przeprowadzonych w ramach planu konserwacji systemu.

���� ��������"�� � Zawiera osobny wiersz dla każdego zadania stanowiącego część planu.

���� ��������� Zawiera osobny wiersz dla każdego planu. Znajduje się w nim nazwa,identyfikator oraz data utworzenia planu.

W tabeli 6.6 wymieniono tabele związane z przenoszeniem dziennika.

������������Tabele związane z przenoszeniem dziennika

���� ����

���"��������"���� ��� Nazwa i identyfikator przenoszonej bazy danych.

���"��������"������ Nazwa serwera monitorującego przenoszenie dziennika.

���"��������"����"���� ��� Nazwy baz danych i uaktywnionych opcji występujących w planieprzenoszenia dziennika.

���"��������"����"������� Historia planu przenoszenia dziennika.

���"��������#����� Informacje konfiguracyjne planu przenoszenia dziennika.

���"��������"������� Serwer podstawowy, informacje konfiguracyjne, historia oraz wartościgraniczne.

���"��������"��������� Serwer zapasowy, informacje konfiguracyjne, historia oraz wartościgraniczne.

������������������� ����������

Procedury przechowywane w systemie, tworzone przy instalacji SQL Servera, mają

bardzo istotne znaczenie dla administrowania nim. Zadaniem procedur przechowywa-

nych w systemie jest uwolnienie administratora od konieczności bezpośredniej edycji

i wykonywania zapytań na tabelach systemowych i tabelach katalogu baz danych.

Obecnie duża część czynności administracyjnych może być przeprowadzona z poziomu

Enterprise Managera, ale warto znać też procedury przechowywane na serwerze. Na

przykład, aby dodać nowy identyfikator użytkownika w Enterprise Managerze, wystar-

czy kliknąć prawym przyciskiem myszy Logins, wybrać w pojawiającym się oknie New

Login, a następnie wpisać żądane informacje. Jest to dobry sposób, jeżeli chcemy dodać

jeden nowy identyfikator, ale co zrobić, jeśli chcielibyśmy dodać ich dwieście? W tym

przypadku pisze się skrypt wywołujący procedurę przechowywaną w systemie o nazwie

���������� i dostarcza się wszystkie dane niezbędne do utworzenia nowych identyfi-

katorów (nazwy użytkowników, hasła itd.).

Page 33: Microsoft SQL Server 2000. Księga eksperta

128 Część III � Narzędzia administracyjne i administrowanie programem...

Wymienienie wszystkich procedur przechowywanych w systemie byłoby niepraktyczne.

Nawet przy pobieżnym spojrzeniu na bazę danych ������ widać prawie tysiąc takich

procedur. Dokumentacja SQL Servera w postaci elektronicznej oraz biblioteka MSDN są

doskonałymi źródłami informacji na temat procedur przechowywanych w systemie. In-

ną metodą na zapoznanie się z tymi procedurami jest przejrzenie listy obiektów w Query

Analyzerze. Doświadczenia autora wskazują na to, że w ten sposób można sobie szybko

przypomnieć, której procedury należy użyć do wykonania określonego zadania. Jeżeli

chcemy wyświetlić więcej informacji, należy przeciągnąć procedurę do okna zapytań

i nacisnąć Shift+F1. Spowoduje to wyświetlenie informacji na temat danej procedury

pochodzących z dokumentacji elektronicznej.

������������������������� ����������������������

Ogólnie rzecz biorąc, procedury przechowywane w systemie mają następujące wła-

ściwości:

� Są przechowywane w bazie danych ������.

� Ich nazwy rozpoczynają się od przedrostka sp_.

� Właścicielem procedury jest dbo (ang. database owner — właściciel bazy

danych).

� Mają one zasięg globalny. Oznacza to, że mogą zostać wywołane z dowolnej

bazy danych i będą się wykonywały w kontekście tej bazy.

Podobnie jak nigdy nie powinno się bezpośrednio modyfikować tabel systemowych, tak

samo nie powinno się zmieniać procedur przechowywanych w systemie. Jeżeli trzeba

zmienić procedurę przechowywaną w systemie, należy skopiować definicję procedury

z kolumny ���� tabeli ����������� lub z okna właściwości procedury w Enterprise Ma-

nagerze, a następnie wkleić ją do nowej, utworzonej w tym celu procedury, którą będzie

można modyfikować do woli. Nawet jeżeli zrobimy w definicji procedury jakiś błąd,

zawsze będzie dostępna oryginalna wersja.

Należy uważać, aby nie modyfikować procedur przechowywanych na serwerze

operujących na tabelach systemowych. Procedury te są bardzo złożone i zależą

od siebie nawzajem. Jeżeli przydarzy się awaria i administrator zadzwoni do Microsoftu

z prośbą o pomoc, zapewne usłyszy w odpowiedzi: „Nie odpowiadamy na pytaniadotyczące bezpośredniej modyfikacji obiektów systemowych. Miłego dnia”.

������ �������������������

Choć istnieją setki procedur systemowych, najczęściej używa się około 10 czy 20 z nich.

Wiele procedur o nazwach zaczynających się od ������ jest naprawdę pomocnych. Na

przykład ������� zwraca informacje o wszystkich bazach danych, a jeżeli podana jest

konkretna nazwa bazy, tylko o tej jednej bazie danych. Na przykład ���������� ��.

W tabeli 6.7 wymieniono kilka popularnych procedur przechowywanych w systemie.

Page 34: Microsoft SQL Server 2000. Księga eksperta

Rozdział 6. � Podstawowe funkcje i narzędzia administratora 129

������������Popularne procedury przechowywane w systemie

������������� ����

��"��� Wyświetla listę obiektów występujących w danej bazie danych lub zwracainformację na temat określonego obiektu. Może być używana do zdobywaniainformacji o dowolnych obiektach z bazy danych.

��"���� Wyświetla listę baz danych lub informacje o konkretnej bazie.

��"�������� Wyświetla informacje o obiektach i pozwoleniach.

��"!�� Zwraca informacje o połączeniach SQL Servera.

��"���� Informacje o blokadach wszystkich, jednego bądź dwóch procesów.Pomocna przy diagnozowaniu problemów z blokowaniem.

��"�������� Wyświetla lub zmienia globalne ustawienia konfiguracyjne.

��"� ������ Wyświetla lub zmienia ustawienia konfiguracyjne bazy danych.

� ������������ �� ������ �����������������

Jak dotąd w rozdziale tym skupiliśmy się na procedurach przechowywanych w syste-

mie, za pomocą których można uzyskać informacje z baz danych i z katalogu systemo-

wego. Istnieją dwie inne metody pozwalające na odczytywanie metadanych. Są to wi-

doki schematów informacyjnych i funkcje systemowe.

�����������������������������

Widoki schematów informacyjnych określone są w standardzie ANSI-92 jako zbiór

widoków prezentujących dane systemowe. Dzięki zastosowaniu widoków rzeczywiste

tabele systemowe są ukryte przed aplikacjami. Zmiany wprowadzane w tabelach sys-

temowych nie mają wpływu na aplikacje, ponieważ te ostatnie nie korzystają bezpo-

średnio z tabel systemowych. W ten sposób aplikacje mogą pobierać dane z dowolnego

systemu zgodnego ze schematami informacyjnymi ANSI-92, niezależnie od dostawcy

i wersji baz danych.

SQL Server, odwołując się do obiektów umieszczonych na lokalnym serwerze, posłu-

guje się trójczłonowym schematem nazewnictwa określonym w standardzie ANSI-92.

W terminologii ANSI-92 jest to katalog.schemat.obiekt, zaś wg słownictwa Microsoftu

baza_danych.właściciel.obiekt. Jeżeli baza danych nie została określona, domyślnie

przyjmowane jest, że chodzi o bieżącą bazę. Jeżeli nie został podany właściciel, przyj-

muje się, że chodzi o aktualnie stosowaną nazwę użytkownika. Ma to istotne znaczenie,

jeśli chodzi o widoki schematów informacyjnych, ponieważ są one „posiadane” przez

������������� !"��. Tak więc odwołując się do widoku schematów informacyjnych

w bieżącej bazie danych, trzeba podać część schematu nazewnictwa obejmującą właści-

ciela.obiekt. Na przykład chcąc uzyskać informacje o tabelach, należałoby wpisać:

��$�%�#&#'�()#*�'(�)��*(�"�%+�)�,��-$��

Page 35: Microsoft SQL Server 2000. Księga eksperta

130 Część III � Narzędzia administracyjne i administrowanie programem...

Na szczęście nazwy widoków schematów informacyjnych są dość intuicyjne. Niektóre

z dostępnych widoków schematów informacyjnych to ��#$"�, �$%���, ��#$"�&��'�$"("�

oraz '�")�.

Należy unikać tworzenia zapytań odwołujących się bezpośrednio do tabel systemowych.

Microsoft stara się zapewniać kompatybilność z wcześniejszymi wersjami systemu

wszędzie, gdzie jest to możliwe, ale nie ma na to gwarancji. Oznacza to, że Microsoft

zastrzega sobie prawo do zmiany nazw tabel systemowych w dowolnej chwili. Jeżeli

aplikacje użytkownika odwołują się do tych tabel, wówczas może wystąpić problem

przy próbie przeniesienia ich do nowszej wersji SQL Servera. Z kolei widoki schematów

informacyjnych pozostaną w przyszłości niezmienione.

�������������������������������� ����������������

Innym sposobem na uzyskanie informacji o systemie z poziomu poleceń Transact-SQL

jest wykorzystanie funkcji systemowych i funkcji operujących na metadanych. Są to

funkcje skalarne, co oznacza, że zwracają one pojedyncze, określone wartości. Na przy-

kład, aby odczytać nazwę użytkownika z bieżącej sesji, należy zastosować polecenie:

��$�%�#�.���"��)�/0

Kilka innych funkcji, których można użyć do odczytania informacji systemowych, to

*#��*, *#����", �#+" �����", ��$"����" oraz ("�*��".