Angenommen, ich besitze eine 32-Bit-Windows Server-Box, auf der mehrere Serveranwendungen zusammen mit einem SQL Server ausgeführt werden, mit einer RAM-Auslastung von etwa 2 GB zu Spitzenzeiten.
Was wären die Vorteile eines Upgrades des Windows Server-Betriebssystems und von SQL Server auf die entsprechenden 64-Bit-Versionen, wobei die Serveranwendungen 32-Bit bleiben? Die 64-Bit-Versionen erlauben den Zugriff auf mehr als 4 GB RAM, aber da 4 GB nicht voll ausgenutzt werden, würde dies das Upgrade in Frage stellen?
Versionen: Windows Server 2008 R2, SQL Server 2008 R2 Datacenter Edition
Vielen Dank
quelle
Wie bereits erwähnt, verwenden Sie bereits ein 64-Bit-Betriebssystem. Der Wechsel zu einer 64-Bit-Version von SQL Server bietet zwei Vorteile und einen Nachteil.
Der einzige Nachteil ist, dass die 64-Bit-Version von SQL Server 64-Bit-Zeiger verwendet. Dies bedeutet, dass Zeiger doppelt so viel Speicher belegen, doppelt so viel Speicherbandbreite verbrauchen und so weiter. Dies ist wahrscheinlich vernachlässigbar, aber ein Nachteil. Dies wird teilweise durch die Tatsache kompensiert, dass Sie durch den Wechsel zu einer 64-Bit-Anwendung den Overhead der Kompatibilitätsschicht aufheben können, die 32-Bit-Apps für den Zugriff auf die Funktionen eines 64-Bit-Betriebssystems benötigen.
Der Hauptvorteil besteht darin, dass im Laufe der Zeit zahlreiche signifikante Verbesserungen am CPU-Befehlssatz vorgenommen wurden. Einige von ihnen wurden zusammen mit der Änderung auf 64-Bit gemacht und einige von ihnen wurden zuvor gemacht.
Aber selbst für diejenigen, die zuvor erstellt wurden, muss der 32-Bit-Build mit CPUs umgehen, die über diese Funktionen nicht verfügen. Um den Aufwand beim Erkennen und Wechseln zwischen mehreren Instanzen zu vermeiden, werden sie nur dort verwendet, wo sie vorhanden sind. Beispielsweise müssen 64-Bit-CPUs über SSE2 verfügen, 32-Bit-CPUs jedoch möglicherweise nicht. Die meisten 32-Bit-Codes kümmern sich also nicht um die Prüfung und setzen kein SSE2 voraus. 64-Bit-Code ist garantiert, dass SSE2-Anweisungen vorhanden sind, und wird daher verwendet, wenn dies die beste Option ist.
Die größte ist die Zunahme der Anzahl benannter Universalregister von 8 auf 16. Die Anzahl der 128-Bit-XMM-Register wurde ebenfalls von 8 auf 16 verdoppelt.
Darüber hinaus kann ein 64-Bit-Prozess große Mengen an virtuellem Speicher nutzen. Dies ist besonders wichtig bei Prozessen, die auf große Mengen strukturierter Daten auf der Festplatte zugreifen. Und natürlich können sie 64-Bit-Ganzzahloperationen verwenden, die die Leistung der Verschlüsselung, Komprimierung und sogar einiger Dateisystemoperationen auf großen Dateisystemen verbessern.
quelle
/arch:SSE2
Option für 32-Bit-Code hat, die gcc / clang / ICC entspricht-msse2
. Ich würde vermuten, dass SQL nicht viele SIMD-Vektorschleifen hat, aber das Kopieren kleiner Strukturen mit 16-Byte-SIMD-Laden / Speichern ist schön.__fastcall
für viele Funktionen Argumente in Registern übergeben. Die 32-Bit-Aufrufkonvention von Linux ist rein auf dem Stack, daher ist es ziemlich beschissen, kleine Funktionen zu verwenden, die nicht inline sind.Grundsätzlich: Ja. Vorausgesetzt, Sie führen niemals Aktualisierungen durch, die nur 4-Bit-Aktualisierungen umfassen. Sie sind sich nicht sicher, ob es sogar einen 32-Bit-SQL-Server gibt, der aktueller als 2008 ist.
Probleme mit Ihrer Frage: "Die 64-Bit-Versionen ermöglichen den Zugriff auf mehr als 4 GB RAM." - Stellen Sie sicher, dass 3 GB nicht 4 sind. 1 GB ist immer reserviert.
quelle
Mögliches Problem: DLL-Bibliotheken mit benutzerdefinierten CLR-Funktionen (User Defined Functions, UDFs) benötigen ihre 64-Bit-Version.
Wenn Sie eine Bibliothek mit benutzerdefinierten CLR-Funktionen verwenden , wird diese bit-inkompatibel. 32-Bit-DLLs können in der Regel nicht in 64-Bit-Software verwendet werden und umgekehrt. Wenn Sie keine 64-Bit-Version einer von Ihnen verwendeten UDF-Bibliothek erhalten können, verlieren Sie diese bestimmte Erweiterung.
Grundsätzlich ist dies das gleiche Problem wie das Upgrade einer 32-Bit-Software mit ihren Add-Ons auf die 64-Bit-Version. Sie müssen auch alle Add-Ons auf ihre 64-Bit-Version umstellen. Im Allgemeinen ist es einfach, aber das Problem tritt nicht mehr auf, wenn kein Ersatz verfügbar ist.
quelle
Performance!
Hier gibt es bereits einige technische Antworten, ohne jedoch zu technisch zu werden. Abhängig von Ihrer Anwendung sollten Sie eine Leistungssteigerung sehen.
Die Hauptstücke sind:
https://teratrax.com/sql-server-64-bit/
Die dramatischsten Ergebnisse, die ich bei der Umstellung von 32-Bit- auf 64-Bit-SQL-Server (dies war SQL Server 2005) gesehen habe, waren etwa 40% mehr Geschwindigkeit für die Hauptanwendung eines Clients. Wir haben lediglich den 64-Bit-SQL-Server installiert, ansonsten war alles gleich! Das war ein großer Leistungsschub in der realen Welt.
quelle
Sie können eine bessere Multitasking-Leistung erzielen, insbesondere bei Programmen mit integriertem Multithreading. Außerdem können Sie mit 64-Bit-Betriebssystemen mehr RAM installieren. Tun Sie dies jedoch nur, wenn der Prozessor 64-Bit-Anweisungen unterstützt.
quelle