只有在创建索引时才会根据已经存在的数据决定

时间:2019-11-03 20:29来源:快三在线投注平台数据库
-- 创建聚集索引create table [dbo].[pub_stocktest] add constraint [pk_pub_stocktest] primary key clustered ([sid] asc)with (pad_index = off, statistics_norecompute = off, sort_in_tempdb = off, ignore_dup_key = off, online = off, allow_
-- 创建聚集索引
create table [dbo].[pub_stocktest] add  constraint [pk_pub_stocktest] primary key clustered 
(
[sid] asc
)with (pad_index = off, statistics_norecompute = off, sort_in_tempdb = off, ignore_dup_key = off, 
online = off, allow_row_locks = on, allow_page_locks = on) on [primary]

-- 创建非聚集索引
 create nonclustered index [ix_model] on [dbo].[pub_stocktest]
(
    [model] asc
)
include (     [name]) with (pad_index = off, statistics_norecompute = off, sort_in_tempdb = off, drop_existing = off, 
online = off, allow_row_locks = on, allow_page_locks = on, FILLFACTOR = 85) on [primary]

1.1 Filefactor参数

  使用Filefactor能够对索引的各类叶子分页存款和储蓄保留部分空间。对于聚集索引,叶等级包蕴了数额,使用Filefactor来调节表的保留空间,通过预先流出的长空,幸免了新的多少按梯次插入时,需腾出空位而进行分页分隔。
  Filefactor设置生效注意,只有在开创索引时才会基于现已存在的多寡调整留下的长空尺寸,如里需求能够alter index重新建立索引相提并论置原本钦赐的Filefactor值。
  在开立索引时,如果不点名Filefactor,就接受暗中同意值0 也正是填充满,可通过sp_configure 来布署全局实例。Filefactor也只就用于叶子级分页上。假如要在中游层调整索引分页,能够透过点名pad_index分选来实现.该接收会通报到目录上装有等级次序使用同意气风发的Filefactor。Pad_index也只有索引在新建或重新创立时有用。

1.2 Drop_existing 参数

  删除或重新组建二个点名的目录作为单个事务来管理。该项在重新组建集中索引时那二个有用,当删除三个聚焦索引时,sqlserver会重新建立各个非聚焦索引以便将书签从聚焦索引键改为PRADOID。倘使再新建大概重新建立集中索引,Sql server会再二回重城建总公司体的非集中索引,假如再新建或重新建立的聚焦索引键值相仿,能够安装Drop_existing=ON。

1.3 IGNORE_DUP_KEY

  是指若是三个update或然insert语句影响多行数据,但有风姿洒脱行键被发掘发生重值时,整个讲话就能够回滚,IGNORE_DUP_KEY=on时产生重复键值时不会孳生上上下下讲话的回滚,重复的行会被放弃其余的行会被插入或更新。

1.4 Statistics_norecompute

  选项决定了是不是要求活动更新索引上的总结,各个索引维护着该索引第4位字段的数值遍布的柱状图,在查询推行布置时,查询优化器利用这一个总计消息来剖断二个特定索引的实用。当数码到达一个阀值时,总计值会变。Statistics_norecompute选项允许八个关联的目录在多少更正时不自动更新总括值。该选拔覆盖了auto_update_statistics的on值。

1.5 ONLINE   

  值暗中认可OFF, 索引操作时期,基本功表和涉嫌的目录是不是可用于查询和数据更改操作。
  当班值日为ON时,能够世袭对功底表和目录进行查询或更新,但在长时间内获得sch_m架构纠正锁,必得等待此表上的具备拥塞事务达成,在操作时期,此锁会阻止全体别的交事务情。
  当班值日为OFF时,能够会拿到分享锁,堤防更新幼功表,但允许读操作

1.6 MAXDOP

  索引操作时期代表max degree of parallelism 实例配置,默许值为0, 依据近期系统专业负荷使用实际多少的计算机。

1.7 包罗性列(included columns)
  包罗列只在叶等第中现身,不调节索引行的依次,它效果与利益是使叶级别满含越多消息之所以覆盖索引的调优手艺,覆盖索引只出以后非聚焦索引中,在叶等第就足以找到满意查询的任何音信。

1.8 on [primary]

  在创立索引时 create index 最后贰个子句允许客户钦点索引被停放在哪儿。能够钦赐特定的文件组或预订义的分区方案。私下认可寄存与表文件组大器晚成致平日都是主文件组中。

1.9约束和目录

    当大家创制主键大概唯大器晚成性限定时,会创建四个唯朝气蓬勃性索引,被成立出来辅助自律的目录名称与限制名称相仿。
  限定是三个逻辑概念,而索引是多个大要概念,创设目录实际是开创七个据有存款和储蓄空间何况在数额改进操作中必需须到保证的大要结构。
  创立约束就索引内部结构或优化器的挑肥拣瘦来看是不曾区分的。

二 索引碎片  

  2.1 SHOWCONTIG 

--   SQLserver 2000使用SHOWCONTIG查看索引碎片 (已过时)
dbcc SHOWCONTIG (tablename,'indexname') 

  举个例子上面查询一个PUB_StockCollect表下的IX_StockModel索引

图片 1

  (1)Page Scanned-扫描页数:如果您理解行的贴近尺寸和表或索引里的行数,那么你能够估算出索引里的页数。看看扫描页数,倘若鲜明比你估摸的页数要高,表达存在内部碎片。

  (2)Extents Scanned-扫描扩张盘区数:用扫描页数除以8,四舍五入到下一个最高值。该值应该和DBCC SHOWCONTIG再次来到的扫视扩张盘区数大同小异。假设DBCC SHOWCONTIG再次来到的数高,表明存在外部碎片。碎片的惨恻程度注重Yu Gang才体现的值比估算值高多少。 

  (3)Extent Switches-扩充盘区按钮数:该数应该等于扫描扩大盘区数减1。高了则表达有表面碎片。

  (4)Avg. Pages per Extent-每一个增添盘区上的平分页数:该数是扫描页数除以扫描扩大盘区数,平常是8。小于8表明有表面碎片。

  (5)Scan Density [Best Count:Actual Count]-扫描密度[最好值:实际值]:DBCC SHOWCONTIG再次来到最可行的八个比重。那是扩充盘区的最棒值和实际值的比率。该比例应该尽也许贴近100%。低了则印证有表面碎片。

  (6)Logical Scan Fragmentation-逻辑扫描碎片:严节页的比例。该比例应该在0%到10%里头,高了则注解有表面碎片。

  (7)Extent Scan Fragmentation-扩充盘区扫描碎片:冬日增加盘区在扫描索引叶级页中所占的百分比。该比例应该是0%,高了则表达有外部碎片。

  (8)Avg. Bytes Free per Page-每页上的平均可用字节数:所扫描的页上的平均可用字节数。越高表明有中间碎片,可是在您用这几个数字垄断是或不是有此中碎片此前,应该思虑fill factor(填充因子卡塔 尔(英语:State of Qatar)。

  (9)Avg. Page Density (full)-平均页密度(完整卡塔尔:每页上的平分可用字节数的比例的相反数。低的比例表明有内部碎片。

  计算:(1)逻辑扫描碎片:越低越好 (2)平均页密度:五分之四左右最佳,低于%60重新建立索引,(3)最棒计数与事实上计数相差不小重新建立索引。

编辑:快三在线投注平台数据库 本文来源:只有在创建索引时才会根据已经存在的数据决定

关键词: