如果有全文索引可用,为什么FREETEXTTABLE会扫描整个表?

时间:2016-08-21 13:18:11

标签: sql-server full-text-search

有一个简单的城市表

CREATE TABLE [dbo].[cities](
    [id] [numeric](6, 0) NOT NULL,
    [cityname] [varchar](48) NOT NULL,
)

以及不仅仅为城市名称编制索引的全文目录:

该表有6259行。

我有一个问题:

SELECT * FROM FREETEXTTABLE([cities],[cityname],
N'Hello, I am looking for cities inside this text,
my house is not -far from London  PJ-')

结果包含11行,查询执行大约需要1-2秒。 根据执行计划,在索引中扫描了6092行。

如果有索引,为什么扫描这么多行?

execution plan

我使用SQL Server 2012。

更新:

表城市没有特殊索引。来自object explorer的唯一索引如下:

Create TABLE [dbo].[cities] ADD  CONSTRAINT [xpkruianobec] PRIMARY KEY CLUSTERED 
(
    [id] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, IGNORE_DUP_KEY = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, FILLFACTOR = 90) ON [PRIMARY]
GO

0 个答案:

没有答案