写点什么

Brent Ozar 谈如何提高 SQL Server 的生产力

  • 2013-03-04
  • 本文字数:916 字

    阅读完需:约 3 分钟

SQL Server 顾问 Brent Ozar 最近发表了一篇文章,谈到了每个 SQL Server 开发者在他们日常的编程任务中应该遵循的七种技术。按照 Brent 的说法,开发者应该尽量避免使用 ORDER BY 语句,他还建议开发者将所有查询结果放入应用程序内存中再进行排序。

如果数据库要执行数据处理、排序、加载及缓存等任务,理想情况下每项任务应该使用一个独立的数据库。Brent 建议这些数据库使用简单恢复模式,而且每天进行一次备份。

他同时建议开发者应有效地利用动态管理视图(DMV),还建议对于应用程序中的不同场景,如数据读写、5 至15 分钟前的老数据以及昨天之前的老数据,应该使用3 种不同的连接字符串来建立连接。按照Brent 的说法,第一种连接字符串的使用场景不易伸缩,因为我们在SQL Server 中并没有多少办法将负载横向扩展到处理写入的多台服务器上。

“对应用来说,已提交读快照隔离(Read-Committed Snapshot Isolation)是比 With(Nolock) 更好的选择,因为少了很多阻塞的麻烦,同时提供了一致的数据”,Brent 说道。

按照 Brent 所说,你不应该再去参考老版本的书和在线文档,因为它们不会定期更新。“当看到某个听着不错的建议时,我喜欢采取‘质疑 Phil 博士’(译注:Dr.Phil 是美国的一档电视秀,一些观众对主持人的生活观念持有不同意见)这样的策略”,Brent 说道。

最后 Brent 还建议,如果想重用代码,那么最好用存储过程视图代替函数。他认为函数对数据库层的性能有很大影响。

不过,有些开发者并不同意Brent 的建议。

Tyler Burd 说道:

我不同意无节制地采用第 2 条意见(即“避免 ORDER BY,而是在应用程序中排序”)。

Brent 对 Tyler 的评论回应道:

为什么不把整个数据集加载到应用程序中并缓存下来呢?

还有个别开发者留言,反对 Brent 所说的避免函数而使用视图和存储过程的观点。

你是支持还是反对 Brent 的技巧和建议呢?请在此留言,InfoQ 保证将其发给 Brent 进行处理和回复如何?

查看英文原文 Brent Ozar on Improving Productivity with SQL Server


感谢臧秀涛对本文的审校。

给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ )或者腾讯微博( @InfoQ )关注我们,并与我们的编辑和其他读者朋友交流。

2013-03-04 06:571750
用户头像

发布了 428 篇内容, 共 198.6 次阅读, 收获喜欢 39 次。

关注

评论

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

百度智能云发布零碳园区解决方案,助力实现双碳目标

百度大脑

人工智能

详细架构设计文档

Anlumina

#架构实战营

最近火热的web3到底是什么?

石云升

区块链 28天写作 12月日更 web3

架构实战营4期-模块3作业

木几丶

「架构实战营」

学习总结 2021.12.30

mj4ever

学习笔记

一口气搞懂【Linux内存管理】,就靠这60张图、59个问题了

奔着腾讯去

内存泄露 内存管理 Linux Kenel 内存映射 内存池

Hoo研究院币 | 币海寻珠——加密行业即将到来的发售事件

区块链前沿News

加密货币 虎符 虎符交易所

架构实战营:模块三作业

Geek_93ffb0

「架构实战营」

【架构实战营】模块三:知识点总结

wgl

「架构实战营」

百度飞桨EasyDL桌面版正式上线,没网也能训练AI!

百度大脑

人工智能

第三周学习总结

糖糖学编程

架构实战营

ALC北京发起人 姜宁:通过开放与协作,我们可以实现一个人想都不敢想的事情 I OpenTEKr 大话开源 Vol.6

OpenTEKr

大话开源

从人工到智能!百度AI开发者大会分论坛,探寻国球乒乓背后的AI之路

百度大脑

人工智能

Git基础 |打tag

xcbeyond

git 28天写作 tag 12月日更

Golang中文件的基本操作

liuzhen007

Go 28天写作 Go 语言 12月日更

一个cpp协程库的前世今生(一)缘起

SkyFire

协程 cpp cocpp

Java 数据持久化系列之池化技术

程序员历小冰

MySQL 持久化 28天写作 池化技术 12月日更

阿里云王志坤:强劲可靠、无处不在的云,为创新保驾护航

阿里云弹性计算

弹性计算 年度峰会

架构实战 模块三作业

mj4ever

架构实战

元宇宙很好,但VR开发者不准备停留在这里

白洞计划

【架构实战营】模块三:命题作业

wgl

「架构实战营」

外包学生管理系统详细设计文档

糖糖学编程

架构实战营

架构实战营 - 模块 3 - 作业

Pyel

「架构实战营」

引领人工智能技术自立自强 百度吴甜获评“首都最美巾帼奋斗者”

百度大脑

人工智能「

架构实战营模块三作业

lchx08

「架构实战营」

VS Code 如何设置大小写转换快捷键

AlwaysBeta

vscode

费用节省 50%,函数计算 FC 助力分众传媒降本增效

阿里巴巴云原生

阿里云 云原生 合作 函数计算FC 分众传媒

瞰见 | 开源,会不会变成开源创业的焦油坑?

OpenTEKr

狄安瞰源

有趣的灵魂万里挑一:从智能座舱看汽车进化史

脑极体

阿里巴巴超大规模 Kubernetes 基础设施运维体系揭秘

阿里巴巴云原生

阿里云 Serverless Kubernetes 云原生 ASI

深入理解一下Python中的面向对象编程

宇宙之一粟

Python 面向对象 12月日更

Brent Ozar谈如何提高SQL Server的生产力_语言 & 开发_Anand Narayanaswamy_InfoQ精选文章