2010-05-05 51 views
4

由於我們不能相信我們的客戶更新SQL服務器的索引統計等,我們在過去不得不使用index hints。 (由於我們的一些客戶仍然在Sql Server 2000上,我們也不能依賴更高版本的Sql Server中更好的查詢優化器)。如何讓LinqToSql將「索引提示」傳遞給sql server?

那麼如何在使用LinqToSql構建查詢而不是原始Sql時傳遞索引提示?

+1

爲什麼他們需要保持統計數據更新?您應該讓他們進行自動更新 - 並且可以在每個週末輕鬆運行更新腳本。 20年來,我從未遇到過統計更新的問題。 – TomTom 2010-05-05 15:45:06

+0

我必須同意@TomTom在這一個...這不是真正的索引提示打算解決的問題,我想你會得到更好的里程強迫統計更新自動更新(默認情況下啓用),或者如果您擔心它們會關閉自動更新,則可以通過自己的後臺進程運行「UPDATE STATISTICS」或「sp_updatestats」。 – Aaronaught 2010-05-05 15:54:18

+0

@Tom,系統需要運行24 * 7,所以「更新腳本」等是很難達成一致的,我不知道安裝系統的人是否明白他們是什麼。數據統計出來的問題可能只是一個「舊的故事」,但是當我問到爲什麼使用「索引提示」時,我就會被告知。我可能不使用任何索引提示而逃脫,但我正在努力掩蓋我的基地兔子。 – 2010-05-05 15:56:26

回答

1

這不是被支持的東西,你只有在查詢上的選項是設置事務隔離級別,但是這對這個問題沒有幫助。

我會推薦兩個行動方案之一,這是你真的需要做的事情。

  1. 你可以寫一個存儲過程,你的過程中對此進行處理並使用LINQ叫它....

  2. 移動距離的LINQ to SQL

個人而言,如果這真的很有必要我會推薦選項二。如果實際上您必須對數據庫調用採取這種級別的操作/控制,那麼自動生成的SQL在稍後的點上也會對您造成問題。

0

不幸的是,這是不可能的。你唯一能做的就是影響事務隔離級別。看到這個here的例子。