写点什么

性能问题损伤 SQL Server 2008 的全文检索

  • 2008-11-17
  • 本文字数:971 字

    阅读完需:约 3 分钟

首先,一些不熟悉全文检索背景的人。一般来说,计算机科学术语全文检索只是意味着你在文档中搜索所有的文本。对付全文检索的另一种选择是查找元数据,例如标题和关键字。

对SQL Server 而言,全文检索提供了存储在关系数据库或者是文件系统上的文本的高级搜索能力。搜索并不局限于字符串,应用程序所能理解的例如词干分析。这使得搜索“swim”,也返回“swims”, “swimming”,和“swam”。 它也可以支持权重搜索,即某些词比其他的词更重要,并可以搜索两个彼此相邻的词语。根据搜索条件的结果可以进行一个排名。

之前版本的全文检索是一个外部服务,和SQL Server 并排运行的服务。这样设计,参与索引的表和列的数据不得不从SQL Server 运送到全文检索服务。全文检索编目不能与其他的数据库一起备份,而且两个服务不能轻松的共享内存和CPU 资源。

为了处理这些和其他的问题,SQL Server 2008 把全文检索移到数据库中。现在SQL Server 自身可以动态管理服务器资源,为服务自动管理改变内存和CPU 资源配额。不幸的是,开发人员遇到了这种设计的一些意外结果。

他们依然会碰到的特定问题是事务。在一个事务性的数据库中,SQL Server 要时刻遵守 ACID 的规则。这意味着在搜索的时候行、页或甚至整个表都被锁定。通常情况下不会太坏,但是 Brent Ozar 解释说,错误的搜索会让事情变得复杂。

如果你在修正版(Revisions)上进行全文检索并且包含一些常见的关键字,像 SQL 滞留,则需要匹配数以万计的记录。当我们查看一下查询计划的时候,我们看到有 50-100k 的读操作。在表里面做这样的事情,也会获得沉重的表插入,事务性的灾难。

Jeff Attwodd 继续说道,

我们的 stackoverflow.com 很大程度上依赖于全文检索, 在 SQL Server 2005 下面工作得很好。不幸的是在 SQL Server 2008 下的情况则不同。 Brent 正在和 SQL Server 团队跟进这件事,他们用我们的数据库拷贝进行测试。[…] 根据目前为止出奇的差的 SQL Server 2008 全文检索和明显的体系结构更改,我对 SQL 团队能够为我们做些什么感到悲观。

他们所指的网站 StackOverflow 将计划不再长期使用全文索引。他们已经规划出迁移到竞争的搜索引擎 Lucene.Net 上。但是那些计划继续使用全文检索的人,在 SQL Server 2005 升级到 2008 以后需要在这方面进行彻底的测试。

查看英文原文: Performance Problems Mar SQL Server 2008 Full Text Search

2008-11-17 08:442751
用户头像

发布了 45 篇内容, 共 94530 次阅读, 收获喜欢 1 次。

关注

评论

发布
暂无评论
发现更多内容

2019年末阿里、百度等大厂技术面试题汇总(附答案,实战篇

android 程序员 移动开发

HW2 - 微信朋友圈高性能复杂度分析

WWH

架构实战营

2020Android开发架构思考及经验总结,深入理解kotlin协程pdf

android 程序员 移动开发

18—19年BAT大厂Android高级多套面试专题整理集合(面试资料专题包分享

android 程序员 移动开发

2014-2020分享我在Android开发中走的一些弯路,Android开发者必看避坑指南!

android 程序员 移动开发

2019-年赚钱最多的-13-个技术岗位,轻松入门flutter

android 程序员 移动开发

2019届应届毕业生Android秋招总结,已成功入职网易云音乐(1)

android 程序员 移动开发

分析微信朋友圈高性能复杂度

二手攻城师

架构师实战营

架构实战营 - 第三期 - 模块二作业

岚哲

极客时间 架构 架构实战营

2018年Android面试题整理,flutter下拉加载

android 程序员 移动开发

2019届应届毕业生Android秋招总结,已成功入职网易云音乐

android 程序员 移动开发

2019最新中级Android面试题目,有着几篇就够了,androidwifi开发教程下载

android 程序员 移动开发

用脱口秀大会来讲「观察者模式」

悟空聊架构

设计模式 悟空聊架构 11月日更

2020Android面经,历时一个半月,斩获3个大厂offer,kotlin语法大全

android 程序员 移动开发

01、泛型是什么?,flutterplugin修改

android 程序员 移动开发

16 个好用的 Code Review 工具,绝对干货

android 程序员 移动开发

一点思考

williamcai

车联网 网关

2020Android-目前最稳定和高效的UI适配方案!你头秃都没想到还能这样吧!

android 程序员 移动开发

就因为把int改成Integer,第2天被辞了

Tom弹架构

Java 架构 设计模式

2019,一位Android中级程序员成功跳槽的面经,android屏幕适配和性能优化

android 程序员 移动开发

架构训练营-模块三

Geek_9de3de

架构实战营

2020Android大厂高频面试题(字节跳动+阿里,android原生开发技术

android 程序员 移动开发

文本序号添加/移除工具

入门小站

工具

2020-字节跳动,网易,华为,android开发艺术探索pdf

android 程序员 移动开发

模块二作业

心怀架构

00后已经进入网易,下一步定位阿里,年轻人这么拼,android开发艺术探索电子

android 程序员 移动开发

2017-2020挑选出来最具代表性的(Java,网络相关(1),面试真题解析

android 程序员 移动开发

2017-2020挑选出来最具代表性的(Java,网络相关,2021年字节跳动74道高级程序员面试

android 程序员 移动开发

模块二的命题作业

月影之臣

架构实战营

架构实战营-模块二

Aha hello xzy

架构实战营 「架构实战营」

2020Android大厂面试(五)插件化,字节Android面试必问

android 程序员 移动开发

性能问题损伤SQL Server 2008的全文检索_.NET_Jonathan Allen_InfoQ精选文章