--> Title : Sql2005 全文索引(四)
--> Author : wufeng4552
--> Date : 2009-10-14
實戰篇(續)
(6)填充全文索引
填充全文索引实质上就是更新全文索引,其目的是让全文索引可能够反映最新的数据表内容。
(6.1)填充全文索引的方式
填充全文索引一共有三种方式:
完全填充:完全填充方式通常发生在首次填充全文目录或全文索引时,在前一节中所说到的“启用全文索引”时,就已经对全文索引进行了一次完全填充,以后就可以使用基于更改跟踪的填充和基于增量时间戳的填充来维护全文索引。
基于更改跟踪方式的填充:SQL Server会记录设置了全文索引的数据表中修改的行,这些记录存储在日志中,在某个适当时机时将这些更改填入到全文索引中。
基于增量时间戳方式的填充:也就是增量填充,在全文索引中更新上次填充之后更新的行。增量填充要求索引表中必须有timestamp数据类型的字段,如果没有该类型的字段,则无法执行增量填充,系统将会以完全填充的方式来取代增量填充方式进行填充
(6.2)填充全文索引
由于填充全文索引有三种不同的方式,所以填充全文索引的方法也不相同。如果要以完全填充或增量填充方式来填充全文索引,则只要右击全文索引所在的数据表,在弹出的快捷菜单里选择【全文索引】--【启动完全填充】或【启动增量填充】选项即可 如图6.1所示
6.1填充全文索引
更改跟踪方式填充全文索引分为手动和自动两种方法,在默认情况下是自动填充,如果要更改为手动方式,可以右击全文索引所在的数据表,在弹出的快捷菜单里选择【全文索引】--【手动跟踪更改】选项,如图6.1所示
选择完毕之后,SQL Server会自动跟踪数据表中的数据更改情况,但并不将其更新到全文索引中,只有在需要将这些更新反应到全文索引上时,右击全文索引所在的数据表,在弹出的快捷菜单里选择【全文索引】--【应用跟踪的更改】选项后,才会将更新反应到全文索引上
如果在图6.1所示界面里选择了【自动跟踪更改】选项,则由SQL Server自动将记录的数据表的更改更新到全文索引中,不再需要人工进行填充。
如果在数据库中有多个数据表创建了全文索引,可以使用重新生成索引目录的方法将所有的全文索引进行完全填充,其方法如下:
(1)在【对象资源管理器】窗口里展开树形目录,定位到【服务器】--【数据库】--【Northwind】--【存储】--【全文目录】。
(2)右击【全文目录】,在弹出的快捷菜单中选择【全部重新生成】选项。
(3)在弹出的【重新生成所有全文目录】对话框里单击【确定】按钮完成操作。
(6.3)定时填充全文索引
在SQL Server 2005中,可以为填充全文索引设置计划,让系统自动定时填充全文索引,其方法如下:
(1)右击全文索引所在的数据表,在弹出的快捷菜单里选择【全文索引】--【属性】来查看全文索引的设置,如图5.8所示,在该图中选择【计划】选项
(2)弹出如图6.2所示全文索引填充计划对话框,在该对话框中单击【新建】按钮
6.2全文索引填充计划
(3)弹出如图6.3所示的【新建全文索引表计划】对话框
6.3【新建全文索引表计划】
在【名称】文本框里可以输入该计划名称。
在【计划类型】下拉列表框里,可选项有“SQL Server代理启动时自动启动”:也就是在SQL Server代理启动时自动填充全文索引;“CPU空闲时启动”:也就是当CPU空闲时填充全文索引;“执行一次”:在指定时间时填充全文索引,只填充一次;“重复执行”:可以设定多次填充全文索引的方式。
如果选中【已启用】复选框,则启用该填充全文索引的计划。
在【执行一次】区域里,可以设置计划类型为“执行一次”的执行时间,在到达该时间时,自动填充全文索引。
在【频率】区域里,可以设置计划类型为“重复执行”的执行频率。在【执行】下拉列表框里可选择项为“每天”、“每周”和“每月”,分别用于指定每天、每周和每月执行填充计划的频率。
在【持续时间】区域里可以设置该计划的开始日期与结束日期,其中结束日期可以设置为无结束日期,也就是永远执行下去
(4)设置完毕后单击【确定】按钮完成计划设计,返回如图6.4所示对话框
6.4全文索引填充计划对话框
(5)在如图6.4所示对话框里,可以选择全文索引填充计划所要执行的填充方式,设置完毕后单击【确定】按钮完成操作。
注意:如果单击【确定】按钮之后出现如图6.5所示的失败对话框,请先安装SQL Server 2005 最新補丁
6.5添加计划失败对话框
使用类似的方法也可以定时填充全文目录:
(1)右击全文目录名,在弹出的快捷菜单里选择【属性】选项。
(2)在弹出的如图6.1所示的【全文目录属性】对话框里选择【填充计划】选项。
(3)弹出与6.2所示的填充计划对话框,其添加计划的步骤与创建全文索引的填充计划几乎相同,在此就不再赘述了。