sql >> Databasteknik >  >> RDS >> Database

En lösning för:Markörer stöds inte i en tabell som har ett klustrat kolumnlagerindex

I version 1.7.16 ändrades Easysoft SQL Server ODBC-drivrutinen från att använda en klientmarkör till en servermarkör när ett programs beteende antydde att det bara behövde en delmängd av data i ett frågeresultat. Med en klientmarkör skickar databasen hela resultatuppsättningen i ett enda svar till föraren när den svarar på en fråga. Beteendet 1.7.16+ härmar också hur Microsofts SQL Native Client beter sig i detta avseende.

En åsidosättning för detta beteende lades till i version 1.8.10 eftersom om applikationen verkligen vill ha hela resultatuppsättningen, har användning av en servermarkör prestandaimplikationer, eftersom servermarkörer är långsammare. En annan konsekvens av ändringen i version 1.7.16 är ett problem som rapporterades till oss av en kund som använde Cognos på Linux med SQL Server. När kunden försökte fråga en tabell med klustrade kolumnlagerindex fick kunden felet:

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

eftersom servermarkörer inte stöds när du använder den här funktionen. Lösningen var att återgå till det tidigare beteendet för markörer genom att lägga till den här raden i ODBC-datakällan i /etc/odbc.ini :

[SQLSERVER_SAMPLE]
.
.
.
OVERRIDE=65536

  1. MySQL raderar dubbletter av poster men behåll de senaste

  2. GUI-verktyg för PostgreSQL

  3. HIbernate-problem med Oracle Trigger för att generera id från en sekvens

  4. Kör flera frågor i ett enda Oracle-kommando i C#