第一次运行时全文查询很慢

Liz*_*a24 0 sql-server full-text-search sql-server-2012

我有大小为 65GB 和 600 万行的 SQL Server 数据库。我们在表格中有文章,文章的平均大小为 450 字。当我第一次运行查询时,需要 3-10 秒才能显示结果。再次运行相同的查询时,不到 1 秒(非常快)。

请让我知道如何优化它,以便我可以在不到 1 秒的时间内获得查询。

查询示例:

SELECT top 1 * FROM tblContent WHERE CONTAINS(pagecontent,'"increasing the likelihood"')
Run Code Online (Sandbox Code Playgroud)

这是服务器(VPS)的详细信息:

  • 操作系统:Windows Server 2012
  • SQL Server 2012 企业版(试用版)
  • 处理器:设置为 0
  • 内存:设置为0
  • 内存:4GB
  • 处理器:QUAD 4Ghz

Pau*_*ite 5

当我第一次运行查询时,需要 3-10 秒才能显示结果。再次运行相同的查询时,不到 1 秒(非常快)

第二次运行查询时,关系表的数据和索引页很可能来自 SQL Server 的缓存,而不是从磁盘读入。同样,处理的全文部分也将受益于缓存。

正如对该问题的评论所表明的那样,对于管理 65GB 数据库的 SQL Server 来说,4GB 似乎不是很多内存。更多的物理内存将允许 SQL Server 缓存更大比例的关系表和全文索引数据。

您需要的确切数量取决于您的工作负载的性质以及您的用户期望的响应时间。我认为即使适度扩展内存(比如 8 或 16GB)也会导致非常显着的性能提升,以及更可预测的整体响应时间。

您还需要为 SQL Server 配置最大内存,以确保 Windows 也有足够的内存。有关内存(和其他重要细节)的更多信息,请参阅以下链接:

我的 SQL Server 实际需要多少内存?

SQL Server 故障排除:意外 DBA 指南(免费电子书)