文章 2017-12-08 来自:开发者社区

【译】SQL Server索引进阶第四篇:页和区

SQL Server索引进阶第四篇:页和区     索引设计是数据库设计中比较重要的一个环节,对数据库的性能其中至关重要的作用,但是索引的设计却又不是那么容易的事情,性能也不是那么轻易就获取到的,很多的技术人员因为不恰当的创建索引,最后使得其效果适得其反,可以说“成也索引,败也索引”。     本系列文章来自Stairway to SQL Server In...

文章 2017-12-07 来自:开发者社区

算法和数据结构~Sqlserver索引使用的B树

B树相关概念 在B-树中查找给定关键字的方法是,首先把根结点取来,在根结点所包含的关键字K1,…,Kn查找给定的关键字(可用顺序查找或二分查找法),若找到等于给定值的关键字,则查找成功;否则,一定可以确定要查找的关键字在Ki与Ki+1之间,Pi为指向子树根节点的指针,此时取指针Pi所指的结点继续查找,直至找到,或指针Pi为空时查找失败。 时间复杂度 动态查找树主要有:二叉查找树(Binary .....

算法和数据结构~Sqlserver索引使用的B树
文章 2017-11-26 来自:开发者社区

【翻译】SQL Server索引进阶:第一级,索引简介

第一级介绍一下SQL Server的索引:是一种数据库对象,使得SQL Server可以在最短的时间内查询 or 修改请求的数据,使用最少的系统资源带来最大的性能提升。好的索引将会允许SQL Server实现最大化的并发,一个用户的查询对于其他用户的查询几乎没有影响。最终,索引给数据库完整性提供一种高效的方式,当唯一索引创建的时候,确保唯一的键值。这一级只是一个简介,包括一些理论和使用,一些物理....

文章 2017-11-26 来自:开发者社区

【翻译】SQL Server索引进阶:第二级,深入非聚集索引

我们先来介绍一些理论,了解一些索引的内部信息,帮助我们解释理论,然后执行一些查询。这些查询会在包含和不包含索引的两种情况被执行,开启性能报告,我们可以看到索引产生的影响。 我们继续使用AdventureWorks 数据库的部分表,主要集中在Contact表。我们将只是用一个索引,在上一级中使用的FullName索引,来证明我们的观点。为了确保我们很好的控制Contact表的索引,我们将做两份拷贝....

文章 2017-11-26 来自:开发者社区

【翻译】SQL Server索引进阶:第三级,聚集索引

当一个请求到达数据库的时候,有可能是select,或者insert,或者update,或者delete,SQL Server只有三种访问数据的方式: 访问非聚集索引,避免访问表。这只发生在索引包含了请求中的所有数据。 通过索引键访问非聚集索引,然后使用标签访问表中的行数据。 忽略非聚集索引,扫描表找到请求的行数据。 本篇文章将从上面列表中的第三条开始介绍:扫描表。我们来讨论一下cluster...

文章 2017-11-26 来自:开发者社区

【翻译】SQL Server索引进阶:第四级,页和区

ogin read逻辑读”。我们总是比较在有索引和没有索引的表执行查询的逻辑读。现在,是时候解释为什么“逻辑读”是一个优秀的度量标准,同时也解释了实际上读取了什么。 当你向SQL Server提交一个查询请求,它知道通过扫描表可以满足你的要求。SQL Server理解一个索引在什么情况下对查询有用,只是在使用索引比扫描表做的工作要少的时候。如果你被问到“SQL Server做了什么工作?”,答案....

文章 2017-11-26 来自:开发者社区

【翻译】SQL Server索引进阶:第五级,包含列

表中的每一行在索引中总是有一个入口(这条规则有一个意外,在后面的级别中我们会讲到)。这些入口总是用索引键排序。 在聚集索引中,索引的入口就是表的实际行。 在非聚集索引中,入口和数据行是分开的,索引由索引键列和标签组成,标签是索引键列到表数据行的映射。 第三句的后半部分是正确的,但是不完整。今天我们将测试在非聚集索引中包括额外列的情况,这些额外列叫做“包含列”。在第六级中,将会测试标签的操作,我.....

文章 2017-11-26 来自:开发者社区

【翻译】SQL Server索引进阶:第七级,过滤的索引

过滤一个索引 创建一个包含where子句的过滤的非聚集索引。   IF EXISTS ( SELECT  *              FROM    sys.index...

文章 2017-11-26 来自:开发者社区

【翻译】SQL Server索引进阶:第六级,标签

什么是标签 标签在之前已经提到过,但只是说SQL Server可以用它快速的从非聚集索引的入口导航到对应的行。现在,是时候介绍更多的细节了。标签的内容会根据表示表示堆表还是聚集索引表,而不同。 不管表是堆表还是聚集索引表,表中的每一行都会位于页的一行。页可能是数据文件的第n页。文件可能是组成数据库的文件集合中的第n个文件。因此,数据库中的每一行,在任何时间,都可以用三个数字来标识:文件号-页号-....

文章 2017-11-26 来自:开发者社区

【翻译】SQL Server索引进阶:第八级,唯一索引

本级别我们将测试唯一索引。唯一索引比较特别,不仅提高查询的性能,同时也带来数据完整性的好处。在SQL Server中,唯一索引是强制主键和候选键约束的唯一合理的方法。 唯一索引和约束 唯一索引不同于其他索引,入口不允许有相同的索引键值。因为索引的每个入口都会映射表中的一行,不允许相同的索引入口,也就是不允许表中存在相同的行。这就是为什么唯一索引是强制主键和候选键约束的。 定义主键约束或者唯一索引....

本页面内关键词为智能算法引擎基于机器学习所生成,如有任何问题,可在页面下方点击"联系我们"与我们沟通。

产品推荐