Istnieje wiele powodów, dla których warto rozważyć aktualizację do SQL Server 2016. W większości przypadków przyczyny te różnią się w zależności od wersji SQL Server, z której pochodzi. To nie będzie wyczerpująca lista, ale podam kilka powodów, które przychodzą mi na myśl. W tym jeden bardzo ważny powód, o którym właśnie dowiedzieliśmy się o wydaniu dodatku SP1 dla programu SQL Server 2016 w listopadzie 2016 r. Nie mogę się doczekać, aby zobaczyć inne odpowiedzi na rozszerzenie lub funkcje, które przegapiłem.
Wielki powód: teraz wiele funkcji dostępnych w wersji standardowej
16 listopada 2016 r. Microsoft ogłosił wydanie dodatku Service Pack 1 dla SQL Server 2016. Wraz z tym ogłoszeniem ogłosili również, że wiele funkcji zarezerwowanych wcześniej dla klientów Enterprise Edition będzie dostępnych we wszystkich wersjach SQL Server - Standard, Express (z kilka wyjątków), Web oprócz Enterprise Edition.
Powinno to stanowić bardzo ważny powód aktualizacji dla dostawców oprogramowania, którzy opracowują i sprzedają oprogramowanie posiadające zaplecze SQL Server - wiele funkcji może być teraz dostępnych dla ich klientów niezależnie od ich licencjonowanej wersji SQL Server. Jest to również ważne dla firm z sektorów, które muszą zachować kontrolę lub inne ulepszenia bezpieczeństwa, które zostały dodane do produktu w miarę upływu czasu.
Moim skromnym zdaniem, ponad 17 lat pracy z SQL Server sprawia, że SQL Server 2016 SP1 jest prawdopodobnie najbardziej atrakcyjną aktualizacją, odkąd zacząłem pracować z SQL Server w wersji 6.5. (Nie zrozumcie mnie źle, lata 2000, 2005 i 2012 miały swoje plusy także za swoje czasy!)
Spójrz na poniższą listę, ale jako szybki przykład niektórych funkcji, których możesz teraz używać w Wersji standardowej, masz je: Kompresja, Zmiana przechwytywania danych, Dokładna kontrola danych, Bezpieczeństwo na poziomie wiersza, Zawsze szyfrowane, Partycjonowanie, Baza danych Migawki, OLTP w pamięci, magazyn kolumn.
Konkretne powody dla nowych funkcji programu SQL Server 2016
Staram się zachować przyczyny tutaj w tej sekcji do funkcji wprowadzonych tylko w SQL Server 2016. W tej odpowiedzi opisuję tylko podstawowe ulepszenia silnika, a nie raportowanie, analizy, integrację danych itp.
Związane z bezpieczeństwem
Bezpieczeństwo na poziomie wiersza - mam wielu klientów, którzy chcą móc wdrażać zabezpieczenia na zasadzie rząd po rzędzie. „Użytkownik x może wyświetlać dane w tym wierszu, ale nie w tym wierszu”. Wielu z tych klientów stworzyło w tym celu funkcje i / lub skomplikowane struktury oparte na widokach. W SQL Server 2016 są wbudowane predykaty i zasady bezpieczeństwa, które mogą tutaj pomóc. Możesz przeczytać więcej o RLS tutaj .
Dynamiczne maskowanie danych - To brzmi świetnie na papierze, ale zastanawiam się, czy okaże się mniej przydatne niż dwie pozostałe zmiany w obszarze bezpieczeństwa. Zasadniczo można dynamicznie maskować lub zaciemniać dane w czasie zapytania na podstawie uprawnień osoby dzwoniącej. Ilość danych, które należy zaciemnić, jest programowalna. Na przykład w przykładzie używanym przez Microsoft można zamaskować wszystkie cztery ostatnie cyfry numeru karty kredytowej, aby osoba odbierająca połączenie w centrum obsługi mogła zweryfikować te ostatnie cztery cyfry. Możesz przeczytać więcej na ten temat tutaj .
Zawsze szyfrowane - być może słyszałeś o niektórych wadach lub obawach dotyczących przezroczystego szyfrowania danych. Być może nie chcesz używać TDE z obawy, że ktoś z dostępem SA może zdecydowanie odszyfrować, jeśli chce. Always Encrypted został wydany jako funkcja, która daje możliwość odszyfrowywania / szyfrowania w rękach aplikacji wywołującej SQL Server. Dane w spoczynku w SQL Server są szyfrowane. Dane w locie kierowane do SQL Server są również szyfrowane w wyniku tego podejścia. Możesz przeczytać więcej o Always Encrypted tutaj .
Funkcje HA / DR
Pojawiło się kilka funkcji. Jedną z nich jest możliwość korzystania z grup Always On Availability Groups w SQL Server Standard - Basic Availability Group. Było to konieczne, ponieważ kopia lustrzana jest przestarzała i nie miała zastąpienia. Funkcjonalność jest ograniczona do liczby replik i podejścia do synchronizacji. Możesz przeczytać więcej tutaj .
To nie jedyna zmiana w grupach dostępności (które, nawiasem mówiąc, zostały wprowadzone w SQL Server 2012). Istnieje również kilka innych zmian (możesz zobaczyć wyczerpującą listę z linkami do innych zmian tutaj ):
- Obsługiwane są konta usług zarządzanych przez grupę.
- Transakcje rozproszone są obsługiwane (z pewnymi zastrzeżeniami ).
- Połączenia zamiaru odczytu mogą być równoważone obciążeniem między replikami tylko do odczytu.
- Trzy automatyczne repliki mogą być teraz zaangażowane w automatyczne przełączanie awaryjne.
- Zaszyfrowane bazy danych mogą teraz uczestniczyć w grupie Always On Availability Group.
- Ulepszenia wydajności - częścią motywu SQL Server 2016 jest „jest po prostu szybszy” - to jest spin marketingowy Microsoft, ale sprawdza się na rynku. Wprowadzono kilka ulepszeń w wydajności grupy dostępności.
Instalator naprawia niektóre typowe błędy
Instalator SQL Server rozpoczynający się w SQL Server 2016 naprawia niektóre typowe błędy popełniane podczas konfigurowania TempDB. Graficzny interfejs użytkownika poprowadzi Cię teraz przez konfigurację najlepszych praktyk.
Sklep z zapytaniami
Ulubiony wśród MVP i tunerów programu SQL Server. Ta funkcja jest narzędziem zapewniającym wgląd w sposób wykonywania zapytań przez silnik. Szczególnie przydatny w śledzeniu problemów z wydajnością spowodowanych zmianami planów zapytań w miarę upływu czasu. Może to być narzędzie do przeglądania, ale także narzędzie do naprawy. Pomaga uprościć kilka koncepcji dostrajania wydajności. Możesz przeczytać więcej na ten temat tutaj .
Tabele czasowe
Często widzę potrzebę zadania pytania typu „Jak wyglądały te dane na taką i taką datę”. Tabele czasowe są jedną z metod do tego celu. Zdecydowanie kilka przypadków użycia magazynu. Zobacz więcej tutaj .
Ulepszenia magazynu kolumn
Trzy duże ulepszenia dla mnie tutaj wśród kilku innych. Jednym z nich jest aktualizowany nieklastrowany indeks magazynu magazynu. SQL Server 2014 zapewnił nam klastry, które można aktualizować, ale teraz mamy możliwość aktualizacji bez klastrów. SQL Server 2016 pozwala także na indeksowanie magazynu kolumn w tabelach OLTP w pamięci. W SQL Server 2016 istnieje teraz możliwość umieszczenia tradycyjnego indeksu nieklastrowanego B-drzewa w klastrowanym indeksie magazynu kolumn.
Dodatkowe ulepszenia funkcji w OLTP w pamięci
Obecnie dostępnych jest kilka funkcji, które nie były obsługiwane w tabelach In-Memory lub w procedurach kompilacji natywnej. Niektóre dodatki (ale więcej informacji można znaleźć w tym artykule ): ograniczenia UNIKALNE, ograniczenia sprawdzające, klauzula OUTPUT w DML, łączenie zewnętrzne, podzapytania na liście wyboru, WYBIERZ ODRÓŻNICĘ, UNION / UNION ALL i więcej.
Ogólne ulepszenia wydajności
SQL Server 2014 wprowadził pewne ulepszenia wydajności w kilku kluczowych obszarach, podobnie jak każda wersja. SQL Server 2016 wprowadził dodatkowe kluczowe ulepszenia w całym produkcie. Obejmuje to wyeliminowanie u wielu klientów bólu występującego czasami podczas uaktualniania do SQL Server 2014 z powodu zmian oszacowania liczności. Wprowadzono kilka zmian w górę iw dół silnika, aby poprawić codzienną wydajność. Zespół CSS Microsoftu pisze o tym na swoim blogu. Możesz po prostu wyszukać „SQL Server 2016 po prostu działa szybciej”. Przykładowy post na blogu dotyczący tej serii znajduje się tutaj .
Widziałem to u klientów, którzy dokonali aktualizacji i oczekuję, że zobaczę to coraz częściej.
Niektóre minusy
Każda aktualizacja ma oczywiście wady. Może dlatego, że robię to jako konsultant, ale uważam, że wszystkie minusy są niewiarygodnie łatwe w zarządzaniu i naprawdę po prostu uważam, że „liczą koszty przede wszystkim”, aby być świadomym i zarządzać nimi.
Uaktualnienia ogólnie - Uogólnienia oznaczają, że wprowadzasz nowe funkcje. Musisz być w stanie je przetestować. Pomiędzy wersjami SQL Server różne funkcje są przestarzałe. Nie oznacza to, że odejdą od razu, ale oznacza to, że mogą w przyszłych wydaniach, często trzy wersje później. Na przykład typ danych TEKST lub wykonywanie sprzężeń zewnętrznych w klauzuli where za pomocą*=
lub=*
składnia nie jest obsługiwana, jeśli pochodzisz z bazy danych działającej w trybie zgodności z SQL Server 2000. Mówiąc o trybach zgodności - cofają tylko trzy wersje. Jeśli więc masz bazę danych działającą w trybach zgodności 80 (SQL Server 2000) lub 90 (SQL Server 2005), nie mogą przejść do SQL Server 2016 w ten sposób. Jeśli więc unikałeś wykonywania tego testu i skradania się poziomów zgodności, nadszedł czas na rozrachunek.
Jeszcze raz. To jest łatwe. Istnieją narzędzia ułatwiające przechwytywanie i testowanie danych, aby zobaczyć, co się psuje. Istnieją liczniki perfmon, które mogą pomóc wyszukać przestarzałe funkcje.
Licencjonowanie - Dwie rzeczy tutaj:
- Oparte na rdzeniu - jeśli przyzwyczaiłeś się do warunków licencyjnych przed SQL Server 2012, licencje na procesory były po prostu - licencjami na procesory. Od SQL Server 2012 licencje oparte na procesorze są oparte na rdzeniu. Jest tam więc okres dostosowawczy. Musi także obowiązywać Enterprise dla nowych licencji (z pewnymi wyjątkami, które zostały wprowadzone przy pierwszym uruchomieniu 2012 roku)posiadać licencję na poziomie podstawowym - bez serwera + CAL dla przedsiębiorstw. Lśniąca srebrna podszewka w tej chmurze jest tym, co powiedziałem o dodatku SP1, który zezwala na funkcje Enterprise w jednostkach SKU innych niż przedsiębiorstwa. Jeśli potrzebujesz więcej niż 128 GB pamięci RAM. Jeśli potrzebujesz zaawansowanych ulepszeń wydajności skanowania. Jeśli potrzebujesz więcej niż 32 GB pamięci RAM dla magazynu kolumn lub pamięci In-Memory, patrzysz na Enterprise. Jeśli nie? I nie potrzebujesz przebudowy indeksu online? Standard może być właśnie dla Ciebie, a teraz może być więcej dla Ciebie dzięki nowym funkcjom.
- Software Assurance (SA) - jeśli nie kupiłeś SA, musisz kupić nowy. Jeśli więc korzystasz z programu SQL Server 2005 i martwisz się, że nie jesteś objęty głównym wsparciem, a nie bardzo daleko od końca rozszerzonej pomocy technicznej i chciałbyś, aby funkcje były dostępne, nie możesz po prostu uaktualnić się jak dodatek Service Pack. Jeśli nigdy nie kupiłeś SA, to Twoje uaktualnienie jest nowym zakupem. W porządku, naprawdę warto. Ale jest to coś, co musi trafić w budżet.
Podsumowanie
Jest wiele innych powodów, takich jak obsługa JSON, wprowadzenie R itp. Ale to tylko niektóre z powodów, dla których rozważałbym aktualizację. Ponownie najważniejszym elementem jest możliwość korzystania z wielu wcześniejszych funkcji tylko w wersji Enterprise Edition w wersji Standard, a nawet Express. Widziałem wielkie historie sukcesu wśród moich klientów i oczekuję, że zobaczę więcej.
A jeśli używasz programu SQL Server 2005 lub 2008, lista jest jeszcze większa. Grupy AlwaysOn dostępność pojawiły się w 2012 roku, indeksy magazynu kolumn w SQL Server 2012, OLTP w pamięci w SQL Server 2014 itp.
Nie wspominając już o tym, że nadal korzystasz z SQL Server 2005 lub 2008, nie masz już dostępu do głównego nurtu.