【发布时间】:2015-01-22 16:32:09
【问题描述】:
我遇到了 SQL Server 的全文搜索运行速度太慢的问题。
运行全文搜索和 JOIN 查询需要一分钟多的时间(见下文)
select * from
(SELECT
(row_number() over ( order by b.BookKey)) as RowNumber,
p.PublishCity,
b.BookKey,
b.BookTitle
from
Books b (nolock)
inner join PublishedRegions p (nolock)
on b.BookKey = p.BookKey
where
contains(p.PublishCity, 'France') or
contains(b.BookTitle, 'France')
) as t1
where
RowNumber between 200 and 210
- 作为参考,Books 表和 PublishedRegions 表中大约有 500k 行
- 我无法将 PublishedCity 放入 Books 表中,因为 SQL Server 只允许您为每个表定义一个全文索引。
- 注意:RowNumber 200 到 210 之间的最后一部分是任意插入的。我可以选择任何一组行,但结果仍然需要很长时间
- Books 表在 BookName NVARCHAR(255) 上有一个全文索引
- PublishedRegions 在 PublishedCity NVARCHAR(255) 上有一个全文索引。
任何想法如何提高这个性能?
谢谢!
【问题讨论】:
-
你使用的是哪个版本的Sql Server
标签: sql asp.net .net sql-server performance