sql >> Database teknologi >  >> RDS >> Sqlserver

Hvorfor går en databaseforespørgsel kun langsomt i applikationen?

Jeg vil have mistanke om parametersniffing.

Den cachelagrede eksekveringsplan, der bruges til din applikations forbindelse, vil sandsynligvis ikke kunne bruges af din SSMS-forbindelse på grund af et andet set muligheder, så det vil generere en ny anderledes plan.

Du kan hente de cachelagrede planer for den lagrede procedure ved at bruge forespørgslen nedenfor. Sammenlign derefter for at se, om de er forskellige (f.eks. laver den langsomme indekssøgninger og bogmærkeopslag et sted, hvor den anden laver en scanning?)

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. hvordan man importerer datafiler fra s3 til postgresql rds

  2. Sådan aktiveres SSL i PostgreSQL

  3. Brug mycli og lær MariaDB/MySQL komfortabelt i en terminal!

  4. Henter data fra JDBC-databasen til Jtable