Database
 sql >> Datenbank >  >> RDS >> Database

Problemumgehung für:Cursor werden in einer Tabelle mit einem gruppierten Columnstore-Index nicht unterstützt

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. Eine weitere Folge der Änderung in Version 1.7.16 ist ein Problem, das uns von einem Kunden gemeldet wurde, der Cognos unter Linux mit SQL Server verwendete. Beim Versuch, eine Tabelle mit gruppierten Columnstore-Indizes abzufragen, erhielt der Kunde den Fehler:

"Cursors are not supported on a table which has a clustered columnstore index"

da Server-Cursor bei Verwendung dieser Funktion nicht unterstützt werden. Die Problemumgehung bestand darin, zum vorherigen Verhalten für Cursor zurückzukehren, indem diese Zeile zur ODBC-Datenquelle in /etc/odbc.ini hinzugefügt wurde :

[SQLSERVER_SAMPLE]
.
.
.
OVERRIDE=65536