sql >> Database >  >> RDS >> Database

Een tijdelijke oplossing voor:Cursors worden niet ondersteund in een tabel met een geclusterde columnstore-index

In versie 1.7.16 veranderde het Easysoft SQL Server ODBC-stuurprogramma van het gebruik van een clientcursor in een servercursor toen het gedrag van een toepassing suggereerde dat het alleen een subset van de gegevens in een queryresultaat nodig had. Met een clientcursor stuurt de database de volledige resultatenset in één reactie naar de bestuurder bij het beantwoorden van een vraag. Het gedrag van 1.7.16+ bootst ook na hoe Microsoft's SQL Native Client zich in dit opzicht gedraagt.

Een overschrijving voor dit gedrag is toegevoegd in versie 1.8.10, want als de toepassing de volledige resultatenset wil, heeft het gebruik van een servercursor gevolgen voor de prestaties, omdat servercursors langzamer zijn. Een ander gevolg van de wijziging in versie 1.7.16 is een probleem dat aan ons werd gemeld door een klant die Cognos op Linux gebruikte met SQL Server. Bij een poging om een ​​tabel met geclusterde columnstore-indexen te doorzoeken, kreeg de klant de foutmelding:

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

omdat servercursors niet worden ondersteund bij het gebruik van deze functie. De tijdelijke oplossing was om terug te keren naar het vorige gedrag voor cursors door deze regel toe te voegen aan de ODBC-gegevensbron in /etc/odbc.ini :

[SQLSERVER_SAMPLE]
.
.
.
OVERRIDE=65536

  1. Hernoem Oracle-tabel of -weergave

  2. Visual Studio:ContextSwitchDeadlock

  3. WinDeath op notifyDataSetChanged()

  4. Omgaan met primaire sleutelconflicten bij het invoegen van gegevens in SQLite