SELECT Explanation, Example FROM Pro.Knowledge
FacebookRSS

Środowisko testowe

Serwer testowy

Nauka jakiegokolwiek języka „na sucho”, mija się z celem. Dotyczy to zarówno tradycyjnych języków obcych ale także programowania czy języka SQL. Wszystkie tematy poruszane w tym kursie, najlepiej przećwiczyć na własnym poligonie. W trakcie pisania, pojawiają się nowe pytania, można szerzej przećwiczyć różne warianty i tym samym lepiej zrozumieć temat.

Do pełnego zrozumienia zagadnień poruszanych tutaj, koniecznie powinieneś zbudować sobie środowisko testowe.

Jeśli chodzi o SQL Server sugeruję zacząć od wersji 2012 lub najlepiej 2014 (w kursie opisuję kilka nowinek związanych z najnowszą, 12 wersją serwera).

Do celów edukacyjnych, idealne są edycje darmowa Express oraz testowa Evaluation Edition (180-dniowy trail w najwyższej wersji Enterprise). Zagadnienia przedstawione w tym kursie, możesz w pełni przetestować na darmowej wersji Express dostępnej tutaj.

Co prawda jej możliwości są okrojone w stosunku do pełnych, płatnych wersji (pod względem wydajnościowym, funkcji związanych z wysoką dostępnością, BI etc.), ale jeśli chodzi o naukę SQL to w zupełności wystarczy.

Wersja SQL Server Express to platforma, którą możesz używać również we wdrożeniach komercyjnych. Jednymi z bardziej dotkliwych ograniczeń są :

  • maksymalny rozmiar bazy do 10GB
  • procesy SQL Servera będą wykorzystywały max jeden procesor (lub 4 rdzenie) oraz 1 GB RAM.

Pełne porównanie funkcjonalności różnych wersji SQL Server 2012 – znajdziesz na oficjalnych stronach Microsoft.

Instalując serwer, pamiętaj o zaznaczeniu narzędzi do zarządzania bazami danych czyli Microsoft SQL Server Management Studio. Jest to graficzny interfejs użytkownika, dzięki któremu w prosty sposób możesz zarządzać serwerem, bazami i wszystkimi obiektami. Jest to też wygodne środowisko deweloperskie, do pisania, testowania zapytań i skryptów.

Testowe bazy danych

Przykłady prezentowe w tym kursie, bazują na dwóch oficjalnych, testowych bazach danych. Możesz je pobrać tutaj.

  • Northwind – prosta, mała baza, znana bardzo dobrze ze starszych wersji SQL Server. Używam jej bo zawiera proste struktury tabel, na których można prezentować bardziej złożone zapytania, bez „zaciemniania” sedna tego co chce pokazać. Do instalacji, wystarczy uruchomić skrypt SQL (otwórz go i uruchom w Microsoft SQL Server Management Studio) – do pobrania tutaj.
  • AdventureWorks2008 – znacznie bardziej zaawansowana, posiada wiele cech rzeczywistej, produkcyjnej bazy danych. Tu z uwagi na liczbę, różnorodność danych, łatwiej zaprezentować aspekty związane z wydajnością zapytań. Najłatwiej „zainstalować” ją poprzez dołączenie do bazy – prawy strzał w oknie Object Explorera na Databases i Attach. Wystarczy następnie wskazać plik bazy z rozszerzeniem mdf (podstawowy plik bazy danych). Baza dostępna w różnych wersjach (OLTP,DW). W kursie korzystam z AdventureWorks2008, do pobrania na stronach CodePlex, gdzie znajdziesz również jej pozostałe wersje.
    Env_att
  • Twoje własne testowe bazy danych. Nic nie stoi na przeszkodzie, żebyś tworzył własne testowe bazy danych. Oczywiście musisz mieć uprawnienia na serwerze do ich tworzenia, ale zakładając że jesteś sam sobie sterem, żaglem i adminem, możesz to wykonać za pomocą T-SQL :
    CREATE DATABASE Testowa
    

Środowisko testowe i produkcyjne

Z definicji, środowiska testowe i produkcyjne powinny być maksymalnie odseparowane, najlepiej hardware’owo.

Jeśli chcesz testować zapytania na bazach produkcyjnych, powinieneś zawsze uwzględnić fakt, że działanie ich wpływa na pracę serwera. Odczytujesz przecież konkretne dane, zatem korzystasz z zasobów dyskowych, pamięci i mocy procesora maszyny. Niektóre z nich mogą znacząco wpłynąć na ogólną wydajność (np. jeśli przez przypadek napiszesz zapytanie będące iloczynem kartezjańskim, lub gdy będziesz chciał odczytać wszystkie rekordy tabeli, która zawiera wiele milionów rekordów).

Jako administrator baz danych sugeruje, że jeśli musisz testowo odpytywać bazy produkcyjne lub ćwiczyć na nich swoje umiejętności, zastosuj się do kilku poniższych zasad :

  • jeśli możesz, ćwicz zawsze na bazie testowej na serwerze testowym :) (może to być kopia zapasowa bazy produkcyjnej)
  • ustaw poziom izolacji swojej sesji na Read Uncommitted. Przyspieszy to czas odczytów (nie będziesz czekał na zwolnienie blokad) Twoich zapytań i Twojej działalności na danych produkcyjnych. Wykonasz to za pomocą polecenia SET. Jeśli testujesz swoje zapytania, zazwyczaj izolacja między transakcjami nie jest istotna (chyba że testujesz współbieżność).
    SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
    
  • próbkuj wyciągane dane z tabel stosując klauzulę TOP (jeśli chcesz na przykład sprawdzić co dana tabela zawiera). Nie pobieraj wszystkiego jak leci – select * from tabela to bardzo złe zapytanie w środowisku produkcyjnym

8 thoughts on “Środowisko testowe

  1. Witam,
    Kurs mega! Jednak mam problem z załadowaniem bazy Nothwind. Czy może to być kwestia niekompatybilności z SQL Server 2014 ?

    Pozdrawiam
    Piotr

    • Jeśli mówimy o skrypcie instnwnd.sql, tworzącym bazę testową Northwind, to istnieje minimalna niekompatybilność jeśli chodzi o SQL Server 2014. Dwa polecenia wygenerują błąd (wywołanie procedury sp_dboption) – możesz je po prostu pominąć.

      Pełną informację na temat instalacji Northwind znajdziesz w domyślnym folderze po zainstalowaniu tego pakietu .msi ( zakładam że pobrałeś go stąd ) czyli na C:\SQL Server 2000 Sample Databases\ReadMe_SQL2000SampleDbScripts.htm.

  2. Gdzie mogę dostać baze Northwind w polskiej wersji ? Przez cały kurs operujesz na danych z polskimi nazwami, linki do Northwind, które podajesz przekierowuja tylko do angielskiej wersji….

    • Ogólnie należy przyjąć jako naczelną zasadę, że w informatyce nie ma co liczyć na stosowanie języka polskiego. Np. że dokumentacja do jakiegoś języka programowania będzie przetłumaczona na j.polski. Na jakimś forum dyskusyjnym znalazłem wpisy, których sedno można sparafrazować tak: jaki język muszę znać/nauczyć się aby pisać programy/pracować w branży IT? Odpowiedź – język angielski.

  3. Dzień dobry. Jestem laikiem w temacie i od razu natrafiłem na problem.
    Mam SQL Server 2014 Management Studio i nie mogę uruchomić bazy Northwind. Wyskakuje błąd podczas podłączania bazy przez „attach”:

    TITLE: Microsoft SQL Server Management Studio
    ——————————

    Attach database failed for Server ‚KRUHEL\SQLEXPRESS’. (Microsoft.SqlServer.Smo)

    For help, click: http://go.microsoft.com/fwlink?ProdName=Microsoft+SQL+Server&ProdVer=12.0.2000.8+((SQL14_RTM).140220-1752)&EvtSrc=Microsoft.SqlServer.Management.Smo.ExceptionTemplates.FailedOperationExceptionText&EvtID=Attach+database+Server&LinkId=20476

    ——————————
    ADDITIONAL INFORMATION:

    An exception occurred while executing a Transact-SQL statement or batch. (Microsoft.SqlServer.ConnectionInfo)

    ——————————

    Database ‚Northwind’ cannot be upgraded because its non-release version (539) is not supported by this version of SQL Server. You cannot open a database that is incompatible with this version of sqlservr.exe. You must re-create the database.
    Could not open new database ‚Northwind’. CREATE DATABASE is aborted. (Microsoft SQL Server, Error: 950)

    For help, click: http://go.microsoft.com/fwlink?ProdName=Microsoft%20SQL%20Server&EvtSrc=MSSQLServer&EvtID=950&LinkId=20476

    ——————————
    BUTTONS:

    OK
    ——————————
    Czy mozna przekonwertowac bazę Northwind do wersji współpracującej z SQL 2014 ? Czy muszę wgrać wcześniejsza wesję SQL ?

Leave a comment

Twój adres email nie zostanie opublikowany.

Uzupełnij równanie (SPAM protection) *