Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

Надстроих ODBC драйвера на SQL Server и производителността беше отрицателно засегната. Какво мога да направя?

Във версия 1.7.16 ODBC драйверът на Easysoft SQL Server се промени от използване на клиентски курсор на сървърен курсор, когато поведението на приложението предполагаше, че то се нуждае само от подмножество от данни в резултат от заявка. С клиентски курсор базата данни изпраща пълния набор от резултати в един отговор до драйвера, когато отговаря на заявка. Поведението 1.7.16+ също имитира как се държи SQL Native Client на Microsoft в това отношение.

Отмяна на това поведение беше добавена във версия 1.8.10, защото ако приложението наистина иска целия набор от резултати, използването на сървърен курсор има последици за производителността, тъй като сървърните курсори са по-бавни.

За да се върнете към предишното поведение на курсорите, добавете това OVERRIDE ред към вашия източник на ODBC данни:

[SQLSERVER_SAMPLE]
.
.
.
OVERRIDE=65536
      

ODBC източници на данни обикновено се съхраняват в /etc/odbc.ini .


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Разберете към кой дял ще бъде съпоставена дадена стойност в SQL Server (T-SQL)

  2. Съвети за производителност на SQL Server от Брент Озар и Пинал Дейв

  3. pyodbc - много бавна скорост на масово вмъкване

  4. Връщане на процент от набор от резултати в SQL Server

  5. Защо не мога да използвам псевдоним в колона count(*) и да го позовавам в клауза за име?