写点什么

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

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

关注

评论

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

在Codurance是如何面试技术人员的

sherlockq

面试 TDD

读谱对吉他手来说重要吗?试试它提升你的读谱效率

奈奈的杂社

学习 编曲 打谱

Redis 持久化之 RDB 与 AOF 详解

AI乔治

Java 架构 redis持久化 redia

架构师训练营 -week09-总结

大刘

极客大学架构师训练营

国网浙江建设公司推进“信用基建+区块链”建设

CECBC

区块链 国网 基建

面经手册 · 第18篇《AQS 共享锁,Semaphore、CountDownLatch,听说数据库连接池可以用到!》

小傅哥

Java 并发编程 共享锁 Semaphore 信号量

什么是云服务?

anyRTC开发者

音视频 WebRTC 云服务 RTC

【MySQL】如何最大程度防止人为误操作MySQL数据库?这次我懂了!!

冰河

MySQL 数据库 性能优化 数据安全 分布式数据储存

MySQL从库维护经验分享

Simon

MySQL 主从复制

Nginx-技术专题-技术介绍

码界西柚

数字货币引发的金融变革

CECBC

数字化时代

Springboot过滤器和拦截器详解及使用场景

AI乔治

Java spring 架构 Spring Boot

MySQL中的锁机制

AI乔治

Java MySQL 架构 线程 锁机制

【薪火计划】03 - 从错误中认识到管理

码字与律动

管理

甲方日常53

句子

工作 随笔杂谈 日常

vue项目实战经验汇总

徐小夕

Java 面试 Vue 大前端 Vue3

阿里P8以hashmap讲解如何学习jdk源码,还不学习

小Q

Java 学习 源码 jdk mybatis

Dubbo 接口,导出 Markdown ,这些功能 DocView 现在都有了!

程序员小航

markdown idea插件 IntelliJ IDEA 文档生成 Doc View

会装虚拟机,删库不用跑

MySQL从删库到跑路

虚拟机 virtualbox

Glide.with(view)挂在了谁的生命周期上

mengxn

生命周期 Glide Activity Fragment

高承实:区块链的工业革命带来了什么?

CECBC

区块链 分布式

新工业化如何实现?今年的信息化百人会中藏着“懂行”密码

脑极体

智变的八个瞬间,京东智联云化“?”为“!”

脑极体

11.11 应对海量访问的网络基石 京东智联云自研交换机发展之路

京东科技开发者

运维 网络 交换机

CSS 排版与正常流 —— 重学CSS

三钻

CSS 排版

前嗅教你大数据——什么是代理IP?

前嗅大数据

爬虫 数据采集 静态IP 代理IP 动态IP

我真的尽力了,最经典Redis面试14题,没时间复习就看这个吧

小Q

redis 学习 编程 架构 面试

《网络是怎样连接的》PDF下载

计算机与AI

网络

注册中心原理剖析

石刻掌纹

SQL数据库:窗口函数

正向成长

窗口函数

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