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


05.09.2022

Łatwiejsza migracja do chmur

Commvault i Oracle rozszerzyły partnerską współpracę i wspólnie oferują rozwiązanie...
01.09.2022

Badanie sieci

QNAP ogłosił wprowadzenie oprogramowania ADRA Network Detection and Response (NDR) dla...
01.09.2022

5G w Polsce

Z badania Kearney 5G Readiness Index 2022 wynika, że Polska jest jednym z najgorzej...
01.09.2022

Zarządzanie działaniami

Fortinet zaprezentował chmurową usługę, która koreluje informacje dotyczące...
01.09.2022

Selektywna rejestracja

Naukowcy z UCLA przedstawili projekt inteligentnej kamery, która pozwala wybrać, jaki...
01.09.2022

Więcej mocy, komputer...

Profesjonalny komputer Dell Precision 7865 Tower z AMD Ryzen Threadripper PRO 5000...
01.09.2022

Rekord prędkości

Firma Aorus zapowiada superszybki dysk, następcę modelu Gen4 7000s SSD, który ma oferować...
01.09.2022

Beprzewodowe drukowanie

Firma Brother wprowadziła do swojego portfolio nowe urządzenie wielofunkcyjne z systemem...
01.09.2022

Obraz dobrze zaprogramowany

Monitor interaktywny Lyra to połączenie Androida 11, szyby antybakteryjnej, wbudowanego...

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\"