Database
 sql >> Baza danych >  >> RDS >> Database

Obejście problemu:Kursory nie są obsługiwane w tabeli, która ma klastrowany indeks magazynu kolumn

W wersji 1.7.16 sterownik ODBC Easysoft SQL Server zmienił się z używania kursora klienta na kursor serwera, gdy zachowanie aplikacji sugerowało, że potrzebuje tylko podzbioru danych w wyniku zapytania. Za pomocą kursora klienta baza danych wysyła pełny zestaw wyników w pojedynczej odpowiedzi do sterownika podczas odpowiadania na zapytanie. Zachowanie w wersji 1.7.16+ naśladuje również zachowanie SQL Native Client firmy Microsoft w tym zakresie.

Zastąpienie tego zachowania zostało dodane w wersji 1.8.10, ponieważ jeśli aplikacja rzeczywiście chce otrzymać cały zestaw wyników, użycie kursora serwera ma wpływ na wydajność, ponieważ kursory serwera są wolniejsze. Inną konsekwencją zmiany w wersji 1.7.16 jest problem, który został nam zgłoszony przez klienta, który używał Cognos w systemie Linux z SQL Server. Podczas próby zapytania tabeli z klastrowanymi indeksami magazynu kolumn klient otrzymał błąd:

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

ponieważ kursory serwera nie są obsługiwane podczas korzystania z tej funkcji. Obejściem było przywrócenie poprzedniego zachowania dla kursorów przez dodanie tego wiersza do źródła danych ODBC w /etc/odbc.ini :

[SQLSERVER_SAMPLE]
.
.
.
OVERRIDE=65536

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Łączenie F# z Salesforce.com

  2. 9 najlepszych praktyk dotyczących pisania zapytań SQL

  3. Statystyka szarpnięcia kolanem:SOS_SCHEDULER_YIELD

  4. Podzbiór bazy danych – jak to zrobić w IRI Voracity

  5. Operator SQL nie jest równy (!=) dla początkujących