2013-06-05 52 views
0

我想基於主鍵更新我的表中的一列。SQL更新如何使用主鍵提高性能

我的查詢基本上是

update table 
set COL = 'this' 
where PrimKey = 1234; 

但這種查詢花費將近一分鐘時,我有我的數據庫中超過200萬行跑,我只能有一個主鍵。

爲什麼這需要這麼長時間,或者我該如何提高自己的表現?

PrimKey varchar(150) PrimaryKey 
COL varchar(150) 
+4

您可以添加表定義嗎?什麼是RDBMS – gbn

+0

你正在更新的'COL'的數據類型是什麼?除了gbn的請求,你可以發佈你正在運行的完整查詢嗎? – Tony

+1

哦,還有查詢計劃(請用XML) – gbn

回答

3

隨機猜測(無表定義)的商品說明的是,主鍵數據類型和恆定的值具有需要轉換的失配:這意味着該索引將不被使用。

因此,它掃描表中的每一行

+0

看來你的猜測是正確的。 PK似乎是一個varchar(VERY_BIG),而文字比較是一個int。 – wildplasser