Jak monitorować bazy danych i instancje SQL Server’a

Monitorowanie instancji i baz danych dostarcza informacji niezbędnych do diagnozowania przyczyn różnorodnych błędów i problemów wydajnościowych, a także do optymalizowania SQL Server’a. Nie jest łatwo zdefiniować optymalny poziom wydajności, gdyż jest to zazwyczaj kompromis między wieloma czynnikami związanymi z oprogramowaniem, sprzętem, wymaganiami biznesowymi, polityką firmy oraz innymi czynnikami związanymi ze środowiskiem, w którym działa system bazodanowy.

November 4, 2015

Synchronizowanie baz danych SQL Server’a między różnymi zdalnymi lokalizacjami

Scenariusz

Aplikacja używana przez podróżujących przedstawicieli handlowych, lub innych pracowników działających w terenie, np. dostawców, pielęgniarki środowiskowe itp. jest zaprojektowana tak aby zbierać dane z różnych lokalizacji i następnie wysyłać je do centrum danych. Dodatkowo, od czasu do czasu dane z centrum danych muszą zostać wysłane do innych lokalizacji, aby zaktualizować te lokalizacje.

Na przykład kiedy pielęgniarka składa wizytę pacjentowi, to posługując się urządzeniem mobilnym wstawia do bazy danych informacje o wizycie. Na koniec dnia wszystkie utworzone rekordy są wysyłane do centralnej bazy danych. Dodatkowo, pielęgniarka synchronizuje urządzenie mobilne z centralną bazą danych w szpitalu, aby otrzymać nowe informacje o swoich pacjentach oraz o wizytach do złożenia następnego dnia.

W scenariuszu opisanym powyżej, istnieje ciągła konieczność synchronizowania danych między urządzeniem mobilnym a centralną bazą danych.

November 4, 2015

Czytanie logu transakcyjnego bazy danych SQL Server’a

Log transakcyjny SQL Server’a zawiera rekordy, opisujące modyfikacje wykonywane na bazie. Dzięki tym informacjom istnieje możliwość odtworzenia bazy do określonego punktu w czasie, możliwość ponownego wykonania modyfikacji lub jej wycofania. Powstaje jednak pytanie, jak odnaleźć określoną transakcję i ponownie ją wykonać albo jak odwrócić skutki jej działania, powstałe na przykład po przypadkowym skasowaniu rekordów w bazie.

November 4, 2015

Otwórz plik LDF i wyświetl jego zawartość

Każda baza danych SQL Server’a składa się ze zbioru plików na poziomie system operacyjnego. Pliki te przechowują dane oraz informacje o zmianach w bazie. Poszczególne pliki mogą być używane tylko przez jedną bazę, a dane i informacja o zmianach w bazie nigdy nie są zapisywane w tym samym pliku. Dane przechowywane są w plikach MDF, natomiast wszystkie transakcje modyfikujące dane oraz transakcje modyfikujące na poziomie bazy danych, przechowywane są w drugim podstawowym komponencie bazy danych, w pliku LDF czyli w pliku logu transakcyjnego. Plik logu jest ciągiem rekordów. Fizycznie, rekordy logu transakcyjnego są przechowywane w jednym lub w wielu fizycznych plikach LDF.

November 4, 2015

Jak szybko odszukać obiekty i dane w bazie danych SQL Server’a

Programiści i administratorzy baz danych często szukają w bazie konkretnych obiektów lub danych. Jeżeli zdarzyło ci się kiedykolwiek szukać funkcji, która zawiera określoną kolumnę tabeli lub nazwę zmiennej, lub przeszukiwać tabelę, w celu znalezienia określonych danych, to zdajesz sobie sprawę, że nie istnieje prosty sposób typu skrót klawiaturowy Ctrl+F.

Ponieważ SQL Server Management Studio albo Visual Studio nie dają takich możliwości, postanowiliśmy zebrać kilka wskazówek, które opisują jak ułatwić sobie to zadanie.

November 4, 2015

Jak odtworzyć dane po przypadkowym usunięciu tabeli, jeśli nie mamy kopii zapasowej

Jeżeli przypadkowo wykonałeś polecenie DROP oraz posiadasz pełną kopię zapasową bazy danych, to zakładając, że po usunięciu tabeli nie pojawiły się żadne zmiany, wystarczy, że odtworzysz dane z kopii zapasowej, nadpisując oryginalną bazę danymi z kopii. Niestety, w rzeczywistości taka prosta sytuacja nie jest zbyt często możliwa. Czasami, ponieważ dane oraz obiekty w bazie zostały zmienione po wykonaniu polecenia DROP, czasami ponieważ nie posiadamy kopii zapasowej. Efektem czego jest niemożność odzyskania usuniętej tabeli i danych.

November 4, 2015

Jak zmienić nazwę kolumny bez uszkadzania definicji innych obiektów w bazach SQL Server’a

Zmiana nazwy kolumny w tabeli lub widoku nie jest czynnością wykonywaną zbyt często przez programistów baz danych. Nie oznacza to jednak, że nie da się wykonać zmiany nazwy kolumny efektywnie i bez dużego nakładu pracy, jeżeli zaistnieje taka konieczność.

Sama zmiana nazwy kolumny nie jest czynnością trudną. Aby – na przykład – zmienić kolumnę TerritoryID w tablicy Sales.SalesTerritory na nazwę TerrID można wykorzystać poniższy skrypt:

November 4, 2015