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

Защо една заявка към базата данни върви бавно само в приложението?

Бих подозирал надушване на параметри.

Кешираният план за изпълнение, използван за връзката на вашето приложение, вероятно няма да може да се използва от вашата SSMS връзка поради различен set опции, така че ще генерира нов различен план.

Можете да извлечете кешираните планове за съхранената процедура, като използвате заявката по-долу. След това сравнете, за да видите дали са различни (напр. дали бавният прави търсене в индекс и търсене на отметки на място, където другият прави сканиране?)

Use YourDatabase;

SELECT *
FROM sys.dm_exec_cached_plans 
CROSS APPLY sys.dm_exec_sql_text(plan_handle) 
CROSS APPLY sys.dm_exec_query_plan(plan_handle) 
cross APPLY sys.dm_exec_plan_attributes(plan_handle) AS epa
where sys.dm_exec_sql_text.OBJECTID=object_id('YourProcName') 
         and attribute='set_options'


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. ModuleNotFoundError:Няма модул с име „pyodbc“ при импортиране на pyodbc в py скрипт

  2. Оптимизиране на TempDB:Избягване на тесни места и проблеми с производителността

  3. Съпоставяне в SQL Server

  4. Възможни ли са GUID сблъсъци?

  5. Кои са най-добрите инструменти за контрол на версиите на Sql Server