Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

Gedanken zu SQL Server 2019-Editionen

Da ich seit ein paar Jahren zu meinem ersten PASS Summit aufbreche, kann ich meine Begeisterung über die neueste Version von SQL Server nur schwer zurückhalten. Ich habe Bob Ward (@bobwardms) bei der technischen Bearbeitung seines neuesten Buchs „SQL Server 2019 Revealed“ geholfen und mich während der gesamten CTP- und RC-Zyklen aktiv mit den Produktteams und meinen MVP-Kollegen befasst. Ich habe sogar an der sehr exklusiven SQL Server 2019 Airlift-Veranstaltung in Redmond in der ersten Oktoberwoche teilgenommen – und obwohl es zu spät war, Feedback zu geben, das sich auf RTM auswirken würde, habe ich einige konstruktive Vorschläge gemacht, die wir hoffentlich in einem CU sehen werden ( oder bis vNext).

Das Produkt ist noch nicht veröffentlicht, zumindest zum Zeitpunkt des Schreibens, aber sie haben begonnen, zu gestalten, welche Funktionen (und es gibt viele davon) in welchen Editionen verfügbar sein werden. Wie Sie sich vielleicht erinnern, wurden in SQL Server 2016 SP1 alle Funktionen der Programmieroberfläche für alle Editionen und viele (aber sicherlich nicht alle) Leistungs- und Verfügbarkeitsfunktionen geöffnet. Ich habe darüber in einem Beitrag mit dem Titel „Eine große Sache:SQL Server 2016 Service Pack 1“ geschrieben. Dies war eine sehr aufregende Zeit, und ich wollte nur einige Gedanken über die Hits und Misses in der neuesten Version teilen.

Treffer

  • Die beschleunigte Datenbankwiederherstellung ist in der Standard Edition enthalten . Das war mit Abstand die größte Überraschung für mich, da ich dachte, es wäre eine Enterprise Edition-Funktion. Es handelt sich um ein Verfügbarkeitsfeature, da es die Failover- und Wiederherstellungszeit drastisch reduzieren kann, und es kann auch als Leistungsfeature betrachtet werden, da Sie jetzt denselben lokalen Versionsspeicher für Dinge wie RCSI verwenden können, anstatt den Versionsspeicher in tempdb gemeinsam zu nutzen. Sie können den lokalen Versionsspeicher sogar in eine eigene Dateigruppe stellen, was keine Option war, als ich im März über das Feature schrieb. Dass dies in allen Editionen verfügbar ist, ist fantastisch, aber Sie müssen sicherstellen, dass Sie Ihre Arbeitslast gegen eine Baseline testen.
  • Transparent Data Encryption (TDE) ist jetzt in der Standard Edition verfügbar . In Anbetracht dessen, dass die Dokumentation nicht endgültig ist, ist dies für viele Shops eine großartige Änderung, und es macht Sinn, dass ein so wichtiges Sicherheitsmerkmal kein Unterscheidungsmerkmal für die teuerste Edition sein sollte. Es ist weder ein Leistungs- noch ein Verfügbarkeitsfeature, und grundlegende, vernünftige Datensicherheit sollte meiner Meinung nach nicht extra kosten. Nike Neugebauer stimmt zu. Always Encrypted und andere Funktionen wie Sicherheit auf Zeilenebene und dynamische Datenmaskierung sind in allen Editionen verfügbar, aber sie passen nicht immer in die „Easy-Button“-Lösung, nach der Kunden suchen.
  • Skalares UDF-Inlining ist in allen Editionen enthalten – sogar in Express . Dies ist eine großartige Funktion, die im Wesentlichen all die schlechte Leistung verbirgt, die Sie früher von ineffizienten benutzerdefinierten Skalarfunktionen erhalten haben (ich habe vor einem Jahr zum ersten Mal über diese Funktion geschrieben). Ich bin überrascht, dass dies nicht nur Enterprise ist – es hätte wie indizierte Ansichten sein können, bei denen die Funktionalität überall verfügbar ist, aber das Verhalten in der Enterprise Edition (zumindest standardmäßig) besser ist. Ich bin froh, dass in diesem Fall alle davon profitieren.
  • Setup bietet bessere Empfehlungen aus der Praxis . Dies ist per se kein Element auf der Feature-Liste, aber es gibt einige neue Optionen und Vorschläge rund um MAXDOP und Min/Max-Serverspeicher, die meiner Meinung nach großartige Ergänzungen sind und es den Benutzern ermöglichen, ihre Instanzen von Anfang an besser zu konfigurieren:

    Neuer MaxDOP-Bildschirm im Setup ( zum Vergrößern anklicken)

    Neuer Arbeitsspeicher-Bildschirm im Setup ( zum Vergrößern anklicken)

    Wenn sie jetzt nur Optionen für andere Dinge hinzufügen könnten, die nach der Installation stören, wie Sperren von Seiten im Speicher, Ändern des Standardkostenschwellenwerts für Parallelität, Festlegen von Ablaufverfolgungsflags für den Start (wie 3226!), Hervorheben suboptimaler Energieplaneinstellungen und Aktivieren Verfügbarkeitsgruppen direkt, anstatt nachträglich Configuration Manager zu verwenden. Und vielleicht könnten sie diese lästige Warnung über die Firewall entfernen; es ist immer dasselbe und war zumindest für mich in keinem Szenario sinnvoll oder hilfreich.

Fehltreffer

  • Das 128-GB-Limit für die Standard Edition wird immer noch nicht überschritten , trotz vieler Anfragen (wie dieser von Erik Darling). Es ist nicht meine ursprüngliche Idee, und es würde die Lizenzierung oder Durchsetzung nicht einfacher machen, aber die Speicherbeschränkungen könnten relativ zur Anzahl der lizenzierten Kerne vorgenommen werden. Auf diese Weise basiert Ihr Speicherlimit darauf, wie viel Sie für die Lizenzierung ausgegeben haben, und nicht auf einem willkürlichen Limit, das vor 5 Jahren irgendwo in einem Konferenzraum festgelegt wurde.

    Brent Ozar (@BrentO) sprach auch über den "perfekten Sturm " mit Speicherzuteilungen in der Standard Edition, und ich stimme dem voll und ganz zu - ich denke, Kunden würden gerne die Prämie für den Wechsel von CAL zu Core-Lizenzierung in der Standard Edition zahlen, wenn dies jetzt bedeuten würde, dass sie mehr (oder sogar ihren gesamten) Speicher nutzen könnten.
  • Speicheroptimierte TempDB ist nur die Enterprise Edition , während andere In-Memory-Datenbanktechnologien wie Memory-Optimized Tables und Hybrid Buffer Pool in der Standard Edition verfügbar sind. Ich glaube, dass diese Funktion eine Art Hybrid zwischen Leistung und Verfügbarkeit ist; zumindest ausgeglichener als beispielsweise UDF-Inlining. Langsame Funktionen lassen die Leute nur warten; Eine überlastete tempdb kann Ihre Instanz fast buchstäblich zum Erliegen bringen. Ich habe auch das Gefühl, dass Enterprise-Kunden dazu neigen, bereits mehr und bessere Hardware zu haben, um das Problem anzugehen, als sich kleinere Geschäfte leisten können. Kunden, die sich für die Standard Edition entscheiden, haben nicht unbedingt die Ersparnisse, die herumsitzen und darauf warten, Schecks auszustellen.

    Einer der Vorschläge, die ich zu dieser Funktion hatte, war, dass es während der Einrichtung Befehlszeilenargumente und/oder ein Kontrollkästchen für die Benutzeroberfläche geben sollte, um diese Funktion sofort nach einer Installation oder einem Upgrade zu aktivieren. Dies würde Unterbrechungen nach der Installation vermeiden, da die einzige Möglichkeit, die Funktion zu aktivieren, darin besteht, einen Dienstneustart durchzuführen. Der Grund, warum es standardmäßig nicht aktiviert ist, liegt darin, dass es Workload-Muster gibt, bei denen der Vorteil nicht offensichtlich ist, und einige Breaking-Szenarien mit Transaktionen und anderen Datenbanken mit speicheroptimierten Tabellen, sodass sie möchten, dass Sie Ihre Workload testen und sicherstellen, dass Sie dies tun die richtigen Arten von Konflikten beobachten und dass der Nutzen da ist. Aber was ist, wenn ich das bereits auf einem anderen System mit der gleichen Arbeitslast gemacht habe?

Abschiedsgedanken

Auch wenn es so klingen mag, als würde ich mich beschweren, bin ich immer noch super aufgeregt über diese Version und alles, was sie zu bieten hat. Ich gehe davon aus, dass die Verfügbarkeit sowohl auf der Ignite als auch auf dem PASS Summit bekannt gegeben wird, sodass Sie die RTM-Teile möglicherweise schon in der Hand haben, wenn Sie dies lesen.