2008-09-22 37 views

回答

3

首先,嘗試使用SQL事件探查器在數據庫中爲幾個小時的正常工作負載生成活動的.trc文件。然後使用SQL Server Management Studio工具菜單上的「數據庫引擎優化顧問」來查看它是否建議任何其他索引,組合索引或覆蓋可能有益的索引。

我從來沒有使用查詢提示,主要與數百萬行數據庫一起工作。它們有時會對性能產生負面影響。

2

索引提示僅用於查詢涉及連接表的位置,以及用於連接另一個表的列與多個索引匹配的位置。在這種情況下,數據庫引擎可能會選擇使用一個索引來進行連接,並且從調查中可以知道,如果它使用其他索引,則查詢的性能會更好。在這種情況下,您可以提供索引提示,告訴數據庫引擎使用哪個索引。

1

我的經驗是,有時你可以更多地瞭解你的數據集,然後SQL Server就可以。在這種情況下,您應該使用查詢提示。換句話說:你可以幫助優化器做出決定。

我曾經構建過一個數據倉庫,SQL Server沒有在複雜的查詢中使用最佳索引。通過在查詢中提供索引提示,我設法使查詢速度提高了大約100倍。

只有在分析查詢計劃後才使用它們。如果您認爲使用其他索引或按不同順序使用它們時,查詢可以運行得更快,請爲服務器提供提示。

3

,我相信每個人都在這裏指向的關鍵點是非常慎重的考慮索引提示的使用可以提高查詢的性能,當且僅當,多個索引存在可用於中檢索數據,並且如果SQL Server沒有使用正確的。

根據我的經驗,我發現,這是不是很常見於需要索引提示,我相信我也許有2-3查詢今天用他們正在使用的正確....創建索引和數據庫的優化需要通往演奏數據庫的途徑大部分都在這裏。