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

Grunde til at opgradere til SQL Server 2017

Siden SQL Server 2012 faldt ud af Mainstream Support den 11. juli 2017, og SQL Server 2014 falder ud af Mainstream Support den 9. juli 2019, og da både SQL Server 2008 og SQL Server 2008 R2 falder ud af Extended Support på 9. juli 2019 har jeg haft et stigende antal klienter, der planlægger at opgradere fra disse ældre versioner af SQL Server til en mere moderne version (enten 2016 eller 2017).

Hvis du overvejer en opgradering til en moderne version af SQL Server, skal du så flytte til SQL Server 2016 eller til SQL Server 2017? Min generelle vejledning ville være stærkt at foretrække SQL Server 2017 i de fleste tilfælde, medmindre du har en gyldig, håndgribelig grund til at lade være. For eksempel, hvis du har 3-partssoftware, der udtrykkeligt ikke understøttes på SQL Server 2017, kan det være en blokering (selvom jeg ville prøve at tale med din softwareleverandør om det).

Så hvorfor skulle du foretrække SQL Server 2017? Her er en række årsager i flere forskellige kategorier.

Nye motorfunktioner i SQL Server 2017

Selvom meget af udviklingsarbejdet i SQL Server 2017 var dedikeret til at lave en version, der kører på flere forskellige Linux-distributioner, er der stadig en række nyttige nye Engine-funktioner i SQL Server 2017.

En nyttig ny funktion er Automatic Plan Correction (som er afhængig af Query Store-funktionen, der blev introduceret i SQL Server 2016). Denne funktion hjælper med at opdage og automatisk rette mange stabilitetsproblemer med forespørgselsplanen. Min kollega, Erin Stellato, har skrevet meget mere detaljeret om Automatic Plan Correction, og hvordan det fungerer i SQL Server 2017 Enterprise Edition og Azure SQL Database.

En anden ny funktion er Adaptive Query Processing (AQP) (som er aktiveret med kompatibilitetstilstand 140), hvilket er meget nyttigt til batchtilstandsoperationer, der bruges med Columnstore-indekser. AQP har tre komponenter, som inkluderer Batch Mode Adaptive Memory Grant Feedback, Batch Mode Adaptive Joins og Interleaved Execution for Multi-Statement Table Valued Functions.

Der er også en række diagnostiske og fejlfindingsforbedringer, der gør livet for en DBA meget lettere! Disse inkluderer flere Showplan-forbedringer, der er meget nyttige til forespørgselsindstilling, sammen med flere nye DMV'er, der er nyttige til diagnostisk fejlfinding. Query Store er endnu mere effektiv i SQL Server 2017 sammenlignet med SQL Server 2016.

Der var også flere "fællesskabsdrevne" forbedringer i SQL Server 2017, såsom smart differentiel backup, smart transaktionslog backup, forbedret backup ydeevne for små databaser på avancerede servere og forbedret tempdb diagnostik og overvågning.

Replikeringsforbedringer

Microsoft har gjort det muligt at beskytte en fjerndistributionsdatabase i en tilgængelighedsgruppe med SQL Server 2017 CU6. De har også tilføjet muligheden for dynamisk at genindlæse transaktionsagentprofilparametre i SQL Server 2017 CU3. Dette gør det meget nemmere at tune og vedligeholde din replikeringstopologi, end det var tidligere.

Microsoft-support

Når en større version af SQL Server falder ud af Mainstream Support, er der ikke flere Service Packs eller kumulative opdateringer. Kun sikkerhedsopdateringer frigives, mens hovedversionen er i udvidet support. Når udvidet support slutter, er der slet ikke flere opdateringer, medmindre du køber Microsoft Premium Assurance (som kun er tilgængelig til SQL Server 2008 og nyere).

Nylige beviser på denne politik er, at Microsoft ikke vil frigive en Spectre/Meltdown-sikkerhedspatch til SQL Server 2005. Når den generelle databeskyttelsesforordning (GDPR) træder i kraft den 25. maj 2018, vil ældre versioner af SQL Server blive mere sårbare over tid, efterhånden som de falder ud af Microsoft Support.

SQL Server 2017 vil være fuldt understøttet i omkring 15 måneder længere end SQL Server 2016. Microsoft har en side med mange ressourcer om ophøret af understøttelse af SQL Server 2008 og 2008 R2.

Slutdatoerne for mainstream og udvidet support for alle nyere versioner af SQL Server er vist i tabel 1.

SQL-serverversion Ophør af almindelig support Ophør af udvidet 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 servicepolitik

Microsoft SQL Server 2017 blev udgivet den 2. oktober 2017, og indtil videre har der været seks SQL Server 2017 kumulative opdateringer, der er blevet frigivet. Microsoft har taget det de kalder "Modern Servicing Model" til SQL Server 2017, hvilket betyder, at der ikke vil være nogen Service Packs til SQL Server 2017 eller fremtidige versioner.

I stedet vil der være månedlige kumulative opdateringer for det første år og derefter kvartalsvise kumulative opdateringer for de næste fire år derefter. Det betyder, at defekter vil blive udbedret meget hurtigere i løbet af det første år efter udgivelsen. SQL Server 2017 er blevet frigivet længe nok til, at jeg anser det for ret stabilt.

Ikke alene retter Microsoft specifikke defekter i kumulative opdateringer, de frigiver også ny funktionalitet og andre produktforbedringer, som ofte fokuserer på at forbedre ydeevnen. Her er listen over opdateringer og forbedringer til SQL Server 2017 fra CU6.

SQL Server 2017 CU6

  • Opdatering for at understøtte partitioneliminering i forespørgselsplaner, der har rumlige indekser i SQL Server 2016 og 2017
  • Forbedring:Aktiver "forced flush"-mekanisme i SQL Server 2017 på Linux

SQL Server 2017 CU5

  • Bedre intra-forespørgsel parallelisme deadlocks fejlfinding i SQL Server 2017
  • Forbedrer forespørgselsydeevnen, når et optimeret bitmapfilter anvendes på en forespørgselsplan i SQL Server 2016 og 2017

SQL Server 2017 CU4

  • Forbedring:Forbedrer ydeevnen af ​​SQL Server 2017 på mindre systemer

SQL Server 2017 CU3

  • Opdatering tilføjer understøttelse af MAXDOP mulighed for CREATE STATISTICS og UPDATE STATISTICS-sætninger i SQL Server 2017
  • Forbedre tempdb-spilddiagnostik i DMV og udvidede hændelser i SQL Server 2017
  • Opdatering gør det muligt for XML Showplans at give en liste over statistik, der bruges under forespørgselsoptimering i SQL Server 2017
  • Opdatering tilføjer eksekveringsstatistik for en skalært værdisat, brugerdefineret funktion til Showplan XML-filen i SQL Server 2017
  • Opdatering tilføjer oplysninger om optimeringsrækkemål i forespørgselsudførelsesplaner i SQL Server 2017
  • Opdatering aktiverer PolyBase-teknologi i SQL Server 2016 og 2017
  • Opdatering tilføjer CPU timeout-indstilling til Resource Governor-arbejdsgruppe REQUEST_MAX_CPU_TIME_SEC i SQL Server 2017

SQL Server 2017 CU2

  • Opdatering til manuel ændringssporingsoprydningsprocedure i SQL Server 2017
  • Forbedring:Generelle forbedringer af oprydningsprocessen for ændringssporing i SQL Server 2017
  • Opdatering tilføjer en ny udvidet hændelse "marked_transaction_latch_trace" i SQL Server 2017 på Linux og Windows
  • Ydeevneforbedring for Spatial Intermediate Filter i SQL Server 2017

SQL Server 2017 CU1

  • Opdatering for at forbedre ydeevnen for columnstore dynamiske administrationsvisninger "column_store_row_groups" og "dm_db_column_store_row_group_physical_stats" i SQL Server 2016 eller 2017
  • Tilføj muligheden for at deaktivere eller aktivere nogle få nye DMV'er og DMF'er introduceret i SQL Server 2017
  • Forbedring:Nyt søgeord føjes til CREATE og UPDATE STATISTICS-sætninger for at opretholde samplingsfrekvensen for fremtidige statistikopdateringer i SQL Server

Selvom du måske tror, ​​at SQL Server 2017 "bare var en Linux-port", er der faktisk mange forbedringer i den virkelige verden i kernedatabasemotoren, som vil gavne alle platforme. Microsoft fortsætter med at tilføje ekstra funktionalitet til produktet i SQL Server 2017 kumulative opdateringer, og SQL Server 2017 vil blive fuldt understøttet af Microsoft i en længere periode end SQL Server 2016.


  1. SELECT-forespørgsel med CASE-betingelse og SUM()

  2. MySQL SELECT sidste par dage?

  3. Pandaer skriver dataramme til andre postgresql-skemaer

  4. Opret indlejrede JSON-arrays ved hjælp af FOR JSON PATH