
SQL Server索引
文章平均质量分 75
wangd1121
喜欢交朋友
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
SQL Server 索引基础知识(4)----主键与聚集索引
有些人可能对主键和聚集索引有所混淆,其实这两个是不同的概念,下面是一个简单的描述。不想看绕口文字者,直接看两者的对比表。尤其是最后一项的比较。主键(PRIMARY KEY )来自MSDN的描述:表通常具有包含唯一标识表中每一行的值的一列或一组列。这样的一列或多列称为表的主键 (PK),用于强制表的实体完整性。在创建或修改表时,您可以通过定义 PRIMARY KEY 约束来创建主键。转载 2008-06-05 16:46:00 · 502 阅读 · 0 评论 -
SQL Server 索引基础知识(2)----聚集索引,非聚集索引
不论是 聚集索引,还是非聚集索引,都是用B+树来实现的。我们在了解这两种索引之前,需要先了解B+树。如果你对B树不了解的话,建议参看以下几篇文章:BTree,B-Tree,B+Tree,B*Tree都是什么 http://blog.youkuaiyun.com/manesking/archive/2007/02/09/1505979.aspx B+ 树的结构图:B+ 树的特点: 所有转载 2008-06-05 16:30:00 · 467 阅读 · 0 评论 -
SQL Server 索引基础知识(1)--- 记录数据的基本格式
由于需要给同事培训数据库的索引知识,就收集整理了这个系列的博客。发表在这里,也是对索引知识的一个总结回顾吧。通过总结,我发现自己以前很多很模糊的概念都清晰了很多。不论是缓存的数据信息,还是物理保存的信息,他们的基本单位都是数据页。所以理解数据页是最最基础的知识点,本篇博客就介绍跟索引有关的数据页的一些基础知识。数据页的基础知识SQL Server 中数据存储的基本单位是页(Page)。转载 2008-06-05 14:02:00 · 528 阅读 · 0 评论 -
SQL Server 索引基础知识(8)--- 数据基本格式补充
我在SQL Server 索引基础知识系列中,第一篇就讲了记录数据的基本格式。那里主要讲解的是,数据库的最小读存单元:数据页。一个数据页是8K大小。对于数据库来说,它不会每次有一个数据页变化后,就存到硬盘。而是变化达到一定数量级后才会作这个操作。 这时候,数据库并不是以数据页来作为操作单元,而是以64k的数据(8个数据页,一个区)作为操作单元。区是管理空间的基本单位。一个区是八个物理上连续转载 2008-06-05 17:48:00 · 424 阅读 · 0 评论 -
SQL Server 索引基础知识(3)----测试中一些常看的指标和清除缓存的方法
之前的两篇博客中有2个例子,来演示要讲述的内容。其中提到了部分查看数据库状态的方法,那里并不是很全面,这篇博客罗列几个我们在后面系列博客中会用到查看这些状态,数据的地方。以及测试中清除缓存的方法。前面两篇博客的链接地址如下:SQL Server 索引基础知识(1)--- 记录数据的基本格式 http://blog.joycode.com/ghj/archive/2008/01/02/11329转载 2008-06-05 16:41:00 · 1028 阅读 · 0 评论 -
SQL Server 索引基础知识(7)----Indexing for AND
我们通过一个实例来看 有And 操作符时候的最常见的一种情况。我们有下面一个表,CREATE TABLE [dbo].[member]( [member_no] [dbo].[numeric_id] IDENTITY(1,1) NOT NULL, [lastname] [dbo].[shortstring] NOT NULL, [firstname] [dbo].[shortstring] N转载 2008-06-05 17:46:00 · 423 阅读 · 0 评论 -
SQL Server 索引基础知识(10)----Join 时的三种算法简介
我们书写查询语句的时候,Join 参数之前可以是下面三个 { LOOP | MERGE | HASH } JOIN 。 如果不使用,则系统自己分析那种方式快,使用那种方式。 这其实是SQL Server 联结时候使用的三种算法。尽管每种算法都并不是很复杂,但考虑到性能优化,在产品级的优化器实现时往往使用的是改进过的变种算法。譬如SQL Server 支持block nested loops、转载 2008-06-05 18:06:00 · 604 阅读 · 0 评论 -
SQL Server 索引基础知识(9)----Indexing for OR
我们仍然是通过例子来理解OR运算符的特征我们仍然使用 http://blog.joycode.com/ghj/archive/2008/01/18/113870.aspx 中的 member 表,这时候,这个表的索引如下: 名字 描述 列转载 2008-06-05 17:51:00 · 475 阅读 · 0 评论 -
SQL Server 索引基础知识(6)----索引的代价,使用场景
前几天给同事培训了聚集索引,非聚集索引的知识后,在一个同事新作的项目中,竟然出现了滥用聚集索引的问题。看来没有培训最最基础的索引的意义,代价,使用场景,是一个非常大的失误。这篇博客就是从这个角度来罗列索引的基础知识。 使用索引的意义 索引在数据库中的作用类似于目录在书籍中的作用,用来提高查找信息的速度。 使用索引查找数据,无需对整表进行扫描,可以快速找到所需数转载 2008-06-05 17:41:00 · 597 阅读 · 0 评论 -
SQL Server 索引基础知识(5)----理解newid()和newsequentialid()
在SQL Server 2005 中新增了一个函数:newsequentialid(),MSDN 中对这个函数的描述如下:在指定计算机上创建大于先前通过该函数生成的任何 GUID 的 GUID。NEWSEQUENTIALID() 不能在查询中引用。NEWSEQUENTIALID() 只能与 uniqueidentifier 类型表列上的 DEFAULT 约束一起使用。这个函数的具体用法在下转载 2008-06-05 16:54:00 · 568 阅读 · 0 评论