Strona korzysta z plików cookies w celu realizacji usług i zgodnie z Polityką Plików Cookies.


17.09.2019

PLNOG23 czyli sieci 5G,...

Największa polska konferencja telekomunikacyjna powraca do Krakowa! Wśród nowości ścieżka...
05.09.2019

Cloudya – nowa usługa NFON

Po ponad dekadzie ciągłego rozwoju technologii Cloudya, swobodna i niczym nie ograniczona...
02.09.2019

Na dużą skalę

Kaspersky Hybrid Cloud Security
02.09.2019

Bezpieczny brzeg sieci

Fortinet Secure SD-Branch
02.09.2019

Nowoczesne centra danych

AMD EPYC
30.08.2019

Dostęp do AI i ML

VMware Cloud Foundation
30.08.2019

Lekkość i moc

Toshiba Portégé A30-E
30.08.2019

Bez przestojów

APC Easy UPS On-Line
29.08.2019

Duże moce

Lenovo ThinkSystem SR635 i SR655

Nowe funkcje serwera SQL Server

Data publikacji: 27-11-2017 Autor: Marcin Szeliga
RYS. 1. ARCHITEKTURA SERWERA...

W drugiej części artykułu poświęconego nowej wersji serwera SQL przyjrzymy się m.in. nowościom, z których skorzystanie wymaga samodzielnej instalacji i konfiguracji odpowiedniej funkcji, przede wszystkim możliwości uruchomienia serwera SQL Server w kontenerach i systemach Linux, oraz takim funkcjom jak modelowanie relacji typu wiele do wielu w formie grafów, oraz obsłudze języka Python.

W pierwszej części artykułu przedstawione zostały funkcje automatycznej optymalizacji i adaptacyjnego wykonywania zapytań, dzięki którym wystarczy zaktualizować serwer SQL do wersji 2017, żeby rozwiązać typowe problemy wydajnościowe. W szczególności omówione zostały mechanizmy:

 

  • przeplatanego wykonywania złożonych funkcji tabelarycznych;
  • przydzielania pamięci dla zapytań wykonywanych w trybie wsadowym;
  • adaptacyjnego łączenia tabel.


Jak wspomnieliśmy we wstępie, w tej części opiszemy możliwości uruchomienia serwera SQL Server w kontenerach i systemach Linux, modelowanie relacji typu wiele do wielu w formie grafów oraz obsługę języka Python. Dodatkowo przedstawimy udoskonalony mechanizm wymuszania wykonywania zapytań według wskazanych zapisanych w magazynie zapytań planów.

> Serwer SQL w kontenerach i Linuksie

Chociaż firma Microsoft od kilku lat coraz chętniej wspiera systemy Linux i oprogramowanie open source, gdy w 2016 roku ogłosiła, że SQL Server 2017 będzie działał w środowisku systemów Linux, zaskoczenie było powszechne. W zrozumieniu tego, jak udało się w tak krótkim czasie przygotować wersję serwera SQL Server działającą w środowisku systemu Linux, pomocne będzie zrozumienie, czym jest doker.

Doker

Doker to zbiór narzędzi do uruchamiania i zarządzania programami w odizolowanym środowisku (kontenerze). W tym sensie doker przypomina maszynę wirtualną (oba narzędzia pozwalają uruchomić wiele systemów operacyjnych gości), ale o ile maszyny wirtualne oferują pełną izolację (programy działają w środowisku wirtualnego, w pełni funkcjonalnego systemu operacyjnego), o tyle kontenery współdzielą określone zasoby systemu gospodarza, w tym jądro tego systemu, które jest wspólne dla innych kontenerów. W efekcie kontenery mogą być znacznie mniejsze od maszyn wirtualnych, szybsze jest też ich uruchamianie i zatrzymywanie. Jeżeli zainstalujemy 10 identycznych kontenerów o wielkości 1 GB, to początkowo zajmą one 1 GB pamięci, tymczasem 10 maszyn wirtualnych zajmie 10 GB na dysku systemu hosta.

Serwer SQL Server 2017 dostępny jest w postaci obrazów kontenerów przeznaczonych dla dokerów Linux (tinyurl.com/docker-mssql-linux) oraz Windows – edycja Express dostępna jest pod adresem tinyurl.com/docker-mssql-express, natomiast edycję Developer można pobrać spod adresu tinyurl.com/docker-mssql-dev.


W czasie powstawania artykułu każdy z tych obrazów został pobrany ponad milion razy, co wskazuje na ogromne zainteresowanie takim sposobem uruchamiania serwera SQL. Jednym z powodów jest łatwość i szybkość instalacji. Na przykład instalacja serwera SQL Server 2017 w kontenerze dla systemu Linux polega na:

1.    pobraniu obrazu kontenera:


docker pull microsoft/mssql-server-linux A 


2.  i jego uruchomieniu:


docker run -e 'ACCEPT_EULA=Y' -e 'MSSQL_SA_PASSWORD=<Hasło>' -e \
'MSSQL_PID=Developer' --cap-add SYS_PTRACE -p 1401:1433 \
-d microsoft/mssql-server-linux

 

Po zakończeniu instalacji możemy się już połączyć z działającym w kontenerze serwerem SQL Server. Co więcej, możemy to zrobić z poziomu powłoki Bash kontenera Linux i programu sqlcmd. W tym celu należy:

 

1.    uruchomić powłokę, podając jako parametr identyfikator kontenera:

 

docker exec -it e69e056c702d "bash"

 

2.    połączyć się z serwerem SQL Server za pomocą znanego z systemu Windows programu wiersza polecenia sqlcmd:


/opt/mssql-tools/bin/sqlcmd -S localhost -U SA -P '<Hasło>'

 

SQL Server dla systemów Linux

Chociaż popularność serwera SQL Server wciąż rośnie, jego wcześniejsze wersje działały wyłącznie w środowisku systemów Windows. A to oznaczało, że skorzystanie z niego wymagało od firmy zainstalowania co najmniej jednego serwera z systemem Windows. Taka strategia mogła być kojarzona z firmą Microsoft jeszcze kilka lat temu, ale dziś kierowana przez Satya Nadella korporacja zmieniła swoją politykę. W rezultacie pomysł stworzenia serwera SQL dla systemów Linux zyskał szybką aprobatę i w 2014 roku rozpoczęły się prace nad jego realizacją.

Od początku najważniejszym założeniem projektu było zapewnienie stuprocentowej zgodności serwera SQL Server z wersjami działającymi w środowisku systemów Windows. Jak jednak osiągnąć ten cel w przypadku tak rozbudowanego, liczącego miliony wierszy kodu programu, jakim jest SQL Server? Rozwiązaniem okazało się wykorzystanie wcześniej zrealizowanego przez dział Microsoft Research projektu o nazwie Drawbridge.


Celem tego projektu badawczego rozpoczętego w 2011 roku było zbudowanie kontenera zawierającego zoptymalizowaną pod kątem wydajnego uruchamiania aplikacji okrojoną wersję systemu Windows. Pozwoliło to zredukować w kodzie serwera SQL Server ogromną liczbę wywołań funkcji systemowych, które wymagałyby przepisania na wywołania funkcji systemu Linux, z ponad 1200 do 50!

[...]

Autor od 20 lat zawodowo pracuje z danymi i posiada tytuł Microsoft Most Valuable Professional.

Artykuł pochodzi z miesięcznika: IT Professional

Pełna treść artykułu jest dostępna w papierowym wydaniu pisma.

.

Transmisje online zapewnia: StreamOnline

All rights reserved © 2019 Presscom / Miesięcznik "IT Professional"