写点什么

性能问题损伤 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:442473
用户头像

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

关注

评论

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

这份笔记我必啃完!美团T9首发内部JVM高级特性笔记,差距不止一点点

Java架构追梦

Java 源码 架构 面试 JVM

Pulsar Summit Asia 2020 | 主题演讲:大咖呈现,紧扣社区

Apache Pulsar

大数据 开源

双11购物节国外剁手党同狂欢 阿里云视频云电商直播实时字幕

阿里云CloudImagine

云直播 直播 直播带货 语音识别

Reactor中的Thread和Scheduler

程序那些事

响应式编程 reactor 多线程 程序那些事 reactivex

代码简易调试方法.md

Albert

Java LeetCode 调试

如何预防工业物联网中的恶意攻击?

VoltDB

大数据 数据分析 5G 工业互联网

甲方日常 48

句子

工作 随笔杂谈 日常

文科妹子都会用 GitHub,你这个工科生还等什么

沉默王二

GitHub

Rethink:多版本文件的命名细节

小匚

团队 随笔杂谈

Dubbo-go Client端调用服务过程

apache/dubbo-go

dubbo dubbo-go dubbogo

什么?美团T9首发内部JVM高级特性笔记,看完差距不止一点

小Q

Java 学习 程序员 架构 面试

架构师训练营第八周

我是谁

极客大学架构师训练营

2 w字长文带你深入理解线程池

Java架构师迁哥

甲方日常 47

句子

工作 随笔杂谈 日常

当人脸识别对准执法者,AI的应用边界博弈

脑极体

微信视频号强制置顶朋友圈:盈利不可牺牲用户体验

石头IT视角

祝贺 StreamNative 团队成员 Jennifer 当选 Apache Pulsar PMC 成员

Apache Pulsar

大数据 开源 Apache Pulsar

Spring bean 加载顺序导致的 bug 问题

AI乔治

Java 架构 Spring Boot

靠脑机接口“隔空探物”,大脑植入芯片可实现“心灵感应”

脑极体

低代码开发平台核心功能设计——组件自定义交互实现

徐小夕

大前端 编辑器 H5 大屏可视化 lowcode

实时指挥调度的发展和优势

anyRTC开发者

ios android 音视频 WebRTC RTC

当我们在讨论实时性的时候,我们在讨论什么?

VoltDB

数据分析 5G 工业互联网

一个技术总监的忠告:精通那么多技术,你为何还是受不到重用?

四猿外

程序人生 技术管理 加薪 职场成长 源码阅读

「Java并发编程」从源码分析几道必问线程池的面试题?

Java架构师迁哥

架构师训练营第 1 期第 8 周学习总结

好吃不贵

极客大学架构师训练营

记不住Spring中Scheduled中的Cron语法?让我们看看源码吧

AI乔治

Java spring 编程 架构

如何应对大促流量洪峰?揭秘京东技术人的备战手册

京东科技开发者

云计算 大数据 亿级流量

接口文档生成详细教程

测试人生路

接口文档

深度解析ThreadLocal原理

AI乔治

Java 架构 线程 ThreadLocal

O'Reilly出版社又一经典之作——Python设计模式

计算机与AI

Python

2020双11:每秒58.3万笔!阿里云又扛住了!

云计算 互联网 运维 云原生 科技

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