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

Защо заявката за Microsoft SQL Server 2012 отнема минути в сравнение с JDBC 4.0, но секунди в Management Studio?

Адаптивното буфериране е добър отговор. Бих препоръчал също да проверите SET на връзките опции чрез SQL Server Profiler.

Когато стартирате проследяване, уверете се, че ExistingConnections е избран. Сравнете SPID от JDBC връзка и SSMS връзка. ARITHABORT идва на ум като такъв, който видях да причинява разлика в производителността между SSMS и JDBC драйвер. Microsoft го споменава накратко тук:http://msdn.microsoft.com/en-us/library/ms190306.aspx. Информация за Stack Exchange тук:https://dba.stackexchange.com/questions/9840/why-would-set-arithabort-on-dramatically-speed-up-a-query

В Oracle видях огромно въздействие, като играя с setFetchSize метод на Statement / PreparedStatement обект. Очевидно драйверът на SQL Server не поддържа този метод. Въпреки това, има вътрешен метод в драйвера за това. Вижте Задаване на предварително извличане на ред по подразбиране в SQL Server с помощта на JDBC драйвер за подробности.

Също така, какво правите във вашия while (rs.next()) цикъл? Опитайте да не правите нищо друго, освен да четете колона, като rs.getInt(1) . Вижте какво се случва. Ако лети, това предполага, че тесното място е в предишната ви обработка на набора от резултати. Ако все още е бавен, проблемът трябва да е в драйвера или базата данни.

Можете да използвате SQL Server Profiler, за да сравните изпълненията, когато идват чрез JDBC и докато го изпълнявате чрез SSMS. Сравнете CPU, четене, запис и продължителност. Ако са различни, тогава планът за изпълнение вероятно е различен, което ме насочва към първото нещо, което споменах:SET опции.



  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 2008

  2. Как мога да видя всички разрешени специални знаци в полето varchar или char в SQL Server?

  3. SQUARE() Примери в SQL Server

  4. Използване на резултата от израз (например извикване на функция) в списък с параметри на запомнени процедури?

  5. Пълно ръководство за коригиране на грешка в SQL база данни 5243