sql >> Databasteknik >  >> RDS >> Sqlserver

En stor sak:SQL Server 2016 Service Pack 1

Tja, jag kan inte påstå att du hörde det här först, eftersom det tillkännagavs idag av Scott Guthrie (@ScottGu ) vid Connect(); // 2016 och även på SQL Server-teambloggen , men SQL Server 2016 Service Pack 1 är bygget av SQL Server som äntligen kommer att göra så gott som alla uppgradera från alla tidigare versioner.

Varför? Nåväl, Jag hoppas att du sitter ner:

Många Enterprise-funktioner är nu tillgängliga i Standard, Web och Express.

Det här är en BIG DEAL.

Jag har länge varit en förespråkare för att göra ytan lika över alla utgåvor, och begränsa varje utgåva till hårdvara/resursgränser. Det senare är redan fallet med Express Edition (1 CPU, 1 GB minne, 10 GB databasstorlek) och Standard Edition (24 kärnor, 128 GB), men funktionerna i sig existerar helt enkelt inte där. Även om de lade till viss funktionalitet kring tillgänglighetsgrupper (begränsat stöd i Standard Edition och möjligheten att avstå från en domän), verkar många av funktionerna som för närvarande bara är Enterprise inte alls vara Enterprise-y. Här är några anledningar till och konsekvenser av att lägga så många viktiga funktioner bara i Enterprise, åtminstone enligt min åsikt:

  1. Datasäkerhet verkar ha tagit ett baksäte de senaste åren. Det borde finnas i alla upplagor; Jag blev besviken när Always Encrypted släpptes och det var begränsat till Enterprise. Det underförstådda budskapet var att om du är ett litet företag behöver du inte kunna kryptera kreditkortsdata (de säger samma sak med Transparent Data Encryption, men Alltid krypterad är ett mycket mer värdefullt erbjudande).
  2. Programmerbarhetsfunktioner att månsken som prestandafunktioner – som datakomprimering och partitionering – utan tvekan är på Enterprise-sidan av saker och ting, även om jag alltid har känt att datakomprimering är det lilla företaget som inte har råd att bara lägga till minne, köpa snabbare diskar, eller uppgradera till Enterprise.

    I nuvarande versioner, när en leverantör vill dra fördel av komprimering eller partitionering, måste de tänka på att inte alla deras kunder kommer att använda Enterprise Edition. På samma sätt vill kunder använda samma kodbas i sina QA-, produktions- och utvecklingsmiljöer, men de kanske inte alla har samma utgåva heller. Både leverantörer och kunder vill också kunna använda funktioner som finns i både moln och box, oavsett nivå eller upplaga. För närvarande behöver de antingen skriva flera kodbaser eller helt enkelt överlämna sig till den minsta gemensamma nämnaren.
  3. Antagandet är långsamt eftersom uppgraderingar av Standard Edition i många avseenden har varit långt ifrån övertygande de senaste åren, vilket innebär att många människor är nöjda med sina 2012 Standard-instanser. De tjänar helt enkelt inte så mycket på att flytta till en nyare version, och i många fall uppväger kostnaden för att testa en migrering och hantera regressioner faktiskt alla fördelar.

Kollegor som Brent Ozar och Steve Jones har haft liknande tankar – med argumentet att de bästa funktionerna förblir uteslutna från standard och lägre utgåvor av inkomstskäl, men det är inte så det borde vara.

Och nu är det inte det.

Funktion Standard/webb Express LocalDB
Alltid krypterad
Ändra datainsamling
Columnstore
Datakomprimering
Snapshots från databasen
Dynamisk datamaskering
Fint granskning
OLTP i minnet
Flera filströmsbehållare
Partitionering
PolyBase
Row-Level Security

1. Begränsad till 32 GB per instans på Standard Edition, 352MB på Express.
2. Begränsad till 32 GB per databas på Standard Edition, 352 MB på Express.

Jag har inga bevis på detta, men jag tror att Microsoft har äntligen lyssnat på grund av långsamma adoptionshastigheter för SQL Server 2016 – och Standard Edition specifikt. . De kanske har insett att det inte fungerar att göra så många övertygande funktioner tillgängliga i Enterprise Edition. Man kan inte få blod från en sten, säger de.

Tabellen här visar uppsättningen funktioner som nu är aktiverade utanför Enterprise Edition (vissa funktioner fanns redan i Standard, men jag hade inte ett bra sätt att illustrera det). Det måste bara vara en tabell på grund av tre funktioner som inte fungerar på Express och/eller LocalDB (på grund av SQL Server Agent, behörigheter eller externa beroenden).

Det är min snabba cheat sheet; kontrollera dokumentationen för de senaste uppdateringarna. Jag har testat de flesta funktionerna och de fungerar som du kan förvänta dig – inte för att trivialisera ansträngningen, utan de tog bara bort kontrollerna som blockerade funktionalitet baserat på upplaga. Jag tänkte att jag skulle slå ut dem genom att testa bortom grunderna, som inkrementell statistik på partitionerade tabeller och kombinationer som Columnstore över en komprimerad tabell, för att se om de missade något. Men nej – allt i tabellen fungerade precis som om jag körde Enterprise Edition.

Som sagt, fokus här låg på en konsekvent programmeringsyta (CPSA). Så nej, du kommer inte plötsligt att få alla fördelar med Enterprise Edition gratis eller till en rejäl rabatt – se nedan för funktionalitet som inte fungerar. Och vissa av funktionerna ovan kan fortfarande vara skalbegränsade baserat på upplaga.

Icke desto mindre ger detta en utmärkt lösning till #2 ovan:Att ha många av dessa funktioner fungerar i alla utgåvor, även om de stöder olika skalnivåer, kommer att göra det lättare för både kunder och leverantörer att bygga lösningar som fungerar oavsett var de är utplacerade. Det här kommer att bli en enorm vinst, även bortom den rena fördelen av att äntligen kunna använda saker som alltid krypterad och partitionering överallt.

Vad skiljer utgåvor fortfarande åt?

I huvudsak, om det var en funktions- eller tillgänglighetsfunktion på företagsnivå innan, eller inom en viss uppsättning prestandafunktioner, kommer den att förbli som sådan. Följande är inte en uttömmande lista, men fångar förmodligen de flesta av de stora skillnaderna:

  • Tillgänglighetsfunktioner som onlineoperationer, återställning i bitar och fullt fungerande tillgänglighetsgrupper (t.ex. skrivskyddade repliker) är fortfarande endast Enterprise. Jag önskar REBUILD + (ONLINE = ON) syntax skulle kunna fungera som en no-op i lägre upplagor med en varning istället för att returnera ett fel, men jag kan inte vara för noggrann här.
  • Prestandafunktioner som parallellism fungerar fortfarande inte i Express Edition (eller LocalDB). Automatisk indexerad vyanvändning utan NOEXPAND tips och avancerade funktioner som hot-add minne/CPU kommer att fortsätta att vara tillgängliga endast i Enterprise.
  • Driftsfunktioner som Resource Governor, Extensible Key Management (EKM) och Transparent Data Encryption förblir endast Enterprise Edition. Andra, som Backup Encryption, Backup Compression och Buffer Pool Extension, kommer att fortsätta att fungera i Standard, men kommer fortfarande inte att fungera i Express.
  • SQL Server Agent är fortfarande inte tillgänglig i Express och LocalDB. Som ett resultat, och som noterats ovan, kommer Change Data Capture inte att fungera. Cross-server Service Broker förblir inte heller tillgänglig i dessa utgåvor.
  • In-Memory OLTP och PolyBase stöds i Express, men inte tillgängliga i LocalDB.
  • Virtualiseringsrättigheter har inte ändrats och är fortfarande mycket mer värdefulla i Enterprise Edition med Software Assurance.
  • Resursbegränsningar för utgåvor på lägre nivå förblir densamma . Det verkar som att bönräknarna fortfarande styr den övre minnesgränsen i Standard Edition, så detta är fortfarande 128 GB (medan Enterprise Edition nu är 24 TB). Personligen tycker jag att den här övre gränsen borde ge stegvisa vinster med varje ny version (Moore's Law), eftersom jag anser att Standard Edition är tillräckligt dyr för att dess minnesgränser aldrig ska vara så farligt nära den övre gränsen för en välutrustad bärbar dator. Men jag tar vad jag kan få, och när du har fastnat i Standard Edition och skala krävs, kan du nu använda ovanstående Enterprise-funktioner i flera standardversionsboxar eller instanser, istället för att försöka skala upp.

Sammanfattning

Detta är ett djärvt drag av Microsoft, och jag kan verkligen se hur detta kommer att öka standardförsäljningen utan att kannibalisera Enterprise-försäljningen. Standard Edition-kunder kan använda dessa funktioner både för att konsolidera sina kodbaser och, i många scenarier, bygga lösningar som ger bättre prestanda. Och för dem som redan åtnjuter alla fördelarna med Enterprise Edition kanske detta inte är så intressant för dig, men det finns också ett gäng nya funktioner tillgängliga i alla utgåvor av SP1 . Så oavsett vilken utgåva du använder nu, har du verkligen ingen ursäkt för att hålla fast vid den gamla versionen av SQL Server.

Uppgradera till SQL Server 2016 SP1!


  1. Informationssystem, data och information

  2. Sammanfoga och gruppera flera rader i Oracle

  3. Oracle, PDO_OCI vs OCI8

  4. World Backup Day:4 intressanta dataförlustfakta att veta