sql >> Databasteknik >  >> RDS >> Sqlserver

Varför går en databasfråga bara långsamt i applikationen?

Jag skulle misstänka parametersnuffning.

Den cachade körningsplanen som används för din applikations anslutning kommer förmodligen inte att kunna användas av din SSMS-anslutning på grund av annan set alternativ så att det genererar en ny annan plan.

Du kan hämta de cachade planerna för den lagrade proceduren genom att använda frågan nedan. Jämför sedan för att se om de är olika (t.ex. gör den långsamma indexsökningar och bokmärkessökningar på en plats där den andra gör en skanning?)

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. Lägga till filtyper som ska kännas igen av Files.probeContentType(new File(.ttf).toPath());

  2. Postgres DB Size Command

  3. Segmenteringsfel på MySQL2 / Ruby 1.9.3 / Rails 3.2

  4. Databasfel:Det finns ingen rad vid position 0