我使用asp.net與SQL Server 2008 SP2SQL Server 2008全文搜索 - 慢SLI
我有一個表啓用全文搜索。
我的硬件是:2GHZ四核,4GB RAM,SAS硬盤。
該表具有圍繞5萬條記錄,其結構是:
Pages table:
ID (INT)
GroupID (INT)
GroupStart (bit)
Col1 varchar(900)
Col2 nvarchar(450)
Col3 nvarchar(450)
Col4 nvarchar(450)
Col5 nvarchar(450)
我有在主鍵ID的FTS索引。
我使用下面的查詢搜索表:
SELECT * FROM (
SELECT * , ROW_NUMBER() OVER( ORDER BY KEY_TBL.Rank DESC ) AS RowNumber , COUNT(*) OVER() as TotalRows
FROM Pages p
INNER JOIN
CONTAINSTABLE(Pages, *,N' FORMSOF (INFLECTIONAL, movies)') AS KEY_TBL
ON p.ID = KEY_TBL.[KEY]
WHERE (p.GroupID IS NULL OR p.GroupStart = 1)
) LS
WHERE RowNumber BETWEEN 0 AND 10
ORDER BY RowNumber ASC;
的查詢接受1S完成,如果總行約爲500
,並採取5S來完成,如果總行數約爲10,000。
並需要60s才能完成,如果總行數大約爲100,000。
任何想法爲什麼查詢需要這麼久?
在我的查詢,sql server中是否有問題或者是硬件問題?
你有沒有看查詢計劃?什麼是最大的打擊?其他想法:如果您拿走COUNT(*)OVER()'會發生什麼情況;此外,CONTAINSTABLE只花了多長時間(使用ROW_NUMBER) - 我想知道連接是否很貴。很多變數 - 很難給出完整的答案... – 2010-11-02 13:41:26
thx爲答案。我剛剛查過那個。刪除COUNT(*)OVER()會將60年代(100,000個結果)查詢刪除爲3秒! – RuSh 2010-11-02 13:44:08
那麼接下來我會做什麼? count(*)over()佔用大部分時間,有什麼辦法可以改善它? – RuSh 2010-11-02 13:53:57