2017-03-01 360 views
0

我正在使用SQL Server 2014标准版并致力于应用程序的性能调优。重复查询需要很长时间

如果我多次执行相同的查询,执行时间每次都会增加,直到恢复到几乎正常。例如

SELECT * FROM dbo.Employee WHERE emp_name = 'sam' 

| first time | 9 sec | 
| 2nd time | 18 sec | 
| 3rd time | 29 sec | 
| 4th time | 10 sec | 

任何帮助将高度赞赏。

+1

您正在优化一个应用程序,所以我想你可以找到问题的原因。你有没有试图在SSMS中执行这个查询? –

+0

你的员工表有多大?我不会期望像这样的简单查询9秒钟。你可以尝试把一个索引放在emp_name列上吗? – Forklift

+0

如果它是一个实时数据库,其他进程可能访问同一个表,或者服务器可能忙于处理其他请求,从而改变执行时间。如果执行计划和成本相同但时间不同,情况就是如此。 – cloudsafe

回答

2

如果这是您的查询:

Select * 
from dbo.Employee 
where emp_name = 'sam'; 

那么你一定要在Employee(emp_name)索引或者emp_name是第一列中的复合索引。

在大多数情况下,这样的查询不应该花费数秒 - 除非你有很多Sam's,列特别宽,或者“table”实际上是一个视图。