我们正在使用Sql server 2008 r2。我们有一张表有大约4个lac记录。我们在表上使用全文索引(列标题,名称,描述)。我们在该表上有一个搜索过程,我们根据该关键字从表中选择10条记录。当我们使用SQL Server Management Studio直接在数据库上搜索时,根据关键字和第一次属于该关键字的表中的记录,过程需要0到3秒。但是第二次搜索会使搜索速度超过3秒。例如,如果我们将“xxx”作为关键字,那么假设在表中我们有1000条记录,那么在显示记录时只需要0秒。但是如果我们从关键字“yyy”中搜索,那么如果我们有22000条记录与之匹配则需要2秒。我不知道这里会出现什么问题。即使我为搜索传递了多个关键字,搜索结果时间也会增加。我是否需要继续检查SQL Server设置?请帮忙。
任何建议都将受到赞赏。
答案 0 :(得分:0)
这很正常。产生的结果越多,产生输出所需的时间就越长。尝试对结果进行分页。如果你得到前100个结果1..100它会快得多。稍后您可以使用相同的查询,但101..200等。
另一个问题可能是RAM。您获得的结果越多,在返回之前保存它们所需的存储空间就越多。
答案 1 :(得分:0)
让我直截了当......
我说得对吗?
如果是这样,他们对我来说听起来都很正常。
答案 2 :(得分:0)
在RDBMS中,可以通过两种方式之一完成全文搜索。
如果您的查询有多个关键字,则在第一种方法中,每行必须搜索与关键字一样多的次数,而在第二种方法中,必须搜索每个关键字的索引。
如果查询需要布尔运算(必须包括,不得包括等),则必须通过合并多个结果集来构造结果行。
因此,对于多个关键字或布尔全文查询,应该自然地期望处理时间线性增加。