产品战略专家梁宁确认出席AICon北京站,分享AI时代下的商业逻辑与产品需求 了解详情
写点什么

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

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

关注

评论

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

上新了 亚麻云 | 远程办公有点上头?解锁云上应用现代化的奥秘

亚马逊云科技 (Amazon Web Services)

远程办公 应用

精彩回顾|KubeCon EU 2022 Kubernetes Batch + HPC 专题日

Daocloud 道客

Kubernetes 云原生 HPC batch

基于边缘计算的云游戏场景实践

火山引擎边缘云

最佳实践 边缘计算 实时音视频 云游戏

3D赛车【附源码】设计实现

JavaPub

艾莫尔研究院基于Karmada的落地实践

华为云开发者联盟

云原生 Karmada 自动化集群管理

实验室信息管理系统如何工作?

低代码小观

低代码 实验室管理系统 企业管理系统 LIMS实验室信息管理系统 企业管理软件

中科大脑知识图谱平台建设及业务实践

NebulaGraph

图数据库 知识图谱

编程,不止有代码,还有艺术

华为云开发者联盟

数据库 倒排索引 GaussDB(for Influx) hint

ZooKeeper 在阿里巴巴的服务形态演进

阿里巴巴云原生

Apache zookeeper 阿里云 开源 云原生

UniqueMergeTree:支持实时更新删除的ClickHouse表引擎

字节跳动数据平台

Clickhouse 表引擎 实时

给小白的 PG 容器化部署教程(上)

RadonDB

postgresql 容器化 数据库·

git bisect:让你闭眼都能定位疑难 bug的利器

华为云开发者联盟

开发 bug git bisect 二分法定位

大咖说·图书分享|阿里官方为你分享内部测试之道

大咖说

阿里巴巴 测试 开发

PostgreSQL 15 新特性解读 | 墨天轮优质文章合集

墨天轮

数据库 sql postgresql 新特性

一份优秀的产品帮助文档怎么写?

小炮

【等保测评】2022年北京正规等保测评机构新名单公布

行云管家

等保测评 北京

A New ETL Language -- Easy SQL

Bright

数据开发 ETL 大数据开发 EasySQL

揭秘华为云GaussDB(for Influx)最佳实践:hint查询

华为云开发者联盟

数据库 倒排索引 GaussDB(for Influx) hint 单时间线

VPN的应用场景

源字节1号

小程序开发

直击中小企业转型通用痛点 联想百应推出智能会议解决方案

Geek_2d6073

MSVC编译多个C程序文件

Loken

音视频 5月月更

直播回顾|携手 Opentelemetry 中国社区,走进可观测性

Daocloud 道客

云原生 可观测性

【等保测评】等保测评师怎么考,前景怎么样?

行云管家

网络安全 IT运维 等保测评 等保测评师

固态硬盘和机械硬盘的区别(7大区别,简单易懂)

源字节1号

软件开发 前端开发 后端开发 小程序开发

MSVC编译静态库

Loken

5月月更

常用的 Lambda 表达式案例解析,工作中都会用到!

CRMEB

关于敏捷测试象限的“秘密”

BY林子

敏捷开发 敏捷测试 测试策略

【技术干货】代码示例:使用 Apache Spark 连接 TDengine

TDengine

数据库 tdengine 开源 时序数据库

企评家,企业成长性评价系统怎么用?

企评家

企业成长性分析 企评家 企业投资价值评价

【直播预告】研发效率百倍提升的秘密,这些破圈思路了解一下!

FinClip

小程序 finclip 直播预告

对象存储 S3 在分布式文件系统中的应用

焱融科技

对象存储 存储 分布式存储 云存储

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