登陆注册
19122000000020

第20章 SQL Server的全文搜索(7)

(6)增量填充

只调整自上次填充后添加、删除或修改的行的索引项。该功能要求索引表包含timestamp数据类型的列。如果表不包含timestamp列,则只能执行完全填充或更改跟踪填充。对不包含timestamp列的表请求进行增量填充将导致完全填充操作。

如果为一个此前未与目录相关联的表定义新的全文索引,则对目录的下一个增量填充请求将为该表生成所有的项。如果自上次填充后更改了表的任何元数据,增量填充请求将作为完全填充执行。这包括更改列、索引或全文索引定义。

4.9.3优化的细节

调理SQL Server全文索引是一件细致的事情。需要配置SQL Server和全文目录,通过跨多个硬盘驱动器进行负载平衡来获得最优的磁盘I/O性能,还要做好硬件配置、服务器系统配置等。下面列出一些可以帮助优化的方案,供读者参考。

(1)硬件优化

服务器有多个CPU,内存越大越好,一般是4GB左右。使用具有多个通道的多磁盘控制器,或具有多通道的单磁盘控制器。磁盘I/O子系统使用RAID0,RAID0+1或RAID5。

(2)系统配置

增大pagefile.sys文件的大小,将其设置为物理内存的2倍。同时pagefile.sys文件需要防止在它们自己的驱动器上,最好在单独的控制器或至少是与共享控制器分离的单独通道上。

(3)SQL Server的配置

在大型表中进行完全填充以后,考虑将变更跟踪和后台更新索引与增量索引一起使用。

(4)全文索引和目录的设置

全文索引或全文目录填充应该在系统活动较少的时候进行,通常在数据库维护窗口完成。

将全文目录文件放置在它自己的磁盘控制器上,或具有多个通道的单个磁盘控制器的单独通道中。将数据库文件放置在与全文目录文件不同的独立的磁盘控制器上,或有多个通道的单个磁盘控制器的单独通道中。

(5)应用程序优化

应用程序的优化,并不是三言两语可以说清楚的。但其思想是:在开发的过程中实现优化,而不是开发完成之后再专门去做优化。美国的一个软件工程师说“性能即过程”,这是完全正确的。具体在开发的时候,要注意:少做字符串联接,注意关闭数据库联接,减少网络往返等。在数据量特别大的时候,要根据实际需要去提取用户要求的结果,而不是一次显示出所有的结果。此外,应用程序的缓存也是极为重要的,可以显着改善用户体验。可以异步操作的尽量异步操作。

4.9.4索引优化

1.索引优化的概念

索引优化是数据库优化的一部分。可以通过分析SQL语句执行和分析系统性能的方法来实施。但是,这里有一种专门用于实现索引优化的工具——索引优化向导。

使用索引优化向导可以为SQL Server2000数据库选择和创建优化的索引集和统计信息集,而不需要深入了解SQL Server的数据库结构、工作负荷或内部原理。

为了生成适用的优化索引集建议,该向导需要工作负荷。工作负荷包含一个保存在文件或表中的SQL脚本或SQL事件探查器跟踪,其中有SQL批处理或远程过程调用(RPC)事件类,以及EventClass和Text数据列。

2.索引优化向导的作用

索引优化向导可以做的工作有以下几方面。

①根据给定的工作负荷,通过使用查询优化器分析该工作负荷中的查询,为数据库推荐最佳索引组合。

②分析所建议的更改将会产生的影响,包括索引的使用,查询在表之间的分布,以及查询在工作负荷中的性能。

③推荐为执行一个小型的问题查询集而对数据库进行优化的方法。

向导生成的建议由SQL语句构成,执行这些语句可以创建更有效的新索引,如果需要,还可以除去无效的现有索引。建议在支持索引视图的平台上使用索引视图。索引优化向导提出建议后,该建议可以:立即执行;或安排在以后通过创建执行SQL脚本的SQL Server作业执行;或保存到SQL脚本中,用户在将来某个时候或在另一个服务器上手工执行。

注意:对于当前选定的数据库中不存在的跨数据库查询所引用的表、系统表,以及PRIMARY KEY约束和唯一索引,索引优化向导不推荐索引。

3.索引优化向导的注意事项

索引优化向导的主要注意事项有以下几个方面。

索引优化向导在一个工作负荷中最多可以包含32767个可优化查询。负荷中超出此数目的查询将不被考虑。此外,带有被引用的标识符的查询将不予优化。

索引优化向导通过数据采样搜集统计信息。因此,如果连续在同一个工作负荷上执行该向导,则每次推荐的索引可能各不相同,执行推荐索引后的改进效果也可能各不相同。

索引优化向导不能用于在SQL Server6.5版或更早版本的数据库上选择或创建索引和统计信息。

当把SQL脚本保存到可用空间不足的磁盘上时,索引优化向导并不给出错误。

在分析过程中,索引优化向导会消耗相当多的CPU及内存资源。最好在生产服务器的测试版上执行优化,而不要在生产服务器上执行。此外,最好在另一台计算机上而非运行SQL Server实例的计算机上运行该向导。

在被采样的表中数据不足,及建议的索引对现有索引的查询性能预计带来的改进不够充分的情况下,索引优化向导可能不会提供索引建议。

工作负荷中的查询在唤醒调用索引优化向导的用户的安全上下文中进行分析。该用户必须是固定服务器角色sysadmin的成员。

为减少索引优化向导的执行时间,要注意以下三点:

确保在“选择服务器和数据库”对话框中未选择“进行彻底分析”。进行彻底分析将会使索引优化向导对查询进行详尽的分析,导致执行时间延长。但选择此选项可以使所优化的工作负荷的性能得到更大的全面提高。

只对数据库中表的子集进行优化。

减小工作负荷文件的尺寸。

如果选定了“保留所有现有索引”选项,则索引优化向导不建议除去任何索引,而是在适当的时候只建议新索引。如果清除此选项,则工作负荷的性能会全面提高。此外,索引优化向导也不会推荐除去对PRIMARY KEY约束的索引或UNIQUE索引。但可能会除去或替换不是唯一或不是当前在PRIMARY KEY约束上创建的索引。

索引优化向导在最终建议内包括所有索引提示或查询提示,即使索引对于表并非是最佳的。所有指定为提示的索引始终是最终建议的一部分,但提示会妨碍索引优化向导选择更好的执行计划,因此在分析工作负荷之前应考虑从查询中删除所有索引提示。

SQL查询分析器中的索引分析使得可以对单个查询或成批查询进行分析,并为用于支持给定查询或成批查询的优化索引集生成建议。只有sysadmin固定服务器角色成员才可以使用SQL查询分析器进行索引分析。

若要推迟生成索引优化向导所建议的索引,可使用SQL查询分析器保存建议的SQL脚本。将SQL脚本保存到文件中,可以使索引分析推荐的Transact-SQL语句在执行前得到检查,从而可以在执行前对SQL脚本进行编辑(例如,可以更改所生成的索引的名称)。

4.启动索引优化向导

启动索引优化向导的步骤如下所示。

展开服务器组,再展开要在其中创建索引的服务器(如LOCAL)。

在“工具”菜单上选择“向导”命令。弹出“选择向导”对话框。在“管理”文件夹中选择“索引优化向导”。

在弹出的“索引优化向导”对话框中,依次完成各步骤的设置。

小结

本章介绍了SQL Server全文搜索的原理和相关技术,讲解了基于数据库的全文搜索的通用实现方案。读者可以依靠这种技术来解决很多全文搜索的问题。本章讲解得比较细致,这是因为考虑到所有数据库的全文搜索的实现大同小异,所以在这里详细介绍,给读者以全面具体的指引,希望使读者从整体上把握全文搜索技术。同时,在后面讲解Oracle和MySQL的全文搜索技术时,笔者会讲解核心知识,不会逐步分析其原理。当然,这也是考虑到不希望把书写成厚厚的一本。

思考与练习

1.SQL Server的全文搜索是如何实现的?

2.改良Web应用的全文搜索引擎,使其成为一个可复用的商业软件模块。

3.SQL Server进行全文搜索的时候,会过滤掉干扰词。干扰词的列表存储在MSSQLFTDATASQLServerConfig目录下面。比如,简体中文的干扰词库是noise.chs。试着修改这些文件,可以微调搜索引擎的性能。

同类推荐
  • 文化研究概论

    文化研究概论

    “文化研究”作为一门跨学科的“准学科”,它是英国伯明翰大学的传统。这个传统主张打破以往高雅文化和大众文化的壁垒两分,将整个社会生活纳入研究视野。它的一个直接结果,是普通人的日常生活进入大雅之堂,担当起颠覆统治意识形态话语的文化批判使命。事实上,在今日全球文化研究方兴未艾、一路走红的现象背后,它针对资本主义制度的批判立场,始终是未有松懈的。特别是当今西方发达国家政治气候普遍右转,保守主义盛行,左翼批判理论在公共领域颇有难以为继之势后,也使更多的学者转移到文化研究麾下,以迂回方式来继续他们的社会批判。这在客观上,也推动了文化研究进一步的跨学科发展趋势。
  • 哈佛小天才MQ德商课:和美国孩子一起磨练德商

    哈佛小天才MQ德商课:和美国孩子一起磨练德商

    “哈佛小天才”系列丛书包括《哈佛小天才EQ情商课》、《哈佛小天才IQ智商课》、《哈佛小天才LQ学商课》和《哈佛小天才MQ德商课》等四个分册,分别从情商、智商、学商和德商等四个方面多个角度,精选出一个个生动有趣、精彩经典的哲理故事,每个哲理故事均有精要的哲语阐释和英汉双语名言印证,力求言简意赅地剖析成功的教育智慧,寓教于乐地揭示出哈佛大学最精华的教育精髓,为优秀家长和成长中的孩子打开成功的秘密。
  • 语文新课标课外读物——林肯传

    语文新课标课外读物——林肯传

    由于许多世界文学名著卷帙浩繁,而广大中、小学生时间又有限,我们便在参考和借鉴以前译本许多优点和长处的基础上,在忠实原著的基础上进行了高度浓缩,保持了原著的梗概和精华,使之便于我们全面而轻松地阅读。这套课外读物还收编了大家喜闻乐见的广博知识,把阅读名著与掌握知识结合起来,扩大阅读的深度和范围,这正是设计本套读物的最大特色。因此,本套课外读物有着极强的广泛性、知识性、阅读性、趣味性和基础性,是广大中小学生阅读和收藏的最佳版本。
  • 战争与和平(四)

    战争与和平(四)

    《战争与和平》是世界文学史上一部不朽名著。作者以高超的艺术技巧塑造了一系列鲜明的人物形象,写尽了各种人情世态。书中共有五百五十九个人物,上至皇帝、王公、外交官、将领、贵族;下至地主、商人、农民、士兵,如此众多的人物,在最善于表现人物心理与性格特征的艺术大师的笔下,被赋予了一种崭新的视觉和色彩,男女主人公们以自己精神生活的全部复杂性和独特性出现在读者面前。本书具有史诗的气魄,画面广阔,人物众多。书中既有俄国和西欧重大历史事件的记叙,又有故事情节的虚构;既写了金戈铁马、刀光血影的战斗,又写了安逸宁静的日常生活;既有慷慨激昂的议人论世,又有细腻婉约的抒情述怀。
  • 世界经典传说神话故事

    世界经典传说神话故事

    本书为教学课外辅助读物。补充学生课外知识,选取一些中外经典名著供青少年课外阅读。本册选取世界经典神话故事作为经典主题。
热门推荐
  • 昧爽

    昧爽

    明明是善恶分明的斗争,却慢慢变得模糊。(谁让有的主角是坏人,本文的人物思想与行为,请您自行判断对错。)明明提前就可预见,这样的恋情很有可能结局不好,还是渐渐陷落了。(就这样作死吧。)明明简单的故事,非要加些关联不大的人物。明明没有结局,也完结了。
  • 末世之黑客

    末世之黑客

    世界最强黑客左斯,穿越到了百年以后的末世。“这种丧尸横行的时代,电脑、手机、互联网……早就破坏得一干二尽,黑客?你TM在逗我?”“看来,我得给你们普及一下黑客的定义了。”左斯举起手臂上歪歪扭扭的弩弓V0.1,一箭射穿了远处的三只丧尸,看看面如土色的三人,微微一笑。“一个真正的黑客,热衷的,是研究;追求的,是自由!”原来的世界,早已研究透彻,这新生的法则,才真正有趣啊!!!
  • TFboys之守望星空

    TFboys之守望星空

    那一年,她失踪了。他的心空了,几年后,他救了一个溺水女孩儿,如此熟悉。用一次次的偶遇,让他们的感情升温,能否走到一起,我们说好不分离,要一直一直在一起,就算与时间为敌,就算,与全世界背离。
  • 庶女倾城:王妃快跑

    庶女倾城:王妃快跑

    现代特工,穿越到未知王朝,魂落于那个柔弱的相府庶女之上,变身为京城纨绔女。传言,相府二小姐自从被闪电劈了后,化为“三好”(好hào)女,此“三好”,非彼“三好”:一好吃,二好财,三好当众扑美男。相府二小姐,一显“女色狼”本色。他是当朝九皇子,虽容貌倾城,但是一个有断袖之癖,中了无解之毒,活不过二十五的废人,烈火与寒冰展开的激烈碰撞,欢迎各位亲踊跃入坑!(温馨提示,本文坑很深!)
  • 许夏诺言

    许夏诺言

    “夏小草,你是猪吗?哦,不对,猪都比你聪明!这道题是书上的例题,你连书上的例题都不会,你真是笨到了一定境界啊!”
  • 破怨录

    破怨录

    怨灵出世,他手持神笔封怨还灵。伊人归来,他全心守护。两者之间他只能选择其一。是全心守护所爱之人,还是提起那只尘封的古笔去拯救整个世界,古典的仙侠,一本足以颠覆世界的惊天神录,一段难以割舍的爱恨情仇,手持一杆让世上所有生灵都有所畏惧的笔,是续写已经逝去了的回忆,还是画出一片祥和安定的世界,破怨录,道尽世间百态,尝便人生辛酸......小宇第一次写书多有不足大家多说说哈
  • 夜空下的许愿

    夜空下的许愿

    世界上有些人都是命中注定遇到的。正如小说中的陈晓希和白晨星一样。
  • 邪王追妻,独宠腹黑妃

    邪王追妻,独宠腹黑妃

    大婚之日,将军府三小姐却收到未婚夫太子的休书,心死之下,随后被嫉妒她的姐妹活生生打死。再次睁开眼,却是一个全新的灵魂——来自二十一世纪,代号为“殇”的杀手!现在,她就是将军府五小姐慕清熙!
  • 中国文学史

    中国文学史

    中国文学史源远流长,上下三千年,加上近几十年考古发现、古籍整理和古典文学研究的成果非常丰富,所以使个人独立撰写中国文学通史几乎是不可能的。因而从20世纪60年代以来,在中国文学史方面无论是学术性的著作还是教材,凡影响较大的都采用集体著述的方式。
  • 纨绔狂兵

    纨绔狂兵

    【免费精品】“龙魂”兵王步非凡携至尊神龙鼎重生十八年前,从此开启无敌装逼人生,不服就干!书友群QQ:123692886