我在Sql Server 2008中玩了一點全文索引。我創建了索引,目錄並填充了它。 我的表有近400,000條記錄。我的全文索引被定義爲一個varchar(Max)列(讓我們現在稱它爲Text)。我正在執行以下查詢:Sql Server 2008全文優化
select * from MyTable where contains(Text,'house')。
該查詢在14秒內返回近20,000條記錄。我認爲這很慢。但是,當我執行這個查詢:從MyTable的
SELECT COUNT(*),其中包含(文字, '房子')
它僅需1秒鐘顯示結果。
我一直在尋找,並且據我所見,這兩個查詢的執行計劃是相同的。 爲什麼Sql Server花費太多時間來顯示第一個查詢結果?
我已經做了:
我買了一個SSD,並把兩者MDF和LDF該磁盤上。但是,當我執行第一個查詢時,我可以看到日誌和tmp數據庫正在我的硬盤(不在SSD中)創建。我的SSD是D:並且所有臨時文件都在C:上創建。
這是否需要這麼久,因爲sql需要這些文件來填充企業管理器結果網格?有什麼我可以做的優化數據庫?我真的需要查詢在不到2秒的時間內運行。
一切正在一臺機器上完成,還是通過網絡傳輸數據? – 2010-12-22 23:16:29
還有一個問題:那14秒鐘的數字是完成將結果集返回給SSMS窗口所需的時間,還是開始顯示值的時間? – 2010-12-22 23:18:00
完成將結果集返回給我的SSMS所需的時間 – 2010-12-22 23:41:15