sql >> Databasteknik >  >> RDS >> Sqlserver

Tankar om SQL Server 2019 Editions

När jag ger mig in på mitt första PASS Summit på några år är det svårt att hålla tillbaka min entusiasm över den senaste versionen av SQL Server. Jag hjälpte Bob Ward (@bobwardms) med teknisk redigering av hans senaste bok, "SQL Server 2019 Revealed", och har varit aktivt engagerad med produktteamen och mina MVP-kamrater under CTP- och RC-cyklerna. Jag deltog till och med i det mycket exklusiva SQL Server 2019 Airlift-evenemanget i Redmond den första veckan i oktober – och även om det var för sent att ge feedback som skulle påverka RTM, kom jag med flera konstruktiva förslag som vi förhoppningsvis kommer att se i en CU ( eller så sent som vNext).

Produkten är inte släppt än, i alla fall i skrivande stund, men de har börjat forma vilka funktioner (och det finns en hel del av dem) som kommer att finnas i vilka utgåvor. Som du kanske minns, tillbaka i SQL Server 2016 SP1, öppnade de upp alla programmeringsytor för alla utgåvor, och många (men absolut inte alla) prestanda- och tillgänglighetsfunktioner. Jag skrev om detta i ett inlägg med titeln "A Big Deal :SQL Server 2016 Service Pack 1." Det här var en mycket spännande tid, och jag ville bara dela med mig av några tankar om träffarna och missarna i den senaste versionen.

Träffar

  • Accelererad databasåterställning finns i standardutgåvan . Detta var lätt den största överraskningen för mig, eftersom jag trodde att det skulle vara en Enterprise Edition-funktion. Det är en tillgänglighetsfunktion, eftersom den drastiskt kan minska failover och återställningstid, och den kan också betraktas som en prestandafunktion, eftersom du nu kan använda samma lokala versionsarkiv för saker som RCSI istället för att dela versionsarkivet i tempdb. Du kan till och med lägga den lokala versionsbutiken i sin egen filgrupp, vilket inte var ett alternativ när jag skrev om funktionen i mars. Att ha detta tillgängligt i alla utgåvor är fantastiskt, men du måste se till att du testar din arbetsbelastning mot en baslinje.
  • Transparent Data Encryption (TDE) finns nu i standardversionen . Med tanke på att dokumentationen inte är slutgiltig är detta en stor förändring för många butiker, och det är vettigt att en så viktig säkerhetsfunktion inte bör vara en skillnad för den dyraste utgåvan. Det är varken en prestanda- eller tillgänglighetsfunktion, och grundläggande, vettig datasäkerhet borde inte kosta extra, IMHO. Nike Neugebauer håller med. Alltid krypterad och andra funktioner som Row-Level Security och Dynamic Data Masking är tillgängliga i alla utgåvor, men de passar inte alltid in i den "enkla knapp"-lösning som kunderna letar efter.
  • Skalär UDF Inlining finns i alla upplagor – även Express . Det här är en fantastisk funktion som i princip döljer all dålig prestanda du brukade få från ineffektiva skalära användardefinierade funktioner (jag skrev först om den här funktionen för ett år sedan). Jag är förvånad över att den här inte bara är Enterprise - det kunde ha varit som indexerade vyer, där funktionaliteten är tillgänglig överallt, men beteendet är bättre (åtminstone som standard) i Enterprise Edition. Jag är glad att alla kommer att gynnas i det här fallet.
  • Inställningar ger bättre rekommendationer från verkligheten . Det här är inte ett objekt på funktionslistan i sig, men det finns några nya alternativ och förslag kring MAXDOP och min/max serverminne som jag tycker är bra tillägg och som kommer att tillåta människor att bättre konfigurera sina instanser från början:

    Ny MaxDOP-skärm i installationen ( klicka för att förstora)

    Skärmen Nytt minne i installationen ( klicka för att förstora)

    Om de bara kunde lägga till alternativ för andra saker som är störande efter installationen, som att låsa sidor i minnet, ändra standardkostnadströskeln för parallellitet, ange startspårningsflaggor (som 3226!), markera suboptimala inställningar för energischema och aktivera Tillgänglighetsgrupper direkt istället för att använda Configuration Manager i efterhand. Och kanske kunde de ta bort den där irriterande varningen om brandväggen; det är alltid detsamma och åtminstone för mig har det aldrig varit meningsfullt eller användbart i något scenario.

Fröken

  • De kommer fortfarande inte att vika på gränsen på 128 GB för Standard Edition , trots många förfrågningar (som denna från Erik Darling). Det är inte min ursprungliga idé, och det skulle inte göra licensiering eller tillämpning enklare, men minnesgränserna kunde göras i förhållande till antalet licensierade kärnor. På så sätt baseras din minnesgräns på hur mycket du spenderade på licensiering, inte någon godtycklig gräns som bestämdes i ett konferensrum någonstans för 5 år sedan.

    Brent Ozar (@BrentO) pratade också om den "perfekta stormen " som involverar minnesbidrag i Standard Edition, och jag håller helt med – jag tror att kunderna gärna skulle betala premien för att byta från CAL till kärnlicenser i Standard Edition om det nu innebar att de kunde använda mer (eller till och med allt) av sitt minne.
  • Minnesoptimerad TempDB är endast Enterprise Edition , medan andra In-Memory Database-teknologier, som Memory-Optimized Tables och Hybrid Buffer Pool, är tillgängliga i Standard Edition. Jag känner att den här funktionen är en sorts hybrid mellan prestanda och tillgänglighet; åtminstone mer av en balans än till exempel UDF inlining. Långsamma funktioner får folk att vänta; en överväldigad tempdb kan nästan bokstavligen ta ner din instans. Jag känner också att Enterprise-kunder redan har mer och bättre hårdvara att kasta på problemet än mindre butiker har råd med. Kunder som väljer Standard Edition har inte nödvändigtvis besparingarna kvar och väntar på att skriva checkar mot.

    Ett av förslagen jag hade kring den här funktionen var att det skulle finnas kommandoradsargument och/eller en UI-kryssruta under installationen för att aktivera den här funktionen direkt efter en installation eller uppgradering. Detta skulle undvika avbrott efter installationen, eftersom det enda sättet att aktivera funktionen är att utföra en omstart av tjänsten. Anledningen till att den inte är på som standard är att det finns arbetsbelastningsmönster där fördelen inte kommer att vara uppenbar, och vissa brytscenarier som involverar transaktioner och andra databaser med minnesoptimerade tabeller, så de vill att du testar din arbetsbelastning och ser till att du observerar rätt typer av påståenden och att fördelen finns där. Men vad händer om jag redan har gjort det på ett annat system med samma arbetsbelastning?

Att skiljas

Även om det kan låta som att jag klagar, är jag fortfarande väldigt exalterad över den här versionen och allt den har att erbjuda. Jag förväntar mig att tillgänglighet kommer att meddelas på både Ignite och PASS Summit, så du kanske har RTM-bitarna i din hand när du läser detta.


  1. SQLite Group By

  2. Databasalternativ/paketanvändningsrapportering

  3. Hur konverterar man XMLTYPE till VARCHAR i ORACLE?

  4. Storlek på partitionstabell i PostgreSQL 9.0