Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

Uwagi na temat edycji SQL Server 2019

Ponieważ rozpoczynam swój pierwszy od kilku lat PASS Summit, trudno jest powstrzymać ekscytację najnowszą wersją SQL Server. Pomogłem Bobowi Wardowi (@bobwardms) w edycji technicznej jego najnowszej książki „SQL Server 2019 Revealed” i aktywnie współpracowałem z zespołami produktowymi i moimi kolegami MVP podczas cykli CTP i RC. Uczestniczyłem nawet w bardzo ekskluzywnym wydarzeniu SQL Server 2019 Airlift w Redmond w pierwszym tygodniu października – i chociaż było już za późno na przekazanie opinii, które miałyby wpływ na RTM, przedstawiłem kilka konstruktywnych sugestii, które, mam nadzieję, zobaczymy w CU ( lub dopiero w vNext).

Produkt nie został jeszcze wydany, przynajmniej w momencie pisania tego tekstu, ale zaczęli kształtować, które funkcje (a jest ich dużo) będą dostępne w jakich wydaniach. Jak być może pamiętasz, w dodatku SP1 dla programu SQL Server 2016 udostępniono wszystkie funkcje powierzchni programistycznej we wszystkich edycjach oraz wiele (ale na pewno nie wszystkie) funkcji dotyczących wydajności i dostępności. Pisałem o tym w poście zatytułowanym „A Big Deal:SQL Server 2016 Service Pack 1”. To był bardzo ekscytujący czas i chciałem tylko podzielić się przemyśleniami na temat hitów i pominięć w najnowszej wersji.

Hity

  • Przyspieszone odzyskiwanie baz danych jest w wersji standardowej . To była dla mnie największa niespodzianka, ponieważ myślałem, że będzie to funkcja Enterprise Edition. Jest to funkcja dostępności, ponieważ może drastycznie skrócić czas przełączania awaryjnego i odzyskiwania, a także można ją uznać za funkcję wydajności, ponieważ można teraz używać tego samego lokalnego magazynu wersji dla takich rzeczy, jak RCSI, zamiast udostępniać magazyn wersji w tempdb. Możesz nawet umieścić lokalny magazyn wersji we własnej grupie plików, co nie było opcją, kiedy pisałem o tej funkcji w marcu. Dostępność tej funkcji we wszystkich wersjach jest fantastyczna, ale musisz upewnić się, że testujesz obciążenie pracą względem punktu odniesienia.
  • Transparentne szyfrowanie danych (TDE) jest teraz w wersji standardowej . Mając na uwadze, że dokumentacja nie jest ostateczna, jest to świetna zmiana dla wielu sklepów i ma sens, aby tak ważna funkcja bezpieczeństwa nie była wyróżnikiem dla najdroższego wydania. Nie jest to ani wydajność, ani funkcja dostępności, a podstawowe, rozsądne zabezpieczenie danych nie powinno kosztować dodatkowych kosztów, IMHO. Zgadza się z tym Nike Neugebauer. Zawsze szyfrowane i inne funkcje, takie jak zabezpieczenia na poziomie wiersza i dynamiczne maskowanie danych, są dostępne we wszystkich wersjach, ale nie zawsze pasują do rozwiązania, którego szukają klienci.
  • Wstawianie skalarne UDF jest we wszystkich wydaniach — nawet Express . Jest to świetna funkcja, która zasadniczo ukrywa całą złą wydajność, którą uzyskiwałeś z nieefektywnych skalarnych funkcji zdefiniowanych przez użytkownika (po raz pierwszy pisałem o tej funkcji rok temu). Dziwię się, że ten nie jest tylko Enterprise – mógłby być jak widoki indeksowane, gdzie funkcjonalność jest dostępna wszędzie, ale zachowanie jest lepsze (przynajmniej domyślnie) w Enterprise Edition. Cieszę się, że wszyscy na tym skorzystają.
  • Konfiguracja zapewnia lepsze rekomendacje w świecie rzeczywistym . Nie jest to pozycja na liście funkcji per se, ale jest kilka nowych opcji i sugestii dotyczących pamięci serwera MAXDOP i min/max, które moim zdaniem są świetnymi dodatkami i pozwolą ludziom lepiej konfigurować swoje instancje od samego początku:

    Nowy ekran MaxDOP w konfiguracji ( kliknij, aby powiększyć)

    Nowy ekran pamięci w konfiguracji ( kliknij, aby powiększyć)

    Teraz, gdyby tylko mogli dodać opcje dla innych rzeczy, które przeszkadzają po instalacji, takich jak blokowanie stron w pamięci, zmiana domyślnego progu kosztów dla równoległości, określanie flag śledzenia uruchamiania (takich jak 3226!), wyróżnianie nieoptymalnych ustawień planu zasilania i włączanie Grupy dostępności bezpośrednio zamiast używania Configuration Manager po fakcie. I może mogliby usunąć to nieznośne ostrzeżenie o zaporze; zawsze jest taka sama i, przynajmniej dla mnie, nigdy nie była sensowna ani pomocna w żadnym scenariuszu.

Pusty

  • Nadal nie poruszają się przy limicie 128 GB w wersji standardowej , pomimo wielu próśb (jak ta od Erika Darlinga). To nie jest mój pierwotny pomysł i nie ułatwiłoby to licencjonowania ani egzekwowania prawa, ale ograniczenia pamięci mogłyby być dokonywane w stosunku do liczby licencjonowanych rdzeni. W ten sposób Twój limit pamięci zależy od tego, ile wydałeś na licencjonowanie, a nie od jakiegoś arbitralnego limitu ustalonego w sali konferencyjnej gdzieś 5 lat temu.

    Brent Ozar (@BrentO) również mówił o „idealnej burzy ” obejmujących dotacje pamięci w wersji Standard Edition i całkowicie się z tym zgadzam – myślę, że klienci chętnie zapłaciliby za przejście z licencji CAL na licencjonowanie rdzeni w wersji Standard Edition, gdyby teraz oznaczało to, że mogliby wykorzystać więcej (lub nawet całą) swojej pamięci.
  • Baza danych TempDB zoptymalizowana pod kątem pamięci to tylko wersja Enterprise , podczas gdy inne technologie bazy danych w pamięci, takie jak tabele zoptymalizowane pod kątem pamięci i pula buforów hybrydowych, są dostępne w wersji Standard Edition. Czuję, że ta funkcja jest rodzajem hybrydy między wydajnością a dostępnością; przynajmniej więcej równowagi niż, powiedzmy, inlining UDF. Powolne funkcje sprawiają, że ludzie czekają; przeciążony tempdb może prawie dosłownie zniszczyć twoją instancję. Mam też wrażenie, że klienci korporacyjni mają już więcej i lepszego sprzętu, aby rozwiązać problem, niż mogą sobie pozwolić mniejsze sklepy. Klienci, którzy wybiorą wersję standardową, niekoniecznie mają oszczędności czekając na wypisanie czeków.

    Jedną z sugestii dotyczących tej funkcji było to, że podczas instalacji powinny znajdować się argumenty wiersza poleceń i/lub pole wyboru interfejsu użytkownika, aby włączyć tę funkcję natychmiast po instalacji lub aktualizacji. Pozwoli to uniknąć zakłóceń po instalacji, ponieważ jedynym sposobem włączenia tej funkcji jest ponowne uruchomienie usługi. Powodem, dla którego nie jest on domyślnie włączony, jest to, że istnieją wzorce obciążenia, w których korzyści nie będą oczywiste, oraz kilka scenariuszy łamania obejmujących transakcje i inne bazy danych z tabelami zoptymalizowanymi pod kątem pamięci, więc chcą przetestować obciążenie i upewnić się, że przestrzegają właściwych rodzajów sporów i że są z tego korzyści. Ale co, jeśli już to zrobiłem na innym systemie z tym samym obciążeniem?

Pożegnalne myśli

Choć może to brzmieć, jakbym narzekał, nadal jestem bardzo podekscytowany tą wersją i wszystkim, co ma do zaoferowania. Spodziewam się, że dostępność zostanie ogłoszona zarówno podczas Ignite, jak i PASS Summit, więc zanim to przeczytasz, możesz mieć w ręku bity RTM.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. nvarchar(max) vs NText

  2. Jak utworzyć ograniczenie klucza obcego z ON UPDATE CASCADE w SQL Server - SQL Server / TSQL Tutorial, część 79

  3. Jak usunąć wiodące i końcowe znaki w SQL Server

  4. Odmówiono uprawnienia EXECUTE do obiektu „xxxxxxx”, bazy danych „zzzzzzz”, schematu „dbo”

  5. Usuń profil poczty bazy danych w programie SQL Server (T-SQL)