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

Ich habe den SQL Server ODBC-Treiber aktualisiert und die Leistung wurde negativ beeinflusst. Was kann ich tun?

In Version 1.7.16 änderte sich der Easysoft SQL Server ODBC-Treiber von der Verwendung eines Client-Cursors zu einem Server-Cursor, wenn das Verhalten einer Anwendung darauf hindeutete, dass sie nur eine Teilmenge der Daten in einem Abfrageergebnis benötigte. Bei einem Client-Cursor sendet die Datenbank den vollständigen Ergebnissatz in einer einzigen Antwort an den Treiber, wenn sie auf eine Abfrage antwortet. Das Verhalten von 1.7.16+ ahmt auch das Verhalten von Microsofts SQL Native Client in dieser Hinsicht nach.

Eine Überschreibung für dieses Verhalten wurde in Version 1.8.10 hinzugefügt, denn wenn die Anwendung tatsächlich die gesamte Ergebnismenge haben möchte, hat die Verwendung eines Server-Cursors Auswirkungen auf die Leistung, da Server-Cursor langsamer sind.

Um zum vorherigen Verhalten für Cursor zurückzukehren, fügen Sie diesen OVERRIDE hinzu Zeile zu Ihrer ODBC-Datenquelle:

[SQLSERVER_SAMPLE]
.
.
.
OVERRIDE=65536
      

ODBC-Datenquellen werden normalerweise in /etc/odbc.ini gespeichert .