Welche objektiven Gründe sprechen dafür, SQL Server 2016 früheren Versionen vorzuziehen?

29

Da Microsoft seit den Tagen von SQL Server 2005 oder 2008 häufiger Upgrades für SQL Server vornimmt, ist es für viele Unternehmen schwierig zu bestimmen, wann ein Upgrade ein Muss ist. und wenn ein upgrade ein "nice to have" ist

In Anbetracht einiger früherer Fragen, in denen die Gründe für den Vorzug verschiedener neuerer Versionen von SQL Server gegenüber früheren erörtert wurden, sind dies einige objektive technische oder geschäftliche Gründe, die ein Unternehmen möglicherweise für ein Upgrade auf SQL Server 2016 gegenüber einer früheren Version oder einer späteren Version in Betracht zieht Release wie SQL Server 2014?

(Diese Frage zu SQL Server 2012 im Vergleich zu SQL Server 2008 oder diese zu SQL Server 2012 im Vergleich zu SQL Server 2005 kommt als Beispiele für den Geist dieser Frage in dem Sinne. Die Antworten auf sie auch hier auf einige der Gründe , erweitern für Unternehmen, die mit SQL Server 2008 oder SQL Server 2005 beginnen)

Mike Walsh
quelle

Antworten:

36

Es gibt viele Gründe, ein Upgrade auf SQL Server 2016 in Betracht zu ziehen. Die meisten dieser Gründe hängen von der Version von SQL Server ab, von der einer stammt. Dies ist keine vollständige Liste, aber ich werde ein paar Gründe nennen, die mir einfallen. Darunter einen sehr wichtigen Grund, über den wir gerade mit der Veröffentlichung von SQL Server 2016 SP1 im November 2016 erfahren haben.

Großer Grund: Viele Funktionen sind jetzt in der Standard Edition verfügbar

Am 16. November 2016 kündigte Microsoft die Veröffentlichung von Service Pack 1 für SQL Server 2016 an. Zusammen mit dieser Ankündigung kündigten sie auch an, dass viele Funktionen, die zuvor Enterprise Edition - Kunden vorbehalten waren, in allen Editionen von SQL Server - Standard, Express (mit einige Ausnahmen), Web zusätzlich zur Enterprise Edition.

Dies dürfte für Softwareanbieter, die Software mit einem SQL Server-Backend entwickeln und vertreiben, ein sehr überzeugender Grund für ein Upgrade sein. Viele Funktionen stehen ihren Kunden nun unabhängig von ihrer lizenzierten Edition von SQL Server zur Verfügung. Dies ist auch für Unternehmen in Sektoren von Interesse, die Audits oder andere Sicherheitsverbesserungen durchführen müssen, die dem Produkt im Laufe der Zeit hinzugefügt wurden.

Meiner bescheidenen Meinung nach ist SQL Server 2016 SP1 in über 17 Jahren Arbeit mit SQL Server möglicherweise das bisher überzeugendste Upgrade, seit ich mit SQL Server in Version 6.5 angefangen habe. (Versteht mich nicht falsch, die Jahre 2000, 2005 und 2012 hatten auch ihre Profis für ihre Zeit!)

Schauen Sie sich die folgende Liste an, aber nur als schnelles Beispiel für einige der Funktionen, die Sie jetzt in der Standard Edition verwenden können, haben Sie diese: Komprimierung, Datenerfassung ändern, fein abgestimmte Überwachung, Sicherheit auf Zeilenebene, Immer verschlüsselt, Partitionierung, Datenbank Snapshots, In-Memory-OLTP, Columnstore.

Spezifische Gründe für die neuen Funktionen von SQL Server 2016

Ich versuche, die Gründe in diesem Abschnitt auf Funktionen zu beschränken, die nur in SQL Server 2016 eingeführt wurden. Außerdem beschreibe ich in dieser Antwort nur die wichtigsten Verbesserungen der Engine, nicht die Berichterstellung, Analyse, Datenintegration usw.

Sicherheitsrelevant

Sicherheit auf Zeilenebene - Ich habe viele Kunden, die Sicherheit zeilenweise implementieren möchten. Msgstr "Benutzer x kann Daten in dieser Zeile anzeigen, aber nicht in dieser Zeile". Viele dieser Clients haben Funktionen und / oder komplizierte auf Ansichten basierende Strukturen erstellt, um dies zu erreichen. In SQL Server 2016 stehen integrierte Prädikate und Sicherheitsrichtlinien zur Verfügung, die hier Abhilfe schaffen. Sie können mehr über RLS lesen hier .

Dynamische Datenmaskierung - Diese hört sich auf dem Papier großartig an, aber ich frage mich, ob sie sich als weniger nützlich erweisen wird als die beiden anderen Änderungen im Sicherheitsbereich. Grundsätzlich können Sie Daten basierend auf den Berechtigungen des Anrufers während der Abfrage dynamisch maskieren oder verschleiern. Die Datenmenge, die verschleiert werden soll, ist programmierbar. In dem von Microsoft verwendeten Beispiel könnten Sie beispielsweise alle bis auf die letzten vier Ziffern einer Kreditkartennummer maskieren, damit ein Anrufbeantworter in einem Callcenter diese letzten vier Ziffern überprüfen kann. Mehr dazu lesen Sie hier .

Always Encrypted ( Immer verschlüsselt) - Möglicherweise haben Sie von einigen Mängeln oder Bedenken in Bezug auf die transparente Datenverschlüsselung gehört. Vielleicht möchten Sie TDE nicht verwenden, weil Sie befürchten, dass jemand mit SA-Zugriff definitiv entschlüsseln kann, wenn er dies wünscht. Always Encrypted (Immer verschlüsselt) wurde als Funktion veröffentlicht, mit der die Entschlüsselungs- / Verschlüsselungsfunktion in die Hände der Anwendung gelegt wird, die SQL Server aufruft. In SQL Server ruhende Daten werden verschlüsselt. Daten in der Flugrichtung zu SQL Server werden aufgrund dieses Ansatzes ebenfalls verschlüsselt. Weitere Informationen zu Always Encrypted finden Sie hier .

HA / DR-Funktionen

Ein paar Features sind hier rausgekommen. Eine Möglichkeit ist die Verwendung von Always On Availability Groups in SQL Server Standard - der Basic Availability Group. Dies war notwendig, da die Spiegelung veraltet und nicht mehr ersetzt wurde. Die Funktionalität ist auf die Anzahl der Replikate und den Ansatz für die Synchronisation beschränkt. Sie können hier mehr lesen .

Dies ist nicht die einzige Änderung an Verfügbarkeitsgruppen (die übrigens in SQL Server 2012 eingeführt wurden). Es gibt auch einige andere Änderungen (die vollständige Liste mit Links zu anderen Änderungen finden Sie hier ):

  1. Gruppenverwaltete Dienstkonten werden unterstützt.
  2. Verteilte Transaktionen werden unterstützt (mit einigen Einschränkungen ).
  3. Read-Intent-Verbindungen können zwischen schreibgeschützten Replikaten lastausgeglichen werden.
  4. Drei Replikate können jetzt an automatischen Failovers beteiligt sein.
  5. Verschlüsselte Datenbanken können jetzt an einer Always On Availability-Gruppe teilnehmen.
  6. Leistungsverbesserungen - Teil des Themas von SQL Server 2016 ist "Es ist nur schneller" - das ist der Dreh- und Angelpunkt von Microsoft Marketing, erweist sich jedoch auf dem Markt als erfolgreich. Die Performance der Availability Group wurde mehrfach verbessert.

Installer behebt einige häufige Fehler

Das in SQL Server 2016 gestartete SQL Server-Installationsprogramm behebt einige häufige Fehler bei der Konfiguration von TempDB. Die Setup-GUI führt Sie jetzt durch die Best-Practice-Konfiguration.

Abfragespeicher

Ein Favorit unter SQL Server-MVPs und -Tunern. Mit dieser Funktion erhalten Sie Einblicke in die Ausführung von Abfragen durch die Engine. Besonders nützlich bei der Verfolgung von Leistungsproblemen, die durch Änderungen in Abfrageplänen im Laufe der Zeit verursacht wurden. Dies kann ein Werkzeug zum Anzeigen, aber auch ein Werkzeug zum Beheben sein. Vereinfacht einige Konzepte zur Leistungsoptimierung. Mehr dazu lesen Sie hier .

Temporale Tabellen

Ich sehe oft die Notwendigkeit, eine Frage zu stellen wie "Wie sahen diese Daten ab diesem oder jenem Datum aus?". Temporale Tabellen sind eine Methode, um dies zu tun. Verwenden Sie auf jeden Fall einige Warehousing-Anwendungsfälle. Sehen Sie hier mehr .

Columnstore Verbesserungen

Drei große Verbesserungen für mich hier unter ein paar anderen. Eine davon sind aktualisierbare Nonclustered Columnstore-Indizes. In SQL Server 2014 wurden aktualisierbare Cluster erstellt, jetzt sind aktualisierbare Cluster nicht mehr vorhanden. SQL Server 2016 ermöglicht auch Spaltenspeicherindizes für In-Memory-OLTP-Tabellen. In SQL Server 2016 ist es jetzt möglich, einen herkömmlichen B-Tree-Nonclustered-Index in einem Clustered-Columnstore-Index zu platzieren.

Zusätzliche Funktionsverbesserungen in In-Memory-OLTP

Einige der Funktionen, die in In-Memory-Tabellen oder in nativ kompilierten Prozeduren nicht unterstützt wurden, sind jetzt verfügbar. Einige Ergänzungen ( mehr dazu in diesem Artikel ): UNIQUE-Constraints, Check-Constraints, OUTPUT-Klausel in DML, Outer Join, Unterabfragen in der Auswahlliste, SELECT DISTINCT, UNION / UNION ALL und mehr.

Allgemeine Leistungsverbesserungen

SQL Server 2014 hat die Leistung in verschiedenen Schlüsselbereichen von Release zu Release verbessert. SQL Server 2016 hat im gesamten Produkt weitere wichtige Verbesserungen vorgenommen. Dies beinhaltet, dass für viele Kunden einige Probleme vermieden werden, die manchmal beim Upgrade auf SQL Server 2014 aufgrund der Änderungen des Kardinalitätsschätzers auftreten. Mehrere Änderungen am Motor wurden vorgenommen, um die Leistung im Alltag zu verbessern. Das CSS-Team von Microsoft hat darüber in seinem Blog gebloggt. Sie können einfach nach "SQL Server 2016 läuft einfach schneller" suchen. Ein Beispiel für einen Blogbeitrag zu dieser Serie finden Sie hier .

Ich habe dies bei Kunden gesehen, die ein Upgrade durchgeführt haben, und erwarte, dass es immer mehr auftritt.

Einige Nachteile

Es gibt offensichtlich Nachteile für ein Upgrade. Es könnte sein, dass ich das als Berater mache, aber ich denke, die Nachteile sind alle unglaublich handhabbar und betrachten sie einfach als "Zähle die Kosten zuerst", um Dinge zu erkennen und zu managen.

Upgrades im Allgemeinen - Im Allgemeinen bedeuten Upgrades, dass Sie neue Funktionen einführen. Sie müssen sie testen können. Zwischen den Versionen von SQL Server sind verschiedene Funktionen veraltet. Das bedeutet nicht, dass sie sofort verschwinden, aber es bedeutet, dass sie es in zukünftigen Releases können, oft drei Versionen später. Zum Beispiel der Datentyp TEXT oder das Ausführen des Outer Joins in der where-Klausel mit dem *=oder=*Die Syntax wird nicht unterstützt, wenn Sie aus einer Datenbank stammen, die im SQL Server 2000-Kompatibilitätsmodus ausgeführt wird. Apropos Kompatibilitätsmodi - es gibt nur drei Versionen. Wenn Sie also eine Datenbank haben, die in den Kompatibilitätsmodi 80 (SQL Server 2000) oder 90 (SQL Server 2005) ausgeführt wird, können sie nicht so in SQL Server 2016 übergehen. Wenn Sie also diesen Test vermieden und die Kompatibilitätsstufen verbessert haben, ist es Zeit für eine Abrechnung.

Nochmal. Das ist ganz einfach. Es gibt Tools, mit denen Sie Daten erfassen und testen können, um festzustellen, welche Fehler auftreten. Es gibt Leistungsindikatoren, mit denen nach veralteten Funktionen gesucht werden kann.

Lizenzierung - Zwei Dinge hier:

  1. Kernbasiert - Wenn Sie die Lizenzbedingungen von SQL Server 2012 kennen, waren CPU-Lizenzen genau das - CPU-Lizenzen. Seit SQL Server 2012 basieren CPU-basierte Lizenzen auf dem Core. Es gibt dort also eine Anpassungsperiode. Auch Enterprise für neue Lizenzen (mit einigen Ausnahmen, die bei der Einführung 2012 gemacht wurden) mussauf der Core-Ebene lizenziert sein - kein Server + CAL für Unternehmen. Der glänzende Silberstreifen auf dieser Cloud hier ist das, was ich über SP1 gesagt habe, das Enterprise-Funktionen in SKUs ohne Unternehmen zulässt. Wenn Sie mehr als 128 GB RAM benötigen. Wenn Sie die erweiterten Scan-Leistungsverbesserungen benötigen. Wenn Sie mehr als 32 GB RAM für einen Columnstore oder In-Memory benötigen, sehen Sie sich Enterprise an. Wenn nicht Und Sie brauchen keine Online-Index-Neuerstellungen? Standard ist möglicherweise nur für Sie bestimmt, und mit den Funktionen, die Ihnen neu zur Verfügung stehen, ist möglicherweise auch mehr für Sie möglich.
  2. Software Assurance (SA) - Wenn Sie keine SA gekauft haben, müssen Sie eine neue kaufen. Wenn Sie also SQL Server 2005 ausführen und befürchten, dass Sie keinen Mainstream-Support mehr haben, nicht weit vom Ende des erweiterten Supports entfernt sind und sich wünschen, dass die Funktionen jetzt verfügbar sind, können Sie nicht einfach wie ein Service Pack upgraden. Wenn Sie noch nie SA gekauft haben, handelt es sich bei Ihrem Upgrade um einen Neukauf. Das ist okay, es lohnt sich wirklich. Aber es ist etwas, das das Budget belasten muss.

Zusammenfassung

Es gibt viele weitere Gründe, wie JSON-Unterstützung, Einführung von R usw. Dies sind jedoch nur einige der Gründe, aus denen ich ein Upgrade in Betracht ziehen würde. Das wichtigste Element ist wiederum die Möglichkeit, viele der zuvor nur für die Enterprise Edition verfügbaren Funktionen in Standard oder sogar Express zu verwenden. Ich habe große Erfolgsgeschichten bei meinen Kunden gesehen und erwarte mehr.

Wenn Sie SQL Server 2005 oder 2008 verwenden, ist die Liste sogar noch größer. AlwaysOn-Verfügbarkeitsgruppen wurden 2012 veröffentlicht, Columnstore-Indizes in SQL Server 2012, In-Memory-OLTP in SQL Server 2014 usw.

Ganz zu schweigen davon, ob Sie noch mit SQL Server 2005 oder 2008 arbeiten, Sie haben keinen Mainstream-Support.

Mike Walsh
quelle
2
All dies + echter Geschäftsgrund - längster Lebenszyklus. Leute, die immer noch an SQL2000 arbeiten, können keine Windows-Upgrades durchführen, alte Windows nicht auf neuen Servern installieren und all diese Probleme treten nacheinander auf. Für Unternehmen - JSON und andere, es ist nur IT-Spielzeug ... aufhören zu unterstützen, die sie verstehen
a_vlad