指数原理与指标建立的注意事项

指标汇总,以及数据实际上是按顺序存储,和数据页的索引页。它就像一个参考手册,设计中的所有主题的秩序。一旦我们找到数据,我们要搜索,我们完成搜索。对于非聚集索引,索引是安全且独立于数据结构的。在索引中,我们找到数据,然后通过指针将其定位到实际数据。

在使用标准的B树来存储他们的信息服务器SQL索引,如下图所示,B树索引中的关键词搜索提供快速访问数据,B树记录类似的粘结在一起,B不代表两叉(二进制),而是代表平衡(平衡),和B的核心作用是保持树的平衡。伙伴遍历树下找到一个价值和定位的记录。因为树是平衡的,所以找到任何记录只需要等量的资源,以及采集的速度是一样的,因为从根指数具有相同的深度。


中间索引根据索引表大小的行数而异,如果使用较长的键(键)来创建索引,则页面只容纳较少的项,因此我们需要更多的分页索引(或更多的层),然后您需要找到更多的索引。需要较长时间才能找到所需信息,索引可能不太有用。

聚集索引

在聚集索引的叶级不仅包含索引键,而且数据页,另一个版本的数据本身是一个聚集索引,聚集索引键把数据表中的数据的基础上,页表是通过一个页面调用链(页面链)双向链表列表维护,因为页面链只能实际的数据页的方式,因此排序,一个表只能有一个聚集索引。
这里可能有误会。有许多文献,介绍了SQL Server索引,这将告诉读者:聚集索引的数据存储在物理顺序按排序顺序。如果你认为物理存储是磁盘本身,会有一种误解。想象一下,如果聚集索引需要保持在一个特定的顺序磁盘的实际数据,任何修改操作会产生很高的成本,当一个页面已满,需要拆分,所有后续页的数据必须向后移动,排序(排序)在聚集索引只表明数据页链逻辑有序。
大多数表需要一个聚集索引。优化器非常倾向于采用聚集索引,因为聚集索引可以找到数据直接在叶级。由于数据的逻辑顺序是定义聚集索引可以快速访问的范围值的查询,查询优化器可以发现只有一定范围内的数据页需要扫描。

非聚集索引

非聚集索引的叶级,并不包含所有的数据。除了核心价值观,在每个叶级的索引行(树的底部)包含一个书签(书签),它讲述了SQL Server来找到数据行对应的关键指标有可能会有一个书签。两种形式。如果桌子上有一个聚集索引、书签是聚集索引键对应的数据线。如果Biao是一个堆结构,书签是一行表示(行标识符,RID),在文件编号格式定位的实际行:页号:槽数。
主键(主键)和聚合索引(集群索引)
严格地说,主键与聚集索引无关。如果我们想说什么,那就是,当指数不聚集表中,主键创建聚集索引默认情况下(除非有特殊的设置nocluster)。
在主索引和聚集索引的处理中,请注意以下内容:
1。主键与聚集索引不分离。
2。尽可能收集索引键,避免在int外部使用数据类型。
三.尽量避免使用复合主键。

创建索引时要注意

1。总是包含一个聚合索引。
当一个聚合索引不包含在表中时,表中的数据是无序的,从而降低了数据检索的效率,甚至通过索引来缩小数据检索的范围,但由于数据本身是无序的,当从表中提取实际数据时,会导致频繁的位置问题。这也使得SQL Server基本上不用索引而不用聚集索引表来检索数据。
2。保证聚合索引的唯一性
因为聚集索引是一个没有聚集索引的行定位器,如果它不是唯一的,它将包含行定位器中的辅助数据,也会导致从表中提取数据。它需要在行定位器中使用辅助数据来定位数据,这将降低处理效率。
三.确保聚合索引是最小的。
每个群集键都是所有非聚集索引的叶节点记录。它意味着每个非聚集索引的索引叶中包含更有效的数据,这有助于提高索引效率。
4。覆盖指标
覆盖索引是包含在索引中的列,它包含数据处理中涉及的所有列,而覆盖索引是原始表的一个子集。因为子集包含了数据处理中涉及的所有列,所以这个子集的操作可以满足数据处理的需要。
覆盖索引的建立是使用列中的键列作为索引键,并将其他列作为包含列的索引(使用索引在语句中创建包含子句)。
5、适当指标
当数据发生变化时,SQL Server同步维护相关索引中的数据,过量索引会影响数据更改的处理效率,因此索引只能建立在频繁使用的列上。
一个适当的指标也体现在对索引列的组合控制。例如,如果有两列COL1和COL2,两列的组合会产生三种用法:单独使用单独使用col1,col2,同时使用COL1和COL2。如果你有每个案例的索引,你需要设置了三个指标,但它只能建立一个复合索引(COL1,COL2),可满足col1 + COL2,COL1和COL2是三种查询,并使用此查询col2会更不情愿(也可以分开统计),根据实际情况确定是否有必要建立一个单独的索引COL2。
特别注意:
不要创建重复索引。最常见的重复索引是为列创建主键和聚合索引。
与直接从表格中提取的数据相比,根据索引数据的检索过程,一个以上的索引,这一过程可以减少对数据的检索要求,并且用最少的时间,才能真正保证通过索引来提高数据检索的效率。
为了达到上述目的,索引键列的选择应遵循以下原则。
选择性原则
Selectivity是满足要求的记录总数的百分比。这个比例应该尽可能低,这样我们只能在索引扫描之后从基本表中提取少量数据。
如果这个比率很高,则不应在该列上考虑索引。
数据密度的原理
记录总数的百分比越高,比率越高,建立索引就越合适。
在考虑数据密度时,应注意数据分布问题。只有当检索密度高,用于建立索引是非常适合的。例如,如果一个表有10万条记录,虽然列不重复9万的记录,但如果经常检索和重复的列数只有2万的记录,此栏不适合于索引。另一方面,整体数据的密度小,但经常检索的数据密度,如订单状态一般,对几个订单的状态,但已关闭订单往往占大多数的数据,但数据的处理时间,基本上都是搜索不到关闭命令,下柱的条件是按订单的状态是非常有效的(SQL Server 2008该指标具有较好的筛选效果。
6。索引键列的大小
它通常是不适合建立索引列超过100byte。
7。复合索引键序列
在索引中,索引的顺序主要由索引中的每个键列决定。因此,对于复合索引,索引中的列顺序非常重要。在数据密度高、列选择性小、存储空间小的列上要优先考虑。