我們在我們的數據庫中有表Site
和Content
。全站搜索的多站點CMS和SQL Server查詢優化器
每個網站由不同的客戶端運營,每個網站都有自己的內容。
在網站的前端,我們提供了一個搜索框,它在內容表上使用全文/自由文本搜索來返回結果,但每個網站只能從其自身返回結果,而不是從數據庫中的其他網站返回結果。
SQL Server查詢優化器在此表現不佳。如果它優化了內容很少的網站的查詢,那麼查詢會對導致超時的大量內容的網站表現可怕。
據我們瞭解,我們可以添加OPTION(RECOMPILE)
來查詢,以解決這個問題的結束,但我的問題是這樣的......
它會更好,以創建緩存表中的每個網站,這樣的內容對每個網站可以定期緩存,並讓搜索存儲過程尋找一個緩存表,而不是使用參數?
只有在添加/更改內容時,緩存纔會更新/刷新。
我的想法是,這將....
a)減少表的大小被搜索到只包含記錄正確的站點
二)允許全文搜索,生成爲每個站點
三)允許查詢優化器緩存優化的查詢每個站點獨立
這是正確的內容更準確的指標?我以這種方式做對嗎?
請您提供一些關於這些表格的結構和內容的更多細節? – swasheck
另外,由於FTS引擎已更改,請提供您正在使用的SQL Server版本。 – swasheck
SQL Server 2008網絡版。 「網站」只是一個設置和識別表格,用於識別給定的網站並保存它的配置。 'Content'具有ID,圖像,標題,TeaserText,BodyText,CategoryID – Hades