写点什么

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

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

关注

评论

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

Docker 实用技巧一

Nick

Docker 容器 实用技巧 6月月更 实操

远程办公三部曲 - 如何合理安排时间| 社区征文

耳东@Erdong

远程办公 6月月更 初夏征文 时间安排

测试开发【Mock平台】06开发:项目管理(二)Atnd页面搭建经验实战与学习线路梳理

MegaQi

测试平台开发教程 6月月更 测试技术干货

JVM调优简要思想及简单案例-JVM的内存区域大致划分

zarmnosaj

6月月更

Android 自定义View之随机数验证码

yechaoa

android 自定义view 6月月更

【PIMF】OpenHarmony啃论文俱乐部—盘点开源鸿蒙三方库【1】

离北况归

OpenHarmony

Django CRUD(创建、检索、更新、删除)基于函数的视图

海拥(haiyong.site)

Python 6月月更

Linux开发_Shell脚本编程语言

DS小龙哥

6月月更

C#入门系列(十七) -- 类和对象

陈言必行

C# 6月月更

时序数据库在卷烟厂中的应用

CnosDB

IoT 时序数据库 开源社区 CnosDB infra

如何分析排序算法

乌龟哥哥

6月月更

居家办公必备神器之视频会议|社区征文

liuzhen007

视频会议 初夏征文

spring4.1.8扩展实战之六:注册bean到spring容器(BeanDefinitionRegistryPostProcessor接口)

程序员欣宸

Java spring 6月月更

字符串的常用方法

Jason199

js 字符串处理 6月月更

归并排序

工程师日月

6月月更

模块四作业

提升“架构思维”?这本书值得一读!

博文视点Broadview

降本增效的居家办公心得-提高效率的百宝箱 | 社区征文

迷彩

远程办公 工具分享 6月月更 初夏征文

知识管理对企业意味着什么

小炮

BOM核心——window对象之窗口

大熊G

JavaScript 前端 6月月更

软件成分分析(SCA)完全指南

SEAL安全

开源 应用安全 软件安全 软件成分分析 应用安全测试

【愚公系列】2022年06月 通用职责分配原则(四)-高内聚原则

愚公搬代码

6月月更

用Python手动实现LRU算法

IT蜗壳-Tango

6月月更

正式上架!TDengine 插件入驻 Grafana 官网

TDengine

数据库 tdengine Grafana

ABAP-创建WebService服务

桥下本有油菜花

abap

Flutter macOS 模板 – Flutter macOS Drawer Widget 示例

坚果

6月月更

重磅升级,FinClip 2.0正式发布!

FinClip

HDFS用了这个优化后,性能直接翻倍

hncscwc

大数据 hadoop hdfs 6月月更

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