SQL Server 2005. W drodze na górną półkę

Udogodnienia administratora

SQL Server Configuration Manager - konfigurowanie protokołów

SQL Server Configuration Manager - konfigurowanie protokołów

W narzędziach zarządzania Microsoft również wykonał kilka zasadniczych zmian, zastępując Enterprise Manager i Query Analyzer nowym SQL Server Management Studio (SSMS). SSMS obsługuje zarówno wiersze komend bazodanowych - z pomocą których wykonuje się zadania, takie jak tworzenie baz danych i zarządzanie kontami użytkowników - a także może być używane do pisania kodu baz danych.

Zmiany te jednak nie usatysfakcjonują w pełni użytkowników. Dla początkujących wykonanie normalnych zadań dotyczących kwerend, takich jak przeglądanie planów wykonawczych, a nawet wykonanie kwerend, jest dużo wolniejsze. Microsoft zamienił rozkład planu wykonawczego w taki sposób, że większe plany są teraz trudniejsze do przeglądania. Usunięto również preferowane klawisze skrótów, a prawe kliknięcie na jego widoku, pozwalające na jego edycję, teraz kieruje bezpośrednio do konstruktora kwerend. Z dużym prawdopodobieństwem można założyć, że większości administratorów DB nie będzie się to podobać.

Jednak te niedostatki są w znacznym stopniu równoważone przez ogólnie bogatsze możliwości. Jednym z obszarów, w którym Microsoft spełnił oczekiwania, jest zarządzanie logiem błędów SQL. SSMS nie tylko wyświetla rejestr błędów SQL, ale także łączy go w tym samym oknie z logiem zdarzeń Windows NT, pozwalając administratorowi na oglądanie wszystkich istotnych i powiązanych informacji w jednym miejscu. Należy tu też wspomnieć o rozszerzeniach Profilera, który łączy teraz śledzenie logów SQL z logami Perform. Pozwala to na dużo łatwiejsze skorelowanie pomiarów wydajności ze specyficznymi kwerendami.

Jądrem nowych możliwości zarządzania SQL są Dynamic Management Views (DMV) i funkcje, które dają administratorom dużo lepszy wgląd w operacje bazy danych. Microsoft stosuje metodę zakrywania głębszych aspektów baz danych, ale konieczność spełniania wymogów zarządzania wielkimi bazami danych oznacza przekazanie większego zakresu kontroli administratorowi. DMV zapewniają szerszy wgląd w pamięć, używanie indeksów, stan tablic, stany serwera, bezpieczeństwo itp. Wiele elementów niedostępnych do tej pory jest teraz w zasięgu ręki.

Ponadto administrator uzyskał gotowe do użycia raporty o szczegółach bazy danych i stanie serwera, obejmujące zmiany schematu, użytkowanie indeksów i pamięci, konsumpcji zasobów, blokowania i wielu innych.

SSMS w wykonywaniu swoich funkcji zdaje się na SSRS i potrafi ugrzęznąć nieraz na pewien czas, czekając na raporty z powodu zajętego serwera lub dużej bazy danych, z dużą liczbą obiektów. Microsoft nie przewidział też kodu RDL (Report Definition Language). W rezultacie nie można zmienić rozkładu gotowych raportów ani też dodać nowych, tak jak można to zrobić w SSRS. Można natomiast ręcznie wyeksportować raporty do formatu Excel lub PDF.

Jednym z kluczowych celów projektowych SQL Server 2005 było ściślejsze zintegrowanie ochrony. W celu zawężenia zakresu potencjalnych ataków, najbardziej niebezpieczne i ryzykowne funkcje są domyślnie wyłączone i do działania muszą być świadomie włączane przez administratora. Jest to pomocne, ale nie stanowi aż takiej atrakcji dla doświadczonych administratorów, którzy w większości mają napisane specjalne skrypty wyłączające takie funkcje i nie stanowi to dla nich problemu.

Prawdziwe udoskonalenia w zakresie bezpieczeństwa dotyczą zarządzania hasłami i uprawnieniami. Rodzime hasła SQL mogą być teraz ustawiane w zgodzie z polityką haseł Windows, co oznacza możliwość zażądania, aby hasła te miały ten sam stopień utrudnienia, czas ważności, historię i liczbę nieudanych powtórzeń, jak hasła kont użytkowników Windows. Można nawet zażądać, aby użytkownik zmienił hasło w kolejnym logowaniu. Inne, ważne udoskonalenia w zakresie bezpieczeństwa obejmują większą kontrolę nad zmianami schematu bazy danych i możliwość szyfrowania danych na poziomie kolumn.

SQL Server 2005 uzyskał również kilka nowych cech w zakresie zwiększonej dostępności i sprawnego przywracania po katastrofie. W dziedzinie wysokiej dyspozycyjności (HA - High Availability) Microsoft wprowadził kilka istotnych zmian do replikacji. Teraz zmiany schematu bazy danych są replikowane automatycznie do subskrybentów - administrator nie musi już uruchamiać specjalnego kodu w celu wykonania tego zadania. Na poziomie bazy danych dostępny jest nowy poziom replikacji - replikacja migawkowa. Migawki stanu bazy danych są restartowane automatycznie po błędach sieci lub innych zakłóceniach, co pozwala na osiągnięcie stanu HA i szybszą pracę. Replikacja rekordów logicznych pozwala na definiowanie danych poprzedzających i potomnych, które mogą replikowane lub nie, co eliminuje błędy logiczne po stronie subskrybującej.

Kopie lustrzane (mirroring) pozwalają na utrzymywanie zapasowej bazy danych na innym serwerze w synchronizacji z pierwotną bazą. Cecha ta umożliwia automatyczne obejście uszkodzenia - przejście na serwer zapasowy, gdy zawiedzie serwer pierwotny, zgodnie ze scenariuszem HA "0% utraty danych".

Edytor kwerend w Server Management Studio

Edytor kwerend w Server Management Studio

Taka konfiguracja może być kosztowna, ale jest wreszcie dostępna. Należy jednak zauważyć, że mirroring nie jest jeszcze kwalifikowany jako funkcjonalność produktu w tym wydaniu. Firma dostarcza SQL Server 2005 z wyłączonym mechanizmem mirroringu i mechanizm ten nie ma wsparcia serwisowego.

Podczas testów wykonano bez problemów obejście uszkodzonej bazy danych o wielkości 100 GB. Jednak monitorowanie procesów kopii lustrzanych jest dość prymitywne - cechuje się małą liczbą widoków (DMV) i pomiarów wydajności. Nie jest łatwo wyszukać, ile danych zostało już zreplikowanych i jak system wtórny odbiega od pierwotnego. Trudności w uzyskaniu takiego wglądu w proces mogą być denerwujące.

SQL Server 2005 znacząco obniża czas wyłączenia konieczny do otworzenia bazy danych. Nowa możliwość odtwarzania online pozwala użytkownikowi na rozpoczęcie pracy z bazą danych, gdy tylko poszczególne obiekty stają się dostępne. W SQL Server 2000 konieczne było odtworzenie całej bazy danych, zanim mogła być udostępniona użytkownikom. Dla dużych baz danych, liczonych w terabajtach, odtwarzanie online oznacza istotną różnicę czasu osiąganiu zdolności do pracy, liczoną w godzinach. Można też naprawić uszkodzenie bazy danych bez większych zakłóceń po stronie użytkowników. Odtwarzanie na poziomie stron pozwala na odtworzenie pojedynczej uszkodzonej strony bez wpływu na dostępność pozostałej bazy danych.

Nowe możliwości w zakresie projektowania

Okno kontrolne konfiguracji systemu

Okno kontrolne konfiguracji systemu

Ulepszanie kodu można podzielić na dwie podstawowe kategorie: wykonywane przez programistów i wykonywane przez administratorów baz danych. Oprócz integracji .Net/CLR najbardziej istotne dla deweloperów są prawdopodobnie również Common Table Expressions (CTE). Oprócz eleganckiego rozwiązania problemu kwerend rekursywnych, CTE umożliwia uproszczenie kodu poprzez stosowanie wbudowanych definicji kwerend, co w znacznym stopniu upraszcza złożone kwerendy.

Inne ważne ulepszenie: klauzula TOP, która pozwala na wybranie pewnej liczby wierszy z zestawu wyników zwrotnych (np. dziesięciu firm o najwyższych obrotach) może mieć parametr w formie argumentu. Tak więc zamiast włączać do kodu statyczną klauzulę (np. TOP 10), można teraz zawrzeć zmienną, co pozwala użytkownikowi raportować np. TOP 10 lub TOP 100 w locie.

Inne cechy przydatne dla deweloperów obejmują: ranking, losowe próbki danych, synonimy, bogatszą obsługę błędów i bezpieczny kontekst kodów. Wielu programistów z zadowoleniem powita rodzimą obsługę XML. SQL Server 2000 ograniczony był do możliwości "rozczłonkowania" XML w relacyjnej bazie danych, co często kończyło się niepowodzeniem w zachowaniu hierarchii XML. Teraz można importować XML do kolumn i nie tylko wykonywać rodzime kwerendy XML, ale także indeksować w celu szybszego wyszukiwania.

Administrator DB nie został pominięty w rewolucji kodowania. Wiele zmian w kodowaniu daje administratorowi większe możliwości w zakresie zarządzania niż wiersze komend, które nie są dostępne przez Management Studio. DDL (Data Definition Language) zmienia sposób, w jaki administrator DB wykonuje swoje zadania. Podnosi również alarm w wypadku pojawienia się zmian w schemacie bazy danych, a także pozwala na definiowanie dowolnego typu obiektu w serwerze lub bazie danych i uniknięcia w ten sposób niepożądanych zmian.

Indeksowanie jest zawsze przedmiotem pewnej niestabilności w obciążonym systemie produkcyjnym. Administrator musi konserwować bazę danych, natomiast korzystający z niej nie chcą przerywać swoich operacji. Indeksowanie online pozwala administratorowi na utworzenie lub odbudowanie indeksów bez stawiania bazy danych w stan offline. Indeks budowany jest równolegle do tablicy i stosowany z chwilą gdy zostanie utworzony. Funkcja ta umożliwia równoczesne przeprowadzanie zmian w tabeli i indeksie wewnętrznym (clustered index) oraz w związanych z tabelą indeksach zewnętrznych. Oczywiście, konieczne są tu odpowiednie zasoby, ale cecha ta w znaczny sposób zwiększa dostępność bazy danych i ma niebagatelne znaczenie dla środowisk pracujących w trybie "24/7". Administrator ma teraz również możliwość kontroli poziomu blokowania bazy danych, używanego przez operacje indeksowania.