Sqlserver
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Sqlserver

Tại sao một truy vấn cơ sở dữ liệu chỉ chạy chậm trong ứng dụng?

Tôi sẽ nghi ngờ việc đánh hơi tham số.

Kế hoạch thực thi đã lưu trong bộ nhớ cache được sử dụng cho kết nối của ứng dụng của bạn có thể sẽ không sử dụng được bởi kết nối SSMS của bạn do set khác nhau các tùy chọn để nó sẽ tạo ra một kế hoạch mới khác.

Bạn có thể truy xuất các kế hoạch đã lưu trong bộ nhớ cache cho quy trình được lưu trữ bằng cách sử dụng truy vấn bên dưới. Sau đó, so sánh để xem chúng có khác nhau không (ví dụ:cái chậm đang tìm kiếm chỉ mục và tra cứu dấu trang ở một nơi mà cái kia quét?)

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. Cài đặt ngôn ngữ có thể ảnh hưởng đến kết quả FORMAT () của bạn như thế nào trong SQL Server (Ví dụ T-SQL)

  2. Kết nối SQL Server với nút js

  3. Cách gọi dịch vụ web từ thủ tục được lưu trữ trên SQL Server

  4. Trong tsql, một câu lệnh Chèn với một câu lệnh Chọn có an toàn về mặt đồng thời không?

  5. Tham gia SQL với phạm vi ngày?