写点什么

SQL Server 2008 索引使用技巧

  • 2008-08-27
  • 本文字数:803 字

    阅读完需:约 3 分钟

微软 MVP 及畅销书《Hitchhiker’s Guide SQL Server》的作者 Bill Vaughn简要给出了SQL Server 2008 的索引使用技巧。该主题基于 Kimberly Tripp Paul Randall (这两位是 SQL Server 高可用性和性能方面的专家)的建议。

下面是主要的建议:

  • 页(page)密度 > 优化行大小:SQL Server 2005(及后续版本)支持 8k 的列。这意味着一行可以超过 80k 大小。这有意义么?哦,通常情况下没有。对行大小的管理与效率同样重要。如何提高性能并充分利用空间呢?方法就是当 8k 的页被多个行塞满的时候,要确保几乎没有空间浪费。这意味着如果行大小超过(或者接近)4k 时,一页只适合一行,这样该页大约有 4k 的空间就浪费了。第二个问题是索引页的数量也必须增加以寻址这些页。
  • 过滤的索引 > 这是 SQL Server 2008 的新特性,它使我们可以向索引增加 WHERE 子句,这样就可以将索引聚焦到大多数重要的行上。
  • 选择性(Selectivity) > 选择性:当查询优化器(query optimizer,即 QO)读取 SQL 时,选择性的程度决定了索引是否应该用来执行该操作。通过对索引的 Statistics(或者“stats”,一个索引可以拥有一个或者多个 stats)进行处理分析,QO 可以作出决定。基本上,它会权衡使用索引来遍历选择的行或者对表进行扫描这两种方式。Kimberly 采用的例子使这一切变得很明朗,但我们却感到惊讶:“当行数(由查询选择的)大约是表中的数据页的 1/4 时,索引并没有起到什么作用,这时对表进行扫描来获取选择的行效率更高。这通常发生在取出的行数不到表中总行数的 5% 的情况下…”

SQL Server 2005 中关于索引统计、列选择、索引碎片及锁的标准实践依然可用。

Tripp 和 Randal 也认为 DTA, a.k.a. Data Engine Tuning Advisor 是个有价值的工具。 SQL Server 2008 已经更新了 DTA 以提供新的特性,包括改进的工作量解析、增强的可伸缩性、多数据库调校、通过 dta 命令行界面的改进脚本支持。

查看英文原文: SQL Server 2008 Indexing Tips And Tricks

2008-08-27 05:142862
用户头像

发布了 88 篇内容, 共 264.9 次阅读, 收获喜欢 8 次。

关注

评论

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

【Node.js 】开发中遇到的多进程‘keylog‘ 事件以及TLS/SSL的解决学习方案实战

恒山其若陋兮

前端 11月月更

一文熟悉 Go 的循环结构 —— for 循环

陈明勇

Go golang for 11月月更 for-range

分布式锁:不同实现方式实践测评

闫同学

Go 分布式 后端 分布式锁 11月月更

电商平台微服务架构

Jack

架构实战训练营9期

MobPush for Flutter

MobTech袤博科技

关于登录框的渗透测试

网络安全学海

网络安全 安全 信息安全 渗透测试 漏洞挖掘

ubuntu部署ELK-三节点

忙着长大#

ELK

浅谈MySQL Binlog日志

闫同学

MySQL 数据库 Binlog 11月月更

【web 开发基础】PHP回调函数之变量函数 (35)

迷彩

php 回调函数 11月月更

C++学习---类型萃取---is_function

桑榆

C++ STL 11月月更

极客时间运维进阶训练营第五周作业

Starry

发布MagicOS 7.0, 荣耀如何打造“松弛感”的操作系统?

脑极体

Maven 如何配置推送的仓库

HoneyMoose

企业级项目开发中的交互式解释器以及global全局定义、Stream流的合理运用和实战【Note.js】

恒山其若陋兮

前端 11月月更

【web 开发基础】PHP类静态函数和对象方法的回调 (37)

迷彩

对象 回调函数 11月月更 静态方法 成员方法

云原生下日志采集的3种方式

穿过生命散发芬芳

11月月更 云原生日志采集

项目经理和Scrum Master之间的不同(译)

Bruce Talk

Scrum 敏捷开发 Agile

运维进阶训练营 -W05H

赤色闪电

运维

电商微服务架构图

Johnny

架构实战训练营9期

架构模块六-作业

许四多

跳板机逐渐被堡垒机替代的最主要原因是这个!

wljslmz

运维 堡垒机 跳板机 11月月更

防火墙是网络安全的第一道防线,你认同吗?

wljslmz

网络安全 防火墙 11月月更

【web 开发基础】PHP自定义回调函数之call_user_func_array() (36)

迷彩

回调函数 web开发基础 11月月更 call_user_func_array 自定义回调函数

「Go实战」基于Prometheus+Grafana搭建完整的监控系统

Go学堂

golang 程序员 个人成长 监控 11月月更

Python: 你所不知道的星号 * 用法

eng八戒

Python 编程

2022-11-27:超过经理收入的员工。编写一个SQL查询来查找收入比经理高的员工。以下数据的结果输出是Joe,因为Joe是唯一挣得比经理多的雇员。 DROP TABLE IF EXISTS `em

福大大架构师每日一题

MySQL 数据库 福大大

架构实战营模块6作业-拆分电商系统为微服务

冷夫冲

架构 「架构实战营」

「Go实战」记一次降低30%的CPU使用率的优化

Go学堂

golang redis 程序员 个人成长 11月月更

在使用Note.js的过程中对于tty对于终端的运用、加密模块以及Assert的事件驱动程序的深入运用理解

恒山其若陋兮

前端 11月月更

CDH5部署三部曲之二:部署和设置

程序员欣宸

大数据 hadoop 11月月更

Mobtech短信验证 for Flutter

MobTech袤博科技

SQL Server 2008索引使用技巧_.NET_Al Tenhundfeld_InfoQ精选文章