10 月 23 - 25 日,QCon 上海站即将召开,现在购票,享9折优惠 了解详情
写点什么

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

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

关注

评论

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

设计模式【10】-- 顺便看看享元模式

秦怀杂货店

Java 设计模式 享元模式

架构实战营模块四作业

zhongwy

「架构实战营」

教程直播第6期 | OceanBase 如何进行 Benchmark 测试及调优

OceanBase 数据库

数据库 直播 OceanBase 社区版

模块四-考试试卷存储方案

Only

架构师实战营 「架构实战营」

架构实战营-模块四作业

木几丶

「架构实战营」

从零打造Instagram

俞凡

架构 Instagram 大厂实践

996统计

你?

这是一个操作系统,但既不是Windows也不是Linux

LAXCUS分布式操作系统

云计算 分布式操作系统 计算机集群 分布式应用 行列混合存储

从2021分布式数据库开发者大会里,我们找出了这8个关键词

OceanBase 数据库

OceanBase 开源 OceanBase 社区版

探索CPU的调度原理

元闰子

操作系统 CPU调度

探索OS的内存管理原理

元闰子

操作系统 内存管理

实现DCI架构

元闰子

DDD DCI架构

模块五

撿破爛ぃ

「架构实战营」

深入解读aws graviton3

三少

云计算架构师

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

烈火干柴烛灭田边残月

架构实战营

可用性和易用性双重飞跃 | OceanBase社区版3.1.2正式发布

OceanBase 数据库

数据库 OceanBase 社区版 开发者大会

2021的科技卦象·坤·5G沃土上万物生长

脑极体

每个人都要会的复盘知识

石云升

复盘 迭代管理 1月月更

云原生学习总结

好吃不贵

一个cpp协程库的前世今生(十四)信号量与条件变量

SkyFire

c++ cocpp

数据产品经理实战-团队搭建

第519区

团队建设 数据产品经理 数据产品 1月月更

09 Prometheus之可靠性及可扩展性

穿过生命散发芬芳

Prometheus 1月月更

【Spring专场】「AOP容器」不看源码就带你认识核心流程以及运作原理

码界西柚

spring spring 源码 1月月更 Spring原理

技术走向管理第一站 技术经理

张老蔫

28天写作

在一年一度高交会,看城市发展的“AI三部曲”

脑极体

一图回顾 2021分布式数据库开发者大会精彩看点

OceanBase 数据库

数据库 OceanBase 社区版 开发者大会

架构训练营模块四作业

沈益飞

架构训练营 架构师训练营 4 期

SAP R/3系统的R和3分别代表什么含义,负载均衡的实现原理

汪子熙

负载均衡 abap 1月月更

《亚马逊编年史》阅读散记

boshi

读书笔记

模块四作业

cqyanbo

什么是 Github 的元数据以及如何备份 github 上的数据

汪子熙

GitHub 1月月更

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