sql >> Database teknologi >  >> RDS >> Sqlserver

Tanker om SQL Server 2019-udgaver

Da jeg påbegynder mit første PASS Summit i et par år, er det svært at dæmme op for min begejstring over den nyeste version af SQL Server. Jeg hjalp Bob Ward (@bobwardms) med teknisk redigering af hans seneste bog, "SQL Server 2019 Revealed," og har været aktivt engageret med produktteamene og mine MVP-kammerater gennem CTP- og RC-cyklusserne. Jeg deltog endda i den meget eksklusive SQL Server 2019 Airlift-begivenhed i Redmond i den første uge af oktober – og selvom det var for sent at give feedback, der ville påvirke RTM, kom jeg med adskillige konstruktive forslag, som vi forhåbentlig vil se i en CU ( eller så sent som vNext).

Produktet er ikke udgivet endnu, i hvert fald i skrivende stund, men de er begyndt at forme hvilke funktioner (og dem er der rigtig mange af), der vil være tilgængelige i hvilke udgaver. Som du måske husker, åbnede de tilbage i SQL Server 2016 SP1 alle programmeringsoverfladefunktionerne for alle udgaver og mange (men bestemt ikke alle) ydelses- og tilgængelighedsfunktionerne. Jeg skrev om dette i et indlæg med titlen "A Big Deal:SQL Server 2016 Service Pack 1." Det var en meget spændende tid, og jeg ville bare dele nogle tanker om hits og savner i den nyeste version.

Hits

  • Accelereret databasegendannelse er i standardudgaven . Dette var let den største overraskelse for mig, da jeg troede, det ville være en Enterprise Edition-funktion. Det er en tilgængelighedsfunktion, fordi den drastisk kan reducere failover og gendannelsestid, og den kan også betragtes som en ydeevnefunktion, fordi du nu kan bruge den samme lokale versionslager til ting som RCSI i stedet for at dele versionslager i tempdb. Du kan endda lægge den lokale versionslager i sin egen filgruppe, hvilket ikke var en mulighed, da jeg skrev om funktionen i marts. At have dette tilgængeligt i alle udgaver er fantastisk, men du skal sørge for at teste din arbejdsbyrde i forhold til en baseline.
  • Transparent Data Encryption (TDE) er nu i Standard Edition . Når man husker på, at dokumentationen ikke er endelig, er dette en stor ændring for mange butikker, og det giver mening, at en så vigtig sikkerhedsfunktion ikke bør være en differentiator for den dyreste udgave. Det er hverken en ydeevne eller en tilgængelighedsfunktion, og grundlæggende, fornuftig datasikkerhed bør ikke koste ekstra, IMHO. Nike Neugebauer er enig. Altid krypteret og andre funktioner som Row-Level Security og Dynamic Data Masking er tilgængelige i alle udgaver, men de passer ikke altid ind i den "nemme knap"-løsning, som kunderne leder efter.
  • Scalar UDF Inlining er i alle udgaver – også Express . Dette er en fantastisk funktion, der i det væsentlige skjuler al den dårlige ydeevne, du plejede at få fra ineffektive skalære brugerdefinerede funktioner (jeg skrev første gang om denne funktion for et år siden). Jeg er overrasket over, at denne ikke kun er Enterprise - det kunne have været som indekserede visninger, hvor funktionaliteten er tilgængelig overalt, men adfærden er bedre (i hvert fald som standard) i Enterprise Edition. Jeg er glad for, at alle vil få gavn af denne sag.
  • Opsætning giver bedre anbefalinger fra den virkelige verden . Dette er ikke et element på funktionslisten i sig selv, men der er nogle nye muligheder og forslag omkring MAXDOP og min/max serverhukommelse, som jeg synes er gode tilføjelser og vil give folk mulighed for bedre at konfigurere deres instanser fra starten:

    Ny MaxDOP-skærm i opsætning ( klik for at forstørre)

    Skærmbilledet Ny hukommelse i opsætning ( klik for at forstørre)

    Hvis de nu bare kunne tilføje muligheder for andre ting, der er forstyrrende efter installationen, såsom lås sider i hukommelsen, ændring af standardomkostningstærsklen for parallelitet, specificering af startsporingsflag (som 3226!), fremhæve suboptimale strømplanindstillinger og aktivering Tilgængelighedsgrupper direkte i stedet for at bruge Configuration Manager bagefter. Og måske kunne de fjerne den irriterende advarsel om firewallen; det er altid det samme, og i hvert fald for mig har det aldrig været meningsfuldt eller nyttigt i noget scenarie.

Frekker

  • De vil stadig ikke rokke ved grænsen på 128 GB for Standard Edition , på trods af mange forespørgsler (som denne fra Erik Darling). Det er ikke min oprindelige idé, og det ville ikke gøre licensering eller håndhævelse enklere, men hukommelsesgrænserne kunne laves i forhold til antallet af licenserede kerner. På denne måde er din hukommelsesgrænse baseret på, hvor meget du har brugt på licenser, ikke en vilkårlig grænse, der blev besluttet i et mødelokale et sted for 5 år siden.

    Brent Ozar (@BrentO) talte også om den "perfekte storm " involverer hukommelsestilskud i Standard Edition, og jeg er helt enig - jeg tror, ​​at kunderne med glæde ville betale præmien ved at skifte fra CAL til kernelicenser på Standard Edition, hvis det nu betød, at de kunne bruge mere (eller endda hele) deres hukommelse.
  • Hukommelsesoptimeret TempDB er kun Enterprise Edition , mens andre In-Memory Database-teknologier, såsom Memory-Optimized Tables og Hybrid Buffer Pool, er tilgængelige i Standard Edition. Jeg føler, at denne funktion er en slags hybrid mellem ydeevne og tilgængelighed; i det mindste mere en balance end f.eks. UDF inlining. Langsomme funktioner får bare folk til at vente; en overvældet tempdb kan næsten bogstaveligt talt tage din instans ned. Jeg føler også, at Enterprise-kunder har en tendens til allerede at have mere og bedre hardware at kaste på problemet, end mindre butikker har råd til. Kunder, der vælger Standard Edition, har ikke nødvendigvis besparelserne stående og venter på at skrive checks mod.

    Et af de forslag, jeg havde omkring denne funktion, var, at der skulle være kommandolinjeargumenter og/eller et UI-afkrydsningsfelt under opsætningen for at aktivere denne funktion umiddelbart efter en installation eller opgradering. Dette ville undgå afbrydelser efter installationen, da den eneste måde at aktivere funktionen på er at udføre en genstart af tjenesten. Grunden til, at den ikke er tændt som standard, er, at der er arbejdsbelastningsmønstre, hvor fordelene ikke vil være indlysende, og nogle brudscenarier, der involverer transaktioner og andre databaser med hukommelsesoptimerede tabeller, så de vil have dig til at teste din arbejdsbyrde og sørge for, at du observerer de rigtige typer af stridigheder, og at fordelen er der. Men hvad hvis jeg allerede har gjort det på et andet system med samme arbejdsbyrde?

Afskedstanker

Selvom det kan lyde som om jeg klager, er jeg stadig super begejstret for denne version og alt, hvad den har at byde på. Jeg forventer, at tilgængeligheden bliver annonceret på både Ignite og PASS Summit, så du kan have RTM-bitterne i hånden, når du læser dette.


  1. Hvordan tæller man alle rækker, når man bruger SELECT med LIMIT i MySQL-forespørgsel?

  2. Guide til designdatabase til quiz i MySQL

  3. Sådan modelleres for nem databasevedligeholdelse

  4. SQL (ORACLE):ORDER BY og LIMIT