CREATE TABLE TEST(ID INT,UNAME VARCHAR(10));
--非聚集索引
CREATE INDEX IDX_TONY ON TEST(ID);

查看TEST表中IDX_TONY1索引的碎片信息
DBCC SHOWCONTIG(TEST,IDX_TONY1);
/*
扫描页数:如果你知道行的近似指和表或索引里的行数,那么你可以估计出索引里的页数,如果明显比你估计的页数要高,说明存在内部碎片
扫描区数:用扫描页数除以8,四舍五入到下一个最高值。该值应该和DBCC SHOWCONTIG返回的扫描扩展盘区数一致。如果DBCC SHOWCONTIG返回的数高,说明存在外部碎片。碎片的严重程度依赖于刚才显示的值比估计值高多少
区切换次数:该数应该等于扫描区数减1,高了则说明有外部碎片。
每个区的平均页数:该数是扫描页数除以扫描扩展盘区数,一般是8,小于8说明有外部碎片
扫描密度[最佳值:实际值]:这是扩展盘区的最佳值和实际值的比率,该百分比应该尽可能靠近100%,低了则说明有外部碎片
逻辑扫描碎片:无序页的百分比,该百分比应该在0%到10%之间,高了则说明有外部碎片
区扫描碎片:无序扩展盘区在扫描索引叶级页中所占的百分比,该百分比应该是0%,高了则说明有外部碎片
每页的平均可用字节数:所扫描的页上的平均可用字节数,越高说明有内部碎片,不过在你用这个数字决定是否有内部碎片之前,应该考虑fill factor(填充因子)
平均页密度(完整):每页上的平均可用字节数的百分比的相反数,低的百分比说明有内部碎片
*/

CREATE TABLE TEST(ID INT,UNAME VARCHAR(10));
--非聚集索引
CREATE INDEX IDX_TONY ON TEST(ID);
CREATE INDEX IDX_TONY2 ON TEST(UNAME);
--带填充因子的索引
CREATE INDEX IDX_ID1 ON TEST(ID) WITH (PAD_INDEX=ON, FILLFACTOR=20);
--填充因子一般设置的原则是,数据变化较大,填充因子设较小值,而数据变化较小,填充因子设较大值,只读表的填充因子可设置为100--删除索引
DROP INDEX TEST.IDX_TONY;
DROP INDEX TEST.IDX_ID1;--唯一聚集索引
CREATE UNIQUE CLUSTERED INDEX IDX_UN_TONY ON TEST(ID);
DROP INDEX TEST.IDX_UN_TONY;--聚集索引的顺序就是数据的物理存储顺序,对于一个表来说,只有一个聚集索引(类似字典字母顺序)
--非聚集索引的顺序跟数据的物理顺序无关,索引与数据存放在不同的物理区域,一个表可以有多个(类似字典偏旁部首)--查看索引定义
EXEC SP_HELPINDEX TEST;
--TEST表的索引情况
SELECT * FROM sys.indexes WHERE object_id=object_id('TEST');--修改索引名
EXEC SP_RENAME 'TEST.IDX_TONY2','IDX_TONY1';--更新TEST表中全部索引的统计信息
UPDATE STATISTICS TEST;--增加AGE字段
ALTER TABLE TEST ADD AGE INT NOT NULL DEFAULT 0;--查看IO信息
SET STATISTICS IO ON;
SELECT * FROM TEST WHERE ID>4;
DBCC TRACEON(3604,2588);
DBCC IND(test,TEST,-1);DBCC SHOW_STATISTICS(TEST,'IDX_ID2');--复合索引
CREATE INDEX IDX_UNAME_AGE ON TEST(UNAME,AGE);
--覆盖索引
CREATE INDEX IDX_UNAME_AGE2 ON TEST(ID) INCLUDE(UNAME,AGE);/*
如何选择:
1、覆盖索引可以使得索引键变化引起的波动更小。因为如果索引列发生变化,那么索引结构就要调整,如果包含列的值发生变化,整个索引的结构不会发生变化,只是包含列中的值进行更新而已
2、索引中的数据列越少,数据分布的统计维护的成本就越小
3、如果是频繁的写操作,一般索引列不要太多;如果是频繁大量数据读取,可以考虑把一些列包含在索引列
其实都是一种“空间换时间”的策略,提高查询速度
*/

重建单表的所有索引和数据库遍历所有表的索引

DBCC SHOWCONTIG(表名);EXEC sp_helpindex 表名;--单个表的所有索引重建
ALTER INDEX ALL ON 表名 REBUILD;--重建指定数据库的所有表的所有索引
USE 数据库名
DECLARE @name varchar(100)
DECLARE tony_cursor CURSOR FOR
SELECT [name] FROM sysobjects WHERE xtype='u'
OPEN tony_cursor
FETCH NEXT FROM tony_cursor  INTO @name
WHILE @@FETCH_STATUS = 0 BEGIN
PRINT @name
DBCC DBREINDEX (@name, '', 90)
FETCH NEXT FROM tony_cursor  INTO @name END
CLOSE tony_cursor
DEALLOCATE tony_cursor

SQLSERVER索引汇总相关推荐

  1. sqlserver索引维护(重新组织生成索引)

    sqlserver索引的维护 1:查看索引碎片大于百分三十以上的索引 select object_id= object_id,indexid = index_id,partitionnum = par ...

  2. 电子科学与技术相关索引汇总

    电子科学与技术相关索引汇总 关于安装deepin+window10双系统有时没有声音的问题 关于deepin系统安装design compiler的问题解答 基于51单片机的交通灯控制设计 基于物联网 ...

  3. .NET Core微服务之路:文章系列和内容索引汇总 (v0.52)

    原文:.NET Core微服务之路:文章系列和内容索引汇总 (v0.52) 微服务架构,对于从事JAVA架构的童鞋来说,早已不是什么新鲜的事儿,他们有鼎鼎大名的Spring Cloud这样的全家桶框架 ...

  4. SqlServer 索引

    BranchInfo 表索引设置 --表扫描,索引无效 SELECT * FROM dbo.BranchInfo WHERE LEN(PoiId)>0 --索引扫描 SELECT * FROM ...

  5. SqlServer索引的原理与应用

    索引的概念 索引的用途:我们对数据查询及处理速度已成为衡量应用系统成败的标准,而采用索引来加快数据处理速度通常是最普遍采用的优化方法. 索引是什么:数据库中的索引类似于一本书的目录,在一本书中使用目录 ...

  6. 深入理解Sqlserver索引

    1. Sqlserver中索引分为聚集索引和非聚集索引: 聚集索引:表中数据的物理存储的顺序与索引顺序完全相同(字典的按拼音查法),检索效率比非聚集索引高,但对数据更新影响较大. 非聚集索引:表中数据 ...

  7. SqlServer 索引及优化

    (一)深入浅出理解索引结构 实际上,您可以把索引理解为一种特殊的目录.微软的SQL SERVER提供了两种索引:聚集索引(clustered index,也称聚类索引.簇集索引)和非聚集索引(nonc ...

  8. SqlServer索引介绍

    索引的概念 索引的用途:我们对数据查询及处理速度已成为衡量应用系统成败的标准,而采用索引来加快数据处理速度通常是最普遍采用的优化方法. 索引是什么:数据库中的索引类似于一本书的目录,在一本书中使用目录 ...

  9. sqlserver索引

    文章目录 前言 一.索引的优点与缺点 优点 缺点 二.聚集索引和非聚集索引 聚集索引 举个栗子 非聚集索引 举个栗子 三.两种索引如何选择 sqlserver如何创建两种索引 聚集索引 非聚集索引 删 ...

最新文章

  1. 分布式缓存服务器设计原理
  2. inline-block什么意思中文_css中inline-block是什么?inline-block布局的使用
  3. golang string 转换 uint64_Golang 的 #x27;print#x27; 源码解读
  4. 嘿,你有没有发现我今天有什么不同?
  5. dedecms批量删除文档关键词可以吗
  6. Qt setMargin()和setSpacing() 的含义
  7. 抓取新浪的每日星座运势
  8. ActiveXObject
  9. hashmap中的key是有序的么_深入理解HashMap遍历元素的顺序
  10. ISO12233分辨率测试卡的使用方法
  11. AI上推荐 之 FM和FFM(九九归一)
  12. CISCO路由基本配置命令
  13. 英伟达官网怎么找老版本的显卡驱动
  14. android 添加字幕,手机视频加字幕app 怎样用安卓手机在视频画面加文字字幕
  15. 我心中最敬业的天王 刘德华|分析天王近700多首歌曲
  16. 微信小程序emoji表情输入框制作
  17. 大数据分析——Matplotlib入门教程
  18. 练习:JSP相关试题
  19. ★★中国著名“正版”软体的网站★★
  20. 2022第十三届蓝桥杯JAVAB组省赛总结

热门文章

  1. JS模拟实现数组的map方法
  2. 如何将网站升级为HTTPS协议(整理)
  3. HDU2191——悼念512汶川大地震遇难同胞——珍惜现在,感恩生活
  4. mfc-PlaySound
  5. 百度人脸识别技术应用003---百度云离线SDK_Android版_功能分析_获取摄像头视频流中的图片_发给百度人脸识别API_识别搜索_或先同步百度云人脸信息_然后本地人脸识别
  6. C++_程序内存模型_new运算符---C++语言工作笔记030
  7. K8S_Google工作笔记0007---通过kubeadm方式_部署node节点和集群测试
  8. Netty工作笔记0004---BIO简介,介绍说明
  9. STM32工作笔记0085---UCOSIII信号量和互斥信号量(上)
  10. 人工智能TensorFlow工作笔记005---计算图的基本应用_认识计算图