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

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

关注

评论

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

海外舆情监测的核心技术三件套

沃观Wovision

海外舆情监控 沃观Wovision 舆情监测系统

一碰即传,重构跨设备文件分享体验

HarmonyOS SDK

HarmonyOS NEXT HarmonyOS SDK应用服务

SharePoint漏洞被利用传播勒索软件

qife122

网络安全 SharePoint

行业级案例深度拆解:某服装企业如何实现全仓RFID智能化改造

斯科信息

RFID解决方案 斯科信息 仓储RFID解决方案

中国企业出海战略跃迁:跨端技术革新与流量分发范式重构

xuyinyin

线上机器CPU占用高分析实践

京东科技开发者

Electron桌面端开发安全性实践

inBuilder低代码平台

大国重器登场!豪沃TX新能源搅拌车助力世界级水电站建设!

科技热闻

扩容之旅:从 0 到 100 万用户

俞凡

架构 最佳实践

YashanDB SUBSTRB函数

YashanDB

数据库 大数据

Taro on HarmonyOS 技术架构深度解析

京东科技开发者

华为开发者空间-云开发环境,实现本地VSCode远程开发小程序

华为云开发者联盟

vscode 华为开发者空间

Easysearch 集成阿里云与 Ollama Embedding API,构建端到端的语义搜索系统

极限实验室

Embedding openai easysearch

go学习笔记:panic是什么含义

不在线第一只蜗牛

Go 学习

MCP+LLM+Agent:企业AI落地的新基建设计

测试人

基于华为开发者空间,使用MySQL MCP Server对数据源进行获取等操作

华为云开发者联盟

华为开发者空间 DeepSekk mysql'

基于华为开发者空间,使用DeepSeek+Dify构建财务报表分析模型

华为云开发者联盟

dify 华为开发者空间 DeepSekk

数据安全的意义和价值你知道吗?一文让你了解!

行云管家

网络安全 数据安全

轻应用技术跃迁:从PWA到小程序的生态重构

xuyinyin

YashanDB SYSDATE函数

YashanDB

数据库 大数据

广告拍卖模拟器AuctionGym获最佳论文奖

qife122

拍卖理论 广告技术

基于华为开发者空间云开发环境部署Coze Studio + Maas构建智能体应用

华为云开发者联盟

华为云ModelArts DeepSeek v3 华为开发者空间 Coze开源 cozestudio

覆铜板工厂新一代AI智能化MES系统:数字化转型的关键

万界星空科技

mes 制造业数字化 覆铜板行业 智能化MES 覆铜板mes

本地CodeArts IDE连接开发者空间 - 云开发环境,完成小游戏开发

华为云开发者联盟

华为CodeArts 华为开发者空间

外网远程访问RealVNC Server

贝锐

内网穿透 vnc

YashanDB SUM函数

YashanDB

数据库 大数据

Camtasia中文版免费下载教程,Camtasia2024最新版激活码密钥分享

凡凡不烦

录屏软件 视频编辑工具 Camtasia Studio2024 视频剪辑软件 屏幕截图视频录制软件

[大厂实践] 利用 TCP 拥塞控制算法增强分布式系统服务降级

俞凡

架构 大厂实践

架构师必备:实时对账与离线对账

电子尖叫食人鱼

数据库 架构

YashanDB SUBSTRING函数

YashanDB

数据库 大数据

YashanDB SUBSTRING_INDEX函数

YashanDB

数据库 大数据

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