2013-10-28 26 views
0

我有一個SQL Server 2008 R2數據庫,其中有一個包含多個列的表。 DateTime字段中的這些列之一(不是主鍵)。在更新語句中未使用DateTime索引

我正在運行Update語句,並且where子句中使用的字段是此datetime列。

問題是,雖然我在這個日期時間字段有一個非聚集索引,它似乎並沒有被使用,性能也很慢。我通常有成千上萬的這些聲明是連續執行的,我懷疑這個日期是問題所在。

任何想法,我可以解決這個問題?

+0

如何**選擇**是「DateTime」列,例如它會從你的表格中選擇多少行,總共有多少行?另外:無論如何,如果需要更新列值,那麼更新將需要進入底層數據頁面 - 因此無論如何它都不能單獨使用索引...... –

+0

「我通常會有數千個這樣的語句連續執行」 - 聽起來像一個更大的問題 - 是否有一個原因,他們不能被寫爲一個單一的語句,讓SQL Server優化它作爲一個單一的基於集的更新? –

+0

不幸的是,他們不能合併,因爲在兩者之間還有一些需要運行的其他語句,而且每次都不一樣。 – user1365247

回答

0

使用MS SQL Management Studio顯示查詢的執行計劃! 你會看到索引是否被使用!