SQLSERVER 索引的基本应用

本文详细介绍了数据库索引中的聚集索引和非聚集索引,强调了它们的特性和适用场景。聚集索引决定了数据的物理顺序,适合变动小、重复率低的列,而一张表只能有一个聚集索引。非聚集索引则不影响数据物理顺序,适合频繁查询的字段。创建和修改索引的示例以及填充因子的调整策略也被提及,以提高查询效率。正确的索引策略对于数据库性能至关重要,不恰当的聚集索引可能导致数据写入速度下降。
摘要由CSDN通过智能技术生成

非聚集索引

聚集索引是适合字段变动不大,尽量不要出现Update中使用的字段、出现字段重复率小的列,因为聚集索引是对数据物理位置相同的索引,所以一张表中只能出现一个聚集索引。

[聚集索引的特征]:代表全部数据存储的位置索引,不能经常去更新这个字段,最好不出现重复。

聚集索引

非聚集索引叫法上细分为唯一索引、全文索引、普通索引,我们在进项条件查询时,作为条件过滤的字段通常被设置为非聚集索引,这样就不需要去读取原始记录,直接查询索引将大大的节省时间。

[非聚集索引的特征]:不影响数据存储的物理顺序,对字段的修改、删除、新增来说影响不大,这样我们就可以把常错做的字段并且有需要快速查询的字段定位非聚集索引

**不正确建聚集索引的影响:**可能会导致每次插入数据都要重新编排索引位置,导致数据的写入极慢;

创建索引举例

CREATE CLUSTERED INDEX [ID] --创建聚集索引
ON [dbo].CodeAPN (ID)
WITH FILLFACTOR = 30 --填充因子为30%
–为[CodeAPN表的ID字段创建聚集索引

CREATE NONCLUSTERED INDEX [Name] --创建非聚集索引
ON [dbo].CodeAPN
WITH FILLFACTOR = 30 --填充因子为30%
–为[CodeAPN表的Name字段创建索引

修改索引

ALTER INDEX ALL ON CodeAPN
REBUILD WITH (FILLFACTOR=60,
SORT_IN_TEMPDB=ON,
STATISTICS_NORECOMPUTE=ON)
–更新CodeAPN表所有的索引
–填充因子 FILLFACTOR
–创建或重新生成索引时,通过将SORT_IN_TEMPDB选项设置为 ON,可以将SQL Server数据库引擎定向到使用tempdb来存储用于生成索引的中间排序结果。
–STATISTICS_NORECOMPUTE=ON:过时的统计信息不会自动重新计算,STATISTICS_NORECOMPUTE=OFF:启用自动统计信息更新。

填充因子参考

填充因子主要是在一些字段中我们可以根据读写比例来灵活调整,以便更大的发挥出索引的特性。
1、低更改的表(读写比率为100:1):100%的填充因子
2、高更改的表(写超过读):50-70%的填充因子
3、读写各一半的:80-90%的填充因子

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值