簡體   English   中英

加快更新SQL查詢

[英]Speeding Up Update SQL Query

我在包含大約100,000條記錄的SQL 2000表上使用以下SQL。 非常慢。

我怎樣才能加快速度?

UPDATE [MASTER] 
   SET [STATUS] = 1 
 WHERE [CODE] IN (" + *customerCodes* + ")";

customerCodes是從UI傳遞的,用戶可以在其中從網格檢查客戶。

從改進此查詢開始,最明顯的地方是查看您在[MASTER]表上的索引(順便說一句,這不是表的好名字,我建議將其重命名為不太通用的名稱,因為SQL Server系統數據庫稱為master)。

您要確保[CODE]上有索引。

從那里開始,下一步是開始查看查詢執行計划。

在SQL Server Management Studio(或SQL 2000上的查詢分析器)中,可以查看查詢執行計划。 我沒有方便的Query Analyzer副本,所以只能說在SSMS中,通過選擇Query-> Include Actual Execution Plan查看執行計划。 下次運行查詢時,您將能夠查看查詢的執行方式。 您將要確保自己始終在查詢中命中索引,並且不執行諸如表掃描之類的低性能操作。

查詢執行計划要注意的一件事是,它將對大型數據集顯示與小型數據集不同的執行計划,因此要調整大型查詢,您需要使用大量測試數據。

可能值得嘗試的最后一件事是將您的customerCodes變量(我猜是這樣的:“ 2、6、10、5”,即以逗號分隔的ID列表)轉換為表值的結果功能。 我不確定這是否會使查詢優化器更多地使用,但是可能會。

好吧,最簡單的方法是確保“ where”子句使用被索引的字段。 (因此,這意味着您需要更改界面,以便可以獲取索引字段(通常是ID)而不是當前正在執行的操作)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM