技术开发 频道

SQL Server 2005全文检索技术


【IT168 技术文档】

    5. 优化SQL Server 2005的全文检索
 

    对于一个企业级的全文检索系统,尤其是笔者上文所设计的多数据中心、异构数据源的全文检索系统,如何在运维过程不断优化系统的执行效率也是很有挑战的工作。由于全文检索过程中不仅涉及大量的IO操作,也存在执行过程中频繁的CPU计算工作,因此这里笔者提供几个关键指标,用于粗略判断系统的关键性能瓶颈。 

    5.1 CPU 

    如果由 MSFTESQL 服务和 SQL Server 所占用的 CPU 使用率接近百分之百,则 CPU 成为瓶颈。
 

Catalog Counter
Processor % Processor Time
% Privileged Time
System Processor Queue Length
Context Switches/sec

表5:判断CPU瓶颈的主要指标


    下面对于一台单纯进行全文检索的服务器而言,是一个典型的内存瓶颈结果。

图10:CPU成为系统瓶颈

    根据全文检索的应用经验,处理上主要可以采取如下办法:

    (1)减少应用的并发。

    (2)对于大量用户频繁访问的固定内容的全文检索,可以通过Reporting Service把结果内容固定下来,减少用户普遍关心但是结果固定的全文检索查询。

    (3)通过SQL Server Cluster,借助Scale out或者Scale up分担负载。

    5.2 内存

    由于全文检索的过程需要在内容临时存放大量的中间结果,因此内存也很容易成为应用的瓶颈。
 

Catalog Counter
Memory Available MBytes
Page Reads/sec
Pages/sec
Cache Bytes
Cache Faults/sec
Server Pool Nonpaged Failures
Pool Nonpaged Peak
Cache MDL Read Hits %

表6:判断内存瓶颈的主要指标

    下面对于一台单纯进行全文检索的服务器而言,是一个典型的内存瓶颈结果。

图11:内存成为系统瓶颈

    根据全文检索的应用经验,处理上主要可以采取如下办法: 

    (1)减少应用的并发。 

    (2)配置SQL Job,把长时间挂起或者工作时间没有必要的过大查询的session清理。 

    (3)优化检索语句。 

    (4)尽量精确限制条件,可能的话尽量在尺寸较小的列上定义全文检索索引。 

    (5)适当增加内存。 

    (6)根据用户需要,使用TOP_<N>_BY_RANK,而不是把所有符合条件的内容全部提取。

0
相关文章