So zwingen Sie SQL Server, die maximale Netzwerkbandbreite zu nutzen

So zwingen Sie SQL Server, die maximale Netzwerkbandbreite zu nutzen

Ich habe ein in Delphi geschriebenes Programm, das SQL Server 2008 als Datenbankmodul verwendet. Ich bin auf einer P2P-Verbindung, die von zwei Nano-Stationen M5 bereitgestellt wird. Wenn ich innerhalb des Programms eine bestimmte Abfrage ausführe, zeigt der Netzwerkmonitor an, dass der Client 6 Sekunden lang Daten mit 8 MB/Sekunde vom Server abruft.

Auch wenn ich den Client über ein Ethernet-Kabel direkt mit dem Server verbinde und die gleiche Abfrage ausführe, werden die gleichen Daten abgerufen, allerdings schneller (Erhalten Sie diese Daten mit 20 MB/Sekunde für nur 2 Sekunden Dauer), aber wenn ich eine große Datei vom Server auf den Client kopiere, wird sie mit bis zu 55 MB/Sekunde kopiert.

Es stört mich, weil die Client-Anwendung dadurch so langsam läuft, dass es die tatsächliche Netzwerkbandbreite nicht zulässt. Ich möchte wissen, ob es eine Möglichkeit gibt, den SQL Server zu zwingen, die maximale Netzwerkbandbreite zu verwenden?

Windows Server 2012 R2 und SQL Server 2008 laufen nur mit aktiviertem TCP/IP-Netzwerkprotokoll und 100 MB Vollduplex-Netzwerkserver Core i5 mit 8 GB DDR3 und 160 GB SSD und Gigabit-NIC

Antwort1

Sie erreichen zwar nicht die gleiche Geschwindigkeit wie beim Übertragen einer Datei, aber hoffentlich geht es schneller.

Verwenden Sie den SQL Profiler, um die Abfrage mit der Datenbank aufzuzeichnen. Sehen Sie sich die Ergebnisse an, um sicherzustellen, dass das Programm keine unnötigen Abfragen zusammen mit der Hauptabfrage sendet, die aufgrund der Latenz die Arbeit verlangsamen könnten. Idealerweise möchten Sie eine Verbindung und nur die eine Abfrage sehen.

Können Sie auch Änderungen am Delphi-Programm vornehmen? Wenn ja, stellen Sie sicher, dass Verbindungspooling verwendet wird. (Eine Verbindung wird einmal erstellt und wiederverwendet, wenn eine Abfrage durchgeführt werden muss.) Die SQL-Verbindung selbst erfordert den Austausch von etwa 16 Paketen. Multiplizieren Sie das mit Ihrer Latenz, und es kann sich summieren. Angenommen, Sie haben eine Latenz von 100 ms, dann könnte die Herstellung der Verbindung 1,6 Sekunden dauern.

verwandte Informationen