2010-04-23 61 views
2

我們編寫了一個存儲過程,一次從DB中選擇一條記錄。使用相同的存儲過程來讀取2000條記錄需要4秒鐘。有什麼辦法可以優化它嗎? (如單個存儲過程的2000條記錄)如何通過存儲過程來減少插入單條記錄的時間?

這裏是我的存儲過程:

set ANSI_NULLS ON 
set QUOTED_IDENTIFIER ON 
go 

ALTER PROCEDURE [dbo].[GetItemValue](@ItemName VARCHAR(200),@TimeStamp as DATETIME) 

AS 

select * from EIItemData 

where [email protected] AND [email protected] 

誰能告訴我怎麼可以這個存儲過程可以優化讀取,而不是每個項目調用一次2000次的記錄。

+0

向我們展示2000年電話會議的前5個看起來是什麼樣的,我們可以幫助您更好地完成這一任務。 – Jaxidian 2010-04-23 16:12:10

+3

發佈存儲過程 - 聽起來像OO在基於SET的世界中思考... – 2010-04-23 16:12:12

回答

0

考慮到SQL服務器(以及所有RDBMS)工作最好與基於集合的操作。

考慮更改您的調用代碼(客戶端)以期望一組記錄讀取。

請發佈您的存儲過程,閱讀或插入,所以我們可以幫助找到最佳解決方案!在您的SQL

0

看,我會說,打起來有以下幾點:

  1. 不要使用select *語法,只是帶回你需要列。
  2. 我猜你沒有在where子句中的列的索引。考慮添加它們。
  3. 如果你需要2000件物品,爲什麼不把它們放在一個鏡頭中。
相關問題