Eftersom SQL Server 2012 försvann från Mainstream Support den 11 juli 2017 och SQL Server 2014 kommer att falla utanför Mainstream Support den 9 juli 2019, och eftersom både SQL Server 2008 och SQL Server 2008 R2 kommer att falla utanför Extended Support på 9 juli 2019 har jag haft ett ökande antal klienter som planerar att uppgradera från dessa äldre versioner av SQL Server till en mer modern version (antingen 2016 eller 2017).
Om du funderar på att uppgradera till en modern version av SQL Server, ska du gå över till SQL Server 2016 eller till SQL Server 2017? Min allmänna vägledning skulle vara att starkt föredra SQL Server 2017 i de flesta fall, om du inte har en giltig, påtaglig anledning att inte göra det. Till exempel, om du har 3-partsprogramvara som uttryckligen inte stöds på SQL Server 2017, kan det vara en blockerare (även om jag skulle försöka prata med din programvaruleverantör om det).
Så varför skulle du föredra SQL Server 2017? Här är ett antal skäl i flera olika kategorier.
Nya motorfunktioner i SQL Server 2017
Även om mycket av utvecklingsarbetet i SQL Server 2017 ägnades åt att göra en version som körs på flera olika Linux-distributioner, finns det fortfarande ett antal användbara nya Engine-funktioner i SQL Server 2017.
En användbar ny funktion är Automatic Plan Correction (som bygger på Query Store-funktionen som introducerades i SQL Server 2016). Den här funktionen hjälper till att upptäcka och automatiskt korrigera många frågeplansstabilitetsproblem. Min kollega, Erin Stellato, har skrivit om Automatic Plan Correction och hur det fungerar i SQL Server 2017 Enterprise Edition och Azure SQL Database i mycket mer detalj.
En annan ny funktion är Adaptive Query Processing (AQP) (som är aktiverat med kompatibilitetsläge 140), vilket är mycket användbart för batchlägesoperationer som används med Columnstore-index. AQP har tre komponenter, som inkluderar Batch Mode Adaptive Memory Grant Feedback, Batch Mode Adaptive Joins och Interleaved Execution för Multi-Statement Table Valued Functions.
Det finns också ett antal diagnostiska och felsökningsförbättringar som gör livet för en DBA mycket enklare! Dessa inkluderar flera Showplan-förbättringar som är mycket användbara för sökning av frågor, tillsammans med flera nya DMV:er som är användbara för diagnostisk felsökning. Query Store är ännu effektivare i SQL Server 2017 jämfört med SQL Server 2016.
Det fanns också flera "gemenskapsdrivna" förbättringar i SQL Server 2017, såsom smart differentiell säkerhetskopiering, smart säkerhetskopiering av transaktionsloggar, förbättrad säkerhetskopieringsprestanda för små databaser på avancerade servrar och förbättrad tempdb-diagnostik och övervakning.
Replikeringsförbättringar
Microsoft har gjort det möjligt att skydda en fjärrdistributionsdatabas i en tillgänglighetsgrupp med SQL Server 2017 CU6. De har också lagt till möjligheten att dynamiskt ladda om transaktionsagentprofilparametrar i SQL Server 2017 CU3. Detta gör det mycket lättare att ställa in och underhålla din replikeringstopologi än vad det var tidigare.
Microsoft Support
När en större version av SQL Server faller ur Mainstream Support finns det inga fler Service Pack eller kumulativa uppdateringar. Endast säkerhetsuppdateringar släpps medan huvudversionen finns i utökad support. Efter att utökad support upphör finns det inga fler uppdateringar alls om du inte köper Microsoft Premium Assurance (som endast är tillgängligt för SQL Server 2008 och senare).
Nyligen bevis på denna policy är det faktum att Microsoft inte kommer att släppa en Spectre/Meltdown-säkerhetspatch för SQL Server 2005. När den allmänna dataskyddsförordningen (GDPR) träder i kraft den 25 maj 2018, kommer äldre versioner av SQL Server att vara mer sårbara med tiden när de faller utanför Microsoft Support.
SQL Server 2017 kommer att stödjas fullt ut i cirka 15 månader längre än SQL Server 2016. Microsoft har en sida med många resurser om slutet på stödet för SQL Server 2008 och 2008 R2.
Slutdatumen för Mainstream och Extended Support för alla senaste versioner av SQL Server visas i Tabell 1.
SQL-serverversion | Slutet av vanlig support | Slutet av utökad support |
---|---|---|
SQL Server 2005 | 12 april 2011 | 12 april 2016 |
SQL Server 2008 SQL Server 2008 R2 | 8 juli 2014 | 9 juli 2019 |
SQL Server 2012 | 11 juli 2017 | 12 juli 2022 |
SQL Server 2014 | 9 juli 2019 | 9 juli 2024 |
SQL Server 2016 | 13 juli 2021 | 14 juli 2026 |
SQL Server 2017 | 11 oktober 2022 | 12 oktober 2027 |
Microsofts servicepolicy
Microsoft SQL Server 2017 släpptes den 2 oktober 2017 och hittills har det funnits sex kumulativa uppdateringar för SQL Server 2017 som har släppts. Microsoft har antagit vad de kallar "Modern Servicing Model" för SQL Server 2017, vilket innebär att det inte kommer att finnas några Service Packs för SQL Server 2017 eller framtida versioner.
Istället kommer det att finnas månatliga kumulativa uppdateringar för det första året, och sedan kvartalsvisa kumulativa uppdateringar för de kommande fyra åren efter det. Detta innebär att defekter kommer att åtgärdas mycket snabbare under det första året efter release. SQL Server 2017 har släppts tillräckligt länge för att jag anser att den är ganska stabil.
Microsoft korrigerar inte bara specifika defekter i kumulativa uppdateringar, de släpper också ny funktionalitet och andra produktförbättringar, som ofta fokuserar på att förbättra prestandan. Här är listan över uppdateringar och förbättringar för SQL Server 2017, från och med CU6.
SQL Server 2017 CU6
- Uppdatering för att stödja partitionseliminering i frågeplaner som har rumsliga index i SQL Server 2016 och 2017
- Förbättring:Aktivera "forcerad flush"-mekanism i SQL Server 2017 på Linux
SQL Server 2017 CU5
- Bättre inter-query parallellism dödlägen felsökning i SQL Server 2017
- Förbättrar frågeprestanda när ett optimerat bitmappsfilter tillämpas på en frågeplan i SQL Server 2016 och 2017
SQL Server 2017 CU4
- Förbättring:Förbättrar prestanda för SQL Server 2017 på mindre system
SQL Server 2017 CU3
- Uppdatering lägger till stöd för MAXDOP-alternativet för CREATE STATISTICS och UPDATE STATISTICS-satser i SQL Server 2017
- Förbättra tempdb spilldiagnostik i DMV och utökade händelser i SQL Server 2017
- Uppdatering gör det möjligt för XML Showplans att tillhandahålla en lista över statistik som används under frågeoptimering i SQL Server 2017
- Uppdatering lägger till exekveringsstatistik för en skalärt värderad, användardefinierad funktion till Showplan XML-filen i SQL Server 2017
- Uppdateringen lägger till information om optimeringsradsmål i frågekörningsplaner i SQL Server 2017
- Uppdatering möjliggör PolyBase-teknik i SQL Server 2016 och 2017
- Uppdateringen lägger till CPU-timeout-inställning till Resource Governor-arbetsgruppen REQUEST_MAX_CPU_TIME_SEC i SQL Server 2017
SQL Server 2017 CU2
- Uppdatering för manuell rensning av ändringsspårning i SQL Server 2017
- Förbättring:Allmänna förbättringar av rensningsprocessen för ändringsspårning i SQL Server 2017
- Uppdateringen lägger till en ny utökad händelse "marked_transaction_latch_trace" i SQL Server 2017 på Linux och Windows
- Prestandaförbättring för Spatial Intermediate Filter i SQL Server 2017
SQL Server 2017 CU1
- Uppdatera för att förbättra prestandan för dynamiska hanteringsvyer för columnstore "column_store_row_groups" och "dm_db_column_store_row_group_physical_stats" i SQL Server 2016 eller 2017
- Lägg till möjligheten att inaktivera eller aktivera några nya DMV och DMF introducerade i SQL Server 2017
- Förbättring:Nytt sökord läggs till i CREATE och UPDATE STATISTICS-satserna för att bevara samplingsfrekvensen för framtida statistikuppdateringar i SQL Server
Även om du kanske tror att SQL Server 2017 "bara var en Linux-port", finns det faktiskt många verkliga förbättringar i kärndatabasmotorn som kommer att gynna alla plattformar. Microsoft fortsätter att lägga till extra funktionalitet till produkten i SQL Server 2017 Cumulative Updates, och SQL Server 2017 kommer att stödjas fullt ut av Microsoft under en längre tid än SQL Server 2016.