50万奖金+官方证书,深圳国际金融科技大赛正式启动,点击报名 了解详情
写点什么

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:571734
用户头像

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

关注

评论

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

基于业务和平台理解数字营销概念

架构 CDP DSP DMP 数据服务

设计消息队列存储消息数据的MySQL表格

白开水又一杯

#架构实战营

软件安全测试

刘冉

软件测试 安全测试

springboot中poi操作合集

小鲍侃java

11月日更

quarkus接触研究个人总结

weir威尔

架构 微服务架构 istio Service Mesh 服务网格 Quarkus

Flink SQL 扩展维表 Keyby 的三种实现方式

大数据技术指南

11月日更

设计千万级学生管理系统的考试试卷存储方案

deng

架构实战营

通过 Feature Level 动态控制 SAP Spartacus 的页面显示

汪子熙

typescript angular SAP 11月日更

Flink 实践教程-入门(6):读取 PG 数据写入 ClickHouse

腾讯云大数据

flink 流计算 Oceanus

Flink 实践教程-入门(7):消费 Kafka 数据写入 PG

腾讯云大数据

flink 流计算 Oceanus

分布式技术专题-服务架构设计-带你统一认识一下系统架构及分析和总结

码界西柚

架构设计 总结思考 11月日更 架构介绍

Django中的超级用户和自己创建app原来这么简单!

老表

Python django web开发 11月日更 博客系统

【Flutter 专题】09 图解页面小跳转 (二)

阿策小和尚

Flutter 小菜 0 基础学习 Flutter Android 小菜鸟 11月日更

[架构实战营]模块三作业:学生管理系统详细架构设计

Geek_99eefd

「架构实战营」

模块八作业

potti

NodeJs深入浅出之旅:内存控制(上)🐍

空城机

大前端 Node 11月日更

双11硝烟散去,零售业开始“外卷”

脑极体

架构实战训练营模块三

人生就是梦

「架构实战营」

一个基于web服务器的PoW案例(二)

Regan Yue

区块链 11月日更 趣讲区块链

Apache Pulsar与Apache Kafka在性能、应用、生态等全方位对比

五分钟学大数据

11月日更

数据服务系统0到1落地实现方案

架构 数据 系统架构 数据平台 数据服务

架构实现训练营|第 8 课|作业

Frode

谁有粉?就爬谁!他粉多,就爬他!Python 多线程采集 260000+ 粉丝数据

梦想橡皮擦

11月日更

点进来,与白洞一起体验一场沉浸式智慧轨道之旅

白洞计划

AI 预测:基于流计算 Oceanus(Flink) 实现病症的实时预测

腾讯云大数据

flink 流计算 Oceanus

Ubuntu安装教程【超多图】

坚果

Ubuntu20.04 11月日更

dart系列之:dart类的扩展

程序那些事

flutter dart 程序那些事 11月日更

如何使用Camtasia给视频打码

淋雨

Camtasia

CRM User Status profile中Business Transaction字段的用途

汪子熙

CRM SAP 订单 11月日更

敏捷中的威胁建模

刘冉

敏捷开发 威胁建模 安全测试

我们的敏捷测试实践

刘冉

软件测试 敏捷测试

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