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

A Big Deal:SQL Server 2016 Service Pack 1

Nå, jeg kan ikke påstå, at du hørte det her først, da det blev annonceret i dag af Scott Guthrie (@ScottGu ) ved Forbind(); // 2016 og også på SQL Server-teambloggen , men SQL Server 2016 Service Pack 1 er bygget af SQL Server, der endelig vil få stort set alle til at opgradere fra alle tidligere versioner.

Hvorfor? Nå, Jeg håber, du sidder ned:

Mange Enterprise-funktioner er nu tilgængelige i Standard, Web og Express.

Dette er en BIG DEAL.

Jeg har længe været fortaler for at gøre overfladearealet det samme på tværs af alle udgaver og begrænse hver udgave til hardware/ressourcegrænser. Sidstnævnte er allerede tilfældet med Express Edition (1 CPU, 1 GB hukommelse, 10 GB databasestørrelse) og Standard Edition (24 kerner, 128 GB), men funktionerne i sig selv eksisterer simpelthen ikke der. Selvom de tilføjede noget funktionalitet omkring Availability Groups (begrænset understøttelse i Standard Edition og muligheden for at give afkald på et domæne), ser mange af de funktioner, der i øjeblikket kun er Enterprise, slet ikke ud til at være Enterprise-y. Her er nogle grunde til og konsekvenser af at placere så mange kritiske funktioner kun i Enterprise, i det mindste efter min mening:

  1. Datasikkerhed ser ud til at have sat sig i bagsædet i de senere år. Det burde være i alle udgaver; Jeg var skuffet, da Always Encrypted blev udgivet, og det var begrænset til Enterprise. Det implicitte budskab var, at hvis du er en lille virksomhed, behøver du ikke være i stand til at kryptere kreditkortdata (de siger det samme med Transparent Data Encryption, men Always Encrypted er et meget mere værdifuldt tilbud).
  2. Programmerbarhedsfunktioner at måneskin som ydeevnefunktioner – som datakomprimering og partitionering – uden tvivl er på Enterprise-siden af ​​tingene, selvom jeg altid har følt, at datakomprimering er den lille virksomhed, der ikke har råd til bare at tilføje hukommelse, købe hurtigere diske, eller opgrader til Enterprise.

    I nuværende versioner, når en leverandør ønsker at drage fordel af komprimering eller partitionering, skal de overveje, at ikke alle deres kunder vil bruge Enterprise Edition. På samme måde ønsker kunder at bruge den samme kodebase i deres QA-, produktions- og udviklingsmiljøer, men de har måske heller ikke alle den samme udgave. Både leverandører og kunder ønsker også at kunne bruge funktioner, der er tilgængelige i både cloud og box, uanset niveau eller udgave. I øjeblikket skal de enten skrive flere kodebaser eller blot overgive sig til den laveste fællesnævner.
  3. Adoptionshastigheden er langsom fordi Standard Edition-opgraderinger i mange henseender har været langt fra overbevisende i de seneste år, hvilket betyder, at mange mennesker er tilfredse med deres 2012 Standard-instanser. De tjener bare ikke ret meget på at flytte til en nyere version, og i mange tilfælde opvejer omkostningerne ved at teste en migration og håndtere regressioner faktisk alle fordele.

Kolleger som Brent Ozar og Steve Jones har haft lignende tanker – og argumenteret for, at de bedste funktioner forbliver udelukket fra Standard og lavere udgaver af indtægtsmæssige årsager, men det er ikke sådan, det burde være.

Og nu er det ikke.

Funktion Standard / Web Express LocalDB
Altid krypteret
Skift datafangst
Columnstore
Datakomprimering
Snapshots af databasen
Dynamisk datamaskering
Finkornet revision
OLTP i hukommelsen
Flere Filestream-containere
Partitionering
PolyBase
Sikkerhed på rækkeniveau

1. Begrænset til 32 GB pr. forekomst på Standard Edition, 352 MB på Express.
2. Begrænset til 32 GB pr. database på Standard Edition, 352 MB på Express.

Jeg har ingen beviser for dette, men jeg tror, ​​at på grund af langsomme overtagelseshastigheder af SQL Server 2016 – og specifikt Standard Edition – har Microsoft endelig lyttet . Måske har de indset, at det ikke virker at gøre så mange overbevisende funktioner kun tilgængelige i Enterprise Edition. Man kan ikke få blod fra en sten, siger de.

Tabellen her viser det sæt funktioner, der nu er aktiveret uden for Enterprise Edition (nogle funktioner var der allerede i Standard, men jeg havde ikke en god måde at illustrere det på). Det behøver kun at være en tabel på grund af tre funktioner, der ikke virker på Express og/eller LocalDB (på grund af SQL Server Agent, tilladelser eller eksterne afhængigheder).

Det er mit hurtige snydeark; tjek dokumentationen for de seneste opdateringer. Jeg har testet de fleste af funktionerne, og de fungerer, som du ville forvente – ikke for at bagatellisere indsatsen, men de fjernede bare de kontroller, der blokerede funktionalitet baseret på udgave. Jeg tænkte, at jeg ville slå dem op ved at teste ud over det grundlæggende, såsom trinvise statistikker over partitionerede tabeller og kombinationer som Columnstore over en komprimeret tabel, for at se, om de gik glip af noget. Men nej – alt i tabellen fungerede, ligesom hvis jeg kørte Enterprise Edition.

Når det er sagt, var fokus her på et konsekvent programmeringsoverfladeareal (CPSA). Så nej, du vil ikke pludselig få alle fordelene ved Enterprise Edition gratis eller med en betydelig rabat – se nedenfor for funktionalitet, der ikke virker. Og nogle af funktionerne ovenfor kan stadig være skalabegrænsede baseret på udgave.

Ikke desto mindre giver dette en fantastisk løsning til #2 ovenfor:At have mange af disse funktioner til at fungere i alle udgaver, selvom de understøtter forskellige skalaniveauer, vil gøre det lettere for både kunder og leverandører at bygge løsninger, der fungerer, uanset hvor de er. er indsat. Dette bliver en kæmpe gevinst, selv ud over den rene fordel ved endelig at kunne bruge ting som Always Encrypted og partitionering overalt.

Hvad adskiller udgaver stadig?

I det væsentlige, hvis det var en operations- eller tilgængelighedsfunktion på virksomhedsniveau før eller inden for et bestemt sæt ydeevnefunktioner, forbliver den som sådan. Det følgende er ikke en udtømmende liste, men fanger nok de fleste af de store forskelle:

  • Tilgængelighedsfunktioner som online operationer, stykkevis gendannelse og fuldt funktionelle tilgængelighedsgrupper (f.eks. skrivebeskyttede replikaer) er stadig kun Enterprise. Jeg ønsker REBUILD + (ONLINE = ON) syntaks kunne fungere som en no-op i lavere udgaver med en advarsel i stedet for at returnere en fejl, men jeg kan ikke være for nøjeregnende her.
  • Ydeevnefunktioner ligesom parallelisme stadig ikke virker i Express Edition (eller LocalDB). Automatisk brug af indekseret visning uden NOEXPAND tip og avancerede funktioner som hot-add hukommelse/CPU vil fortsat kun være tilgængelige i Enterprise.
  • Driftsfunktioner som Resource Governor, Extensible Key Management (EKM) og Transparent Data Encryption forbliver kun Enterprise Edition. Andre, såsom Backup Encryption, Backup Compression og Buffer Pool Extension, vil fortsætte med at fungere i Standard, men vil stadig ikke fungere i Express.
  • SQL Server Agent er stadig ikke tilgængelig i Express og LocalDB. Som et resultat, og som nævnt ovenfor, vil Change Data Capture ikke fungere. Cross-server Service Broker forbliver også utilgængelig i disse udgaver.
  • In-Memory OLTP og PolyBase er understøttet i Express, men ikke tilgængelige i LocalDB.
  • Virtualiseringsrettigheder har ikke ændret sig og er stadig meget mere værdifulde i Enterprise Edition med Software Assurance.
  • Ressourcebegrænsninger for udgaver på downlevel forbliv den samme . Det ser ud til, at bønnetællerne stadig kontrollerer den øvre hukommelsesgrænse i Standard Edition, så dette er stadig 128 GB (mens Enterprise Edition nu er 24 TB). Personligt synes jeg, at denne øvre grænse bør give trinvise gevinster med hver ny version (Moore's Law), fordi jeg føler, at Standard Edition er dyr nok til, at dens hukommelsesgrænser aldrig bør være så farligt tæt på den øvre grænse for en veludstyret bærbar computer. Men jeg tager hvad jeg kan få, og når du sidder fast på Standard Edition og skalering er påkrævet, kan du nu bruge ovenstående Enterprise-funktioner på tværs af flere Standard Edition-bokse eller -instanser i stedet for at prøve at skalere op.

Oversigt

Dette er et modigt træk fra Microsoft, og jeg kan bestemt se, hvordan dette vil øge standardsalget uden at kannibalisere Enterprise-salget. Standard Edition-kunder kan bruge disse funktioner både til at konsolidere deres kodebaser og i mange scenarier bygge løsninger, der giver bedre ydeevne. Og for dem, der allerede nyder godt af alle fordelene ved Enterprise Edition, er dette måske ikke så interessant for dig, men der er også en masse nye funktioner tilgængelige på tværs af alle udgaver af SP1 . Så uanset hvilken udgave du er på nu, har du virkelig ingen undskyldning for at holde på den gamle version af SQL Server.

Opgrader til SQL Server 2016 SP1!


  1. Postgres SSLMode-værdi kræver ugyldig, når SSL-understøttelse ikke er kompileret ved hjælp af udenlandsk dataindpakning

  2. Ægte flugtstreng og PDO

  3. Brug af Hibernates ScrollableResults til langsomt at læse 90 millioner poster

  4. Hent TOP 10 rækker uden at bruge TOP eller LIMIT? – Ugens interviewspørgsmål #247