NVIDIA 初创加速计划,免费加速您的创业启动 了解详情
写点什么

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

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

关注

评论

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

猴子都能懂的数据库避坑指南,还说你不会?,闭关在家37天“吃透”这份345页PDF

Java 程序员 后端

爽,字节架构师DDD(领域驱动设计,Spring事务扩展机制

Java 程序员 后端

模块二作业-微信朋友圈的高性能复杂度

无名

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

独家!Java开发专家P7岗必备的MySQL高级笔记及面试宝典,面试横竖绕不开MySQL

Java 程序员 后端

独家!就是看透这份“347页并发编程笔记,java开发实战经典第二版pdf下载

Java 程序员 后端

炸裂!这份阿里P8大佬手写“Java核心技能精选,java笔试面试宝典

Java 程序员 后端

用10个真实案列带你掌握MySQL调优(1),springboot注解原理

Java 程序员 后端

男默女泪!阿里技术官的Docker+K8S手册(1),java研发工程师面试问题

Java 程序员 后端

牺牲速度来节省内存,Redis是觉得自己太快了吗?,mysql破解版百度网盘

Java 程序员 后端

用了这么多年分页PageHelper,你确定你真的会用吗?,mysql应用教程李辉答案

Java 程序员 后端

男默女泪!阿里技术官的Docker+K8S手册,java开发视频直播

Java 程序员 后端

区块链让奢侈品的分销、溯源不再是难题

CECBC

牛批!阿里的Springboot笔记,果然值得我每天熬夜啃,全栈系统化的学习路线

Java 程序员 后端

疫情在家刷了几个月的面试题及算法,我终于拿到了字节跳动offer

Java 程序员 后端

元宇宙将如何影响我们的投资、就业和生活方式?

CECBC

牛皮了!一篇文章直接解决关于TCP的23种疑难问题!,springboot源码深度解析视频

Java 程序员 后端

玩转Git就这么简单!这些常用命令你确定都用过吗?,java多线程编程面试题

Java 程序员 后端

理解RabbitMQ中的AMQP-0-9-1模型,深入java虚拟机第三版百度网盘

Java 程序员 后端

疫情期间宅在家的这段时间,突然收到(余额宝,java架构师技术进阶路线图下载

Java 程序员 后端

爆赞!腾讯T4大牛发布Java基础核心宝典,简直就是及时雨

Java 程序员 后端

牛掰plus!裸辞后集中Java面试,凭借一个技术套路了多个面试官

Java 程序员 后端

独家!就是看透这份“347页并发编程笔记(1),mysql使用入门教程

Java 程序员 后端

用时半个月,终于把2020年各大公司的Java面试题精选整理成文档了

Java 程序员 后端

032云原生之AIOps运维

穿过生命散发芬芳

云原生 10月月更

一文了解「区块链桥」:区块链桥的工作方式及四种类型

CECBC

理解 MyBatis 是如何在 Spring 容器中初始化的,java上传视频

Java 程序员 后端

用10个真实案列带你掌握MySQL调优,开发人员必学

Java 程序员 后端

清华大牛纯手写2021年最新JVM调优实战手册,看完让你精通JVM调优

Java 程序员 后端

源码解析 HashMap 的线程安全问题,mysql索引左前缀原理

Java 程序员 后端

源码解析BeanUtils,Java开发还不会这些

Java 程序员 后端

牛P牛P!Github上堪称2021最全、最新Java面试题库到底有多香

Java 程序员 后端

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