--==============================================
--查看可能缺失的索引
SELECT
mig.*
,migs.*
,mid.*
FROM sys.dm_db_missing_index_group_stats AS migs
INNER JOIN sys.dm_db_missing_index_groups AS mig
ON (migs.group_handle = mig.index_group_handle)
INNER JOIN sys.dm_db_missing_index_details AS mid
ON (mig.index_handle = mid.index_handle)
--查看索引碎片
--'DETAILED'选项会导致扫描全表,慎用
SELECT OBJECT_NAME (ips.[object_id]) AS 'Object Name',
si.name AS 'Index Name',
ROUND (ips.avg_fragmentation_in_percent, 2) AS 'Fragmentation',
ips.page_count AS 'Pages',
ROUND (ips.avg_page_space_used_in_percent, 2) AS 'Page Density'
FROM sys.dm_db_index_physical_stats (DB_ID ('SQLskillsDB'), NULL, NULL, NULL, 'DETAILED')
ips CROSS APPLY sys.indexes si
WHERE si.object_id = ips.object_id
AND si.index_id = ips.index_id
AND ips.index_level = 0 -- only the leaf level
AND ips.avg_fragmentation_in_percent > 10; -- filter on fragmentation
GO
--===============================================
--查看索引结构
;WITH T1
AS (
SELECT IC.* ,
C.name AS ColumnName
FROM sys.index_columns IC
INNER JOIN sys.columns C
ON IC.object_id = C.object_id
AND IC.column_id = C.column_id
)
SELECT
--DB_ID() AS DatabaseID,
DB_NAME() AS DatabaseName ,
SCHEMA_NAME(TB.schema_id) AS SchemaName ,
TB.name AS TableName ,
--IX.index_id AS IndexId,
ISNULL(IX.name, '') AS IndexName ,
IX.type_desc AS IndexType ,
ISNULL(IXK.ix_index_column_name, '') AS IndexKey ,
ISNULL(IXK.ix_index_include_column_name, '') AS IndexIncludeColumn ,
ISNULL(IX.filter_definition, '') AS FilerDefinition ,
IX.is_primary_key AS IsPrimaryKey ,
IX.is_unique AS IsUnique ,
IX.is_disabled AS IsDisabled ,
IX.fill_factor AS FileFactor ,
IX.has_filter AS HasFiler ,
IX.ignore_dup_key AS IgnoreDuplicateKey ,
DS.name AS DataSpace ,
ISNULL(PS.name, '') AS PartitionScheme ,
ISNULL(IXC.ColumnName, '') AS PartitionKey ,
IX.allow_page_locks AS AllowPageLocks ,
IX.allow_row_locks AS AllowRowLocks ,
IX.is_padded AS IsPadded
FROM sys.tables TB
INNER JOIN sys.indexes IX
ON TB.object_id = IX.object_id
INNER JOIN sys.data_spaces DS
ON DS.data_space_id = IX.data_space_id
LEFT JOIN sys.partition_schemes PS
ON IX.data_space_id = PS.data_space_id
LEFT JOIN T1 AS IXC ON IX.object_id = IXC.object_id
AND IX.index_id = IXC.index_id
AND IXC.partition_ordinal = 1
OUTER APPLY (
SELECT ix_index_column_name =
STUFF(REPLACE(REPLACE((
SELECT CASE WHEN T1.is_descending_key = 1
THEN T1.ColumnName+ ' desc'
ELSE T1.ColumnName
END AS column_name
FROM T1
WHERE IX.object_id = T1.object_id
AND IX.index_id = T1.index_id
AND T1.is_included_column = 0
ORDER BY index_column_id
FOR XML AUTO),'<T1 column_name="',','), '"/>', ''),1, 1, '') ,
ix_index_include_column_name =
STUFF(REPLACE(REPLACE(( SELECT
T1.ColumnName AS column_name
FROM T1
WHERE IX.object_id = T1.object_id
AND IX.index_id = T1.index_id
AND T1.is_included_column = 1
ORDER BY index_column_id
FOR XML AUTO),'<T1 column_name="',','), '"/>', ''),1, 1, '')
) AS IXK
--WHERE TB.name='t_coupon'
ORDER BY TableName,IndexKey,IndexIncludeColumn
--==========================================
--查看索引的使用情况
--索引在重建或删除新建时sys.dm_db_index_usage_stats中相关的数据会被清除
--索引在重整是不会清除sys.dm_db_index_usage_stats的数据
SELECT
DB_NAME(ixu.database_id) DataBase_Name,
OBJECT_NAME(ixu.object_id) Table_Name,
ix.name Index_Name ,
(
SELECT MAX(s.rows)
FROM sysindexes s
WHERE s.id = ixu.object_id
) AS Table_Rows ,
STATS_DATE(ixu.object_id, ixu.index_id) AS statistic_time,
ixu.user_updates,
ixu.last_user_seek,
ixu.user_seeks,
ixu.last_user_scan,
ixu.user_scans,
ixu.last_user_lookup,
ixu.user_lookups,
ixu.user_updates/(ISNULL(ixu.user_seeks,0)
+ISNULL(ixu.user_scans,0)+1) AS UseRate
FROM sys.dm_db_index_usage_stats ixu
INNER JOIN sys.indexes ix
ON ixu.object_id = ix.object_id
AND ixu.index_id = ix.index_id
INNER JOIN sys.objects ob
ON ixu.object_id = ob.object_id
WHERE ob.type = 'U'
AND ob.is_ms_shipped = 0
AND ixu.database_id=DB_ID()
--AND ix.object_id=OBJECT_ID('TableName')

INDEX--索引相关信息查看的更多相关文章

  1. inodes 相关信息查看

    查看inode数量 df -ih 查看磁盘信息 tune2fs -l /dev/sdc1 查看相关目录信息 /data/osd.3/bean_test/7/8/9# debugfs /dev/sdc2 ...

  2. linux服务器的相关信息查看(端口占用,cpu、内存占用,防火墙,系统信息,vim编辑器使用等)

    一.端口占用情况   https://www.cnblogs.com/CEO-H/p/7794306.html (1)查看所有端口.进程的使用情况:netstat -tunlp (2)查看某一端口的使 ...

  3. SQL存储过程相关信息查看转

    原文地址:http://www.cnblogs.com/minideas/archive/2009/10/29/1591891.html   --1.查看所有存储过程与函数      exec sp_ ...

  4. Linux CPU相关信息查看

    linux 下查看机器是cpu是几核的 几个cpu more /proc/cpuinfo |grep "physical id"|uniq|wc -l 每个cpu是几核(假设cpu ...

  5. SQL存储过程相关信息查看

    --1.查看所有存储过程与函数      exec sp_stored_procedures     或者      select * from dbo.sysobjects where OBJECT ...

  6. cpu相关信息查看

    查看CPU型号:grep "model name" /proc/cpuinfo | uniqdmidecode -s processor-version | uniq 查看物理CP ...

  7. MySQL查看数据库相关信息

    使用MySQL时,需要了解当前数据库的情况,例如当前的数据库大小.字符集.用户等等.下面总结了一些查看数据库相关信息的命令   1:查看显示所有数据库 mysql> show databases ...

  8. [转]MySQL查看数据库相关信息

    原文链接:MySQL查看数据库相关信息 使用MySQL时,需要了解当前数据库的情况,例如当前的数据库大小.字符集.用户等等.下面总结了一些查看数据库相关信息的命令 1:查看显示所有数据库 mysql& ...

  9. 关于MySQL相关的查看显示信息:

    关于MySQL相关的查看显示信息: 数据库范围: 一.查看所有的数据库:(仅仅是看数据库数量与名字) mysql> show databases; 二.查看某个数据库的创建信息:(主要看数据库的 ...

随机推荐

  1. 版本控制git之二-分支

    有人把 Git 的分支模型称为它的`‘必杀技特性’',也正因为这一特性,使得 Git 从众多版本控制系统中脱颖而出. 为何 Git 的分支模型如此出众呢? Git 处理分支的方式可谓是难以置信的轻量, ...

  2. leetcode840

    本题不清楚题意,从网上找到了python的解答,记录如下. class Solution: def numMagicSquaresInside(self, grid): ans, lrc = 0, [ ...

  3. 太白老师day6 1.代码块 2.is==id 3.小数据池

    1.代码块: 一个模块一个函数一个类,一个文件都是代码块 在交互模式下, 每一行都是一个代码块 2. is == 内存地址 就是id门牌号 在内存中id是唯一,如果两个变量指向的id相同,那么他们在内 ...

  4. 奶牛易物-Alpha版本测试报告

    1.在测试过程中总共发现了多少Bug?每个类别的Bug分别为多少个? a. 修复的bug: 1.mapper接口与mapper.xml文件绑定的问题; 2..配置逆向工程的配置文件的问题; 3.在编码 ...

  5. 读取properties文件并获取属性值

    1.Properties与ResourceBundle 两个类都可以读取属性文件中以key/value形式存储的键值对,ResourceBundle读取属性文件时操作相对简单. 2.Propertie ...

  6. Inversions SGU - 180

    这个是逆序对的裸题哇 归并排序或者树状数组~ 树状数组的话需要离散化一下··· emm确实很水很水很水··· 归并排序: #include <cstdio> #include <al ...

  7. JNDI数据源

    孤傲苍狼 只为成功找方法,不为失败找借口! JNDI学习总结(一)——JNDI数据源的配置 一.数据源的由来 在Java开发中,使用JDBC操作数据库的四个步骤如下:   ①加载数据库驱动程序(Cla ...

  8. OceanBase

    OceanBase 编辑 本词条缺少名片图,补充相关内容使词条更完整,还能快速升级,赶紧来编辑吧! OceanBase是一个支持海量数据的高性能分布式数据库系统,实现了 数千亿条记录.数百TB数据上的 ...

  9. ansible介绍与安装

    一.什么是ansible ansible是python中一套模块,系统中的一套自动化工具,可以用来作系统管理.自动化命令等任务. 二.ansible优势 .ansible是Python中一套完整的自动 ...

  10. mac上,sudo启动IDEA

    cd /Applications/IntelliJ IDEA 14.app/Contents/MacOS sudo ./idea # 就是这个启动,我一开始没有找到这个启动项...这样你就能运行80端 ...