Welche objektiven Geschäftsgründe sprechen für den Vorzug von SQL Server 2012 gegenüber 2008 R2?

50

Mein Unternehmen steht vor der Entscheidung, SQL Server 2012 Denali oder SQL Server 2008 R2 für einen neuen Datenbankserver zu erwerben. Ich suche nach objektiven Gründen, um einen über den anderen zu wählen.

Unsere Anforderungen:

  • Standard Edition (aus finanziellen Gründen und mangelnder Notwendigkeit von Unternehmensfunktionen)
  • OLTP-Workload (dies bedeutet, dass wir die neuen Fensterfunktionen und Spaltenspeicherindizes nicht benötigen)
  • Datenbankgröße von 10-100 GB
  • Keine Business Intelligence-Funktionen erforderlich. Nur die relationale Engine ist erforderlich
  • Synchrone Datenbankspiegelung

Derzeit sind mir folgende Gründe bekannt:

SQL Server 2012 Denali

  • Neueste Version verfügbar

SQL Server 2008 R2

  • Bewiesene Technologie

Ich kann anscheinend nicht viele technische Gründe finden, eine der anderen vorzuziehen. Grundsätzlich kommt es darauf an, eine bewährte Technologie zu wählen, die erfolgreich ausgeführt wird, im Vergleich zu der neuesten und besten verfügbaren Version.

Was sind objektive Gründe für die Entscheidung?

usr
quelle
5
Ich denke, solange die Änderung der Pro-Core-Lizenz Ihr Budget nicht verändert und Sie sich keine Sorgen über einen langsamen Aufholprozess machen müssen, ist die Verwendung von SQL Server 2012 ein Kinderspiel. Dies basiert auf bewährter Technologie und sollte daher nicht als vollständiges Umschreiben und / oder V1 betrachtet werden.
Aaron Bertrand
3
Aufgrund meiner Erfahrungen mit früheren drei Releases würde ich mindestens ein Service Pack abwarten. Mit 2008 habe ich bis R2 gewartet, und es hat immer noch Mängel. Ganz oben auf meiner Liste: In 2008 R2 kann ich eine vertrauenswürdige FK-Einschränkung umgehen und verwaiste Zeilen einfügen, ein Skript in SSMS ausführen und einen Teil davon mit der falschen Datenbank ausführen.
AK
3
@ AaronBertrand Ich denke, Ihre Analogie ist falsch. Wenn Sie ein und dieselbe Person gesehen haben, die mehr als einmal, mehrmals eine SMS geschrieben hat und gefahren ist, ist es vernünftig, dass diese Person einen schrecklichen Fahrer hat. So verallgemeinert sich das OP, nicht wie Sie es vorgeschlagen haben.
AK
3
Alex, lass es mich wissen, wenn eine komplizierte RDBMS-Plattform fehlerfrei ausgeliefert wird. IIRC Ihr FK-Repro war ziemlich verworren und kein alltägliches Szenario. Lassen Sie mich auch wissen, wenn Sie der Meinung sind, dass Softwareunternehmen mit der Zeit möglicherweise nicht besser werden können oder wenn Sie eine Sicherheitsanfälligkeit vom Typ Slammer in SQL 2012 erwarten, dann in der darauf folgenden Version und der darauf folgenden Version ... an einem bestimmten Punkt müssen die Geschichten dieser alten Frauen loslassen und eine Plattform für sich alleine nehmen und es nicht nach einem Fehler in einer früheren Version beurteilen ...
Aaron Bertrand
7
Das "Warten auf das Service Pack" ist ein alter Mythos und FUD
gbn

Antworten:

63

Jeder ist begeistert von AlwaysOn und ColumnStore, aber viele der Vorteile von SQL Server 2012 gelten nicht nur für High-End-Editionen. Ich möchte nicht wie ein Sprecher klingen, aber ich habe viele Präsentationen zu SQL Server 2012 gehalten und ich denke, es hat eine Menge zu bieten, egal in welcher Edition Sie sich befinden.

  • Teilweise enthaltene Datenbanken, mit denen Sie Datenbanken mit weniger Fesseln zwischen Servern oder Umgebungen verschieben können (dh Anmeldungen auf Serverebene und Server-Kollatierungsabhängigkeiten - zukünftige Versionen werden schwierigere Elemente wie Verbindungsserver und Agentenaufträge verarbeiten).

  • Management Studio ist jetzt ein viel besseres Tool, das auf Visual Studio abgestimmt ist. IntelliSense ist besser und eine ganze Reihe weiterer Funktionen erleichtern die Bearbeitung. Jetzt können Sie natürlich 2008 R2 auf Ihrem Server haben und die 2012er Version von SSMS verwenden, aber ich bin mir nicht sicher, wie das lizenztechnisch funktioniert, und einige Geschäfte möchten keine gemischten Versionen (ich bevorzuge die neuesten Tools) meine Workstation sogar zur Verwaltung von Downlevel-Servern). Ich habe schon früh über die Änderungen gebloggt, als es noch Fehler gab. Ignorieren Sie daher bitte die negativen Aspekte, da die meisten oder alle ab RTM behoben sind. Ich schaudere jetzt, wenn ich eine frühere Version von SSMS verwenden muss.

  • Mithilfe von Metadatenerweiterungen können Sie Ergebnismengen von Objekten und Ad-hoc-Abfragen überprüfen und die Ausgabe von Abfragen besser gestalten.

  • Mit benutzerdefinierten Serverrollen können Sie eine viel detailliertere Gruppe von Berechtigungen für Benutzer auf Rollenebene definieren, anstatt sie einzeln zu erteilen / zu widerrufen oder nur der Komplexität nachzugeben und ihnen Sysadmin zu erteilen.

  • Mit FileTable können Sie einen Ordner wie eine Tabelle mit Dokumenten verwalten, aber dennoch die externe Kontrolle über den Inhalt haben (stellen Sie sich vor, Sie könnten dies mit T-SQL tun, und wie schwierig es wäre, dies in cmd oder PowerShell zu tun:) UPDATE C:\Docs\*.* SET ReadOnly = 1 WHERE Author = 'Bob' AND Created < '20100101';. denke, FileStream erfüllt WinFS und bekommt eine gewisse Benutzerfreundlichkeit zu booten.

  • Mit den T-SQL-Verbesserungen können Sie viele Dinge erledigen, die in früheren Versionen schmerzhaft waren:

    • THROW (Betrachten Sie es als Re-Raise)
    • OFFSET/FETCH (einfacher, ANSI-Standard-Paging)
    • SEQUENCE (zentraler IDENTITY-Mechanismus, wie in Oracle)
    • Verbesserungen an Fenstern / Frames (verschiedene Dinge hier, wie z. B. hervorragende Gesamtleistung beim Laufen)
    • IIF()/ CHOOSE()/ CONCAT()/EOMONTH()
    • Datums- / Zeitkonstruktoren (zB DATETIMEFROMPARTS) ähnlich wie DateSerialin VB
    • PARSE()/ FORMAT()- Wie ihre .NET-Gegenstücke
    • TRY_CONVERT()/ TRY_PARSE()- zurückgeben, NULLwenn CONVERT/ PARSEfehlschlägt
  • Extended Events verfügt über eine erweiterte Benutzeroberfläche für die Konfiguration / Anzeige und deckt schließlich die Trace- / Audit-Funktionalität vollständig ab (einschließlich einer viel besseren Verfolgung der Kausalität).

  • Viele neue DMVs , Systemprozeduren und ShowPlan-Verbesserungen für die Diagnose und Fehlerbehebung bei der Leistung. Schauen Sie sich auch an, was CSS " The Black Box Recorder "nennt.

  • Mit Server Core können Sie auf einem Server mit minimalem Aufwand ohne alle UI-Komponenten ausgeführt werden (eine kleinere Oberfläche bedeutet mehr Sicherheit und weniger Wartung, da weniger Teile des Betriebssystems Windows Update unterliegen).

  • Bei der Volltextsuche werden einige wichtige grundlegende Leistungsverbesserungen sowie die semantische Suche (think keywords) und die anpassbare Nähe / NÄHE erzielt.

  • AWE wird nicht mehr unterstützt , was bedeutet, dass Ihre SQL Server-Instanz auf x86 mit 32 GB RAM nur 4 GB verwenden kann. Sie werden also endlich die Motivation haben, von Ihrer alten 32-Bit-Hardware abzuweichen.

Aaron Bertrand
quelle
Betreff: Der PowerShell-Kommentar ist immer noch ziemlich einfach: gci c:\users | where-object {$_.Author = 'Bob' -and $_.creationdate -lt '1/1/2010'} | %{$_.Readonly = 1}oder so ähnlich - aber nicht so einfach und lesbar wie die Option 2012!
JNK
3
Das Tolle an PS ist, dass man (fast) alles in einer Zeile machen kann. Das Schlimme ist, dass es schwer ist, diese Zeile zu lesen :)
JNK
1
Ist SSMS 2012 so viel besser?
Thomas Stringer
5
Ja, ich liebe es. Ich sollte einen weiteren Blogeintrag darüber machen. Einige Highlights: Schnipsel sind fantastisch, IntelliSense ist viel besser, die Regionsbearbeitung ist sehr leistungsfähig, die Tab-Leiste eignet sich hervorragend für mehrere Monitore und der Zoom ist integriert.
Aaron Bertrand
3
Ich könnte diese Kugel auch so zusammenfassen: "x86 wird noch mehr saugen als es bereits tut."
Aaron Bertrand
14

Das Folgende sind nur einige Beispiele für "tatsächliche Beweise für oder gegen die Zuverlässigkeit in der ersten Version einer neuen Version", wie angefordert. Hierbei handelt es sich nicht um eine vollständige Analyse, sondern um einen Vorschlag, was Sie möglicherweise erforschen möchten.

Sie können "Liste der von SQL Server 2008 Service Pack 1 behobenen Probleme" und "Liste der von SQL Server 2008 Service Pack 3 behobenen Probleme" auf der MSDN-Website nachschlagen. Vergleichen Sie die Anzahl und den Schweregrad der Probleme in beiden Listen. IMO ist die erste Liste länger und es gibt mehr Dinge, die meinen Tag ruinieren könnten, wie zum Beispiel:

  • Fehlermeldung beim Herstellen einer Verbindung zu einer benannten Instanz von SQL Server auf einem Clientcomputer mit Windows Vista oder Windows Server 2008
  • Der Protokolllese-Agent überspringt einige Transaktionen, wenn der Protokolllese-Agent ausgeführt wird, um Transaktionen zu replizieren
  • Fehlermeldung beim Ausführen einer Abfrage, die einen Outer Join-Vorgang in SQL Server 2008 umfasst
  • Fehlermeldung, wenn Sie eine Aktualisierung oder einen Löschvorgang für eine Tabelle ausführen, für die in SQL Server 2008 kein Clustered-Index erstellt wurde
  • Eine Abfrage, die Parameter und die RECOMPILE-Option verwendet, gibt falsche Ergebnisse zurück, wenn Sie die Abfrage in SQL Server 2008 in mehreren Verbindungen gleichzeitig ausführen

Lassen Sie uns noch eine Ebene tiefer gehen und nur einen Befehl betrachten, den MERGE. Es wurde als Teil von SQL 2008 mit mehreren Problemen veröffentlicht, die unter den folgenden Links beschrieben werden:

Aus diesem Grund habe ich mich zum Zeitpunkt der ursprünglichen Veröffentlichung von SQL 2008 gegen die Verwendung von MERGE entschieden. Ich benutze MERGE seit 2008 R2 sehr oft und ich denke, es ist eine wirklich großartige Funktion.

Bearbeiten: Hier ist die Liste der Fehler in SQL 2012, die kürzlich behoben wurden . Ich hoffe es hilft.

Eine weitere Änderung: Ich habe MERGE für eine detailliertere Analyse ausgewählt, da dies eine sehr wichtige Verbesserung darstellt. Tatsächlich ist dies ein wichtiger Schritt, um mit Oracle Schritt zu halten, und verbessert unsere Produktivität. Aus diesem Grund wurde MERGE zum Zeitpunkt der Veröffentlichung von SQL 2008 vielfach vermarktet. Als es ursprünglich veröffentlicht wurde, war es jedoch noch nicht vollständig einsatzbereit für ernsthafte Produktionssysteme, und es gab keine einfache Möglichkeit, es anhand der Präsentationen / Artikel / Blogposts und dergleichen zu erkennen.

In ähnlicher Weise ist die Snapshot-Isolation eine großartige neue Funktion, die einfach funktioniert, aber das Aufrufen von skalaren UDFs in CHECK-Einschränkungen funktioniert nicht in allen Fällen und sollte daher nicht in der Produktion verwendet werden, wenn Datenintegrität benötigt wird. Beide neuen Funktionen wurden jedoch in Präsentationen mit dem Titel "Was ist neu in SQL xxxx?" Sowie in Büchern, Artikeln usw. und mit ähnlicher Begeisterung empfohlen.

Wir müssen mit neuen Funktionen sehr vorsichtig sein - nicht alle werden nützlich / zuverlässig / performant sein.

AK
quelle
Ich habe die Liste gesehen. Ich habe keine wirklich als Show-Stopper wahrgenommen, und fast alle erwähnten Probleme betreffen sowohl 2008 R2 als auch 2012.
Aaron Bertrand
1
Hier ist ein weiterer potenzieller MERGEFehler , der zu Deadlocks führt.
Nick Chammas
@ NickChammas ja, richtig, danke, dass du das erwähnt hast. Wir benutzen sp_getapplock, um uns fortzubewegen.
AK
10

Ein Punkt, der hier nicht erwähnt wurde, ist für den Funktionsumfang völlig irrelevant. Wenn Sie einen neuen Build ausführen, können Sie ein Datenbank-Upgrade etwas länger verschieben, wodurch Migrationskosten eingespart werden.

Bei einem Greenfield-Projekt haben Sie etwas Zeit, um Fehler zu umgehen und sie beim Anbieter zu melden, falls sie auftauchen. Es handelt sich also nicht um einen völlig unkontrollierten Prozess. Ich war an einem der ersten Data Warehouse-Projekte auf SQL Server 2005 beteiligt, als es zu RTM ging, und wir kamen damit durch.

Wenn das Feature-Set von 2008R2 das tut, was Sie wollen, ist die Entscheidung auf ein gewisses Risiko von Bugs / Workarounds zurückzuführen.

Betroffen vonTunbridgeWells
quelle
6

Wenn Sie neu kaufen, ist die Auswahl ganz anders, als wenn Sie ein Upgrade in Betracht ziehen. Neu kaufen Ich bin der Meinung, dass Sie immer die neueste Version kaufen sollten, die Sie bekommen können. Die Version 2008 wird nicht mehr weit früher als die Version 2012 unterstützt. Fangen Sie lieber mit der neuesten Version an, da Sie dieses Backend noch lange verwenden werden.

Was die Notwendigkeit des ersten Service Packs anbelangt, wird es bekannt sein, bevor Sie es wissen, und da Sie eine Neuentwicklung durchführen, werden die Probleme, die es behebt, Sie wahrscheinlich nicht so sehr betreffen, wie es bei einer alten Datenbank mit Millionen von Datensätzen der Fall wäre.

Wenn Sie nur einen neuen Server erhalten, aber eine alte Datenbank darauf ablegen, stellt sich die Frage, von wem Sie ein Upgrade durchführen. Wenn es sich bei der Datenbank bereits um eine 2008-Datenbank handelt, ist die Verwendung derselben Version wesentlich weniger riskant. Wenn Sie ein Upgrade durchführen, überprüfen Sie, ob Sie von Ihrer Version direkt auf 2012 aktualisieren können.

HLGEM
quelle
Es gibt kein Upgrade. Dies ist eine neue App auf neuer Hardware.
USR