2017-03-01 359 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」實際上是一個視圖。