`
java-mans
  • 浏览: 11449341 次
文章分类
社区版块
存档分类
最新评论

非聚集索引查询

 
阅读更多

下面查询数据库的非聚集索引的所有记录数目,保留和使用空间:

USE DatabaseNameHere;
GO


-- Drop temporary table if exists
IF OBJECT_ID('tempDB.dbo.#IndexInfo') IS NOT NULL 
    DROP TABLE #IndexInfo ;
    
-- Create temporary table
CREATE TABLE #IndexInfo
(
          ObjectName VARCHAR(250),
        IndexName VARCHAR(250),
        IndexID INT,
        PartitionNumber INT,
        [#Records] INT,
        [Reserved(MB)] INT,
        [Used(MB)] INT
);


-- Collect index info
INSERT INTO #IndexInfo
SELECT  o.name AS ObjectName,
        i.name AS IndexName,
        i.index_id AS IndexID,
        p.partition_number AS PartitionID,
        p.[rows] AS [#Records],
        a.total_pages * 8 / 1024 AS [Reserved(MB)],
        a.used_pages * 8 / 1024 AS [Used(MB)]
FROM    sys.indexes AS i
        INNER JOIN sys.partitions AS p ON i.[object_id] = p.[object_id]
                                          AND i.index_id = p.index_id
        INNER JOIN sys.allocation_units AS a ON p.partition_id = a.container_id
        INNER JOIN sys.sysobjects o ON i.[object_id] = o.id
WHERE   i.name NOT LIKE 'sys%'
        AND o.name NOT LIKE 'sys%'
        AND i.[type] <> 1
ORDER BY a.total_pages DESC;


-- Return index info with TOTAL 
SELECT  ObjectName,
        IndexName,
        IndexID,
        PartitionNumber,
        [#Records],
        [Reserved(MB)],
        [Used(MB)]
FROM    #IndexInfo
UNION ALL
SELECT  'TOTAL',
        NULL,
        NULL,
        NULL,
        NULL,
        SUM(a.total_pages * 8 / 1024) AS [Reserved(mb)],
        SUM(a.used_pages * 8 / 1024) AS [Used(mb)]
FROM    sys.indexes AS i
        INNER JOIN sys.partitions AS p ON i.[object_id] = p.[object_id]
                                          AND i.index_id = p.index_id
        INNER JOIN sys.allocation_units AS a ON p.partition_id = a.container_id
        INNER JOIN sys.sysobjects o ON i.[object_id] = o.id
WHERE   o.name NOT LIKE 'sys%'
        AND i.[type] <> 1;
GO        


分享到:
评论

相关推荐

    SQL Server 索引结构及其使用(聚集索引与非聚集索引)

    SQL Server 索引结构及其使用(聚集索引和非聚集索引)的区别与实例讲解,提高查询速度。

    唯一非聚集索引变量传入时索引失效解决方案

    唯一非聚集索引留着, 再添加一个 非聚集索引,保留两个索引, 终于搞定了. CREATE UNIQUE NONCLUSTERED INDEX [IX_SF_CP_Detail_MAC2] ON [dbo].[SF_Cp_Detail] ( [Mac2] ASC ) WHERE ([MAC2]&lt;&gt;'' AND [MAC2] IS NOT...

    SQL Server 聚集索引和非聚集索引的区别分析

    聚集索引:物理存储按照索引排序非聚集索引:物理存储不按照索引排序优势与缺点聚集索引:插入数据时速度要慢(时间花费在“物理存储的排序”上,也就是首先要找到位置然后插入)查询数据比非聚集数据的速度快 ...

    简单例子理解主键,索引,聚集索引,复合索引,非聚合索引

    一、 创建主键(主键=主键索引=聚集索引) 主键是什么? 答:拿主键可以唯一确定一条数据,它和物理存储排序一致,不能为空,一个表只能有一个。 原本没有创建的主键的表在磁盘上存储为: Id=0;username=username0;sex...

    sql 聚集索引和非聚集索引(详细整理)

    聚集索引 一种索引,该索引中键值的...例如,如果应用程序执行 的一个查询经常检索某一日期范围内的记录,则使用聚集索引可以迅速找到包含开始日期的行,然后检索表中所有相邻的行,直到到达结束日期。这样有助于提

    Sql Server 数据库视图 索引等

    视图索引存储过程 事务显示事务 隐式事务 --索引 作用:提高查询效率 降低新增修改和删除的效率 --主键索引 唯一索引 聚集索引非聚集索引 --创建索引 --索引index 默认创建的是不唯一,非聚集索引

    SQL Server 索引基础知识

    2.聚集索引,非聚集索引 3.测试中一些常看的指标和清除缓存的方法 4.主键与聚集索引 5.理解newid()和newsequentialid() 6.索引的代价,使用场景 7.Indexing for AND 8.数据基本格式补充 9.Indexing for OR 10.Joins ...

    关于MySQL面试题中有关索引的九大难点全在这里了

    o非聚集索引:非聚集索引就是以非主键创建的索引,在叶子节点存储的是主键和索引列。 逻辑维度 o主键索引:一种特殊的唯一索引,不允许有空值。 o普通索引:MySQL中基本索引类型,允许空值和重复值。 o联合索引:多...

    SQL Server统计信息??在过滤索引上的统计信息

     从2008开始,引入了一个增强非聚集索引的新功能——过滤索引(filter index),可以使用带有where条件的语句来创建非聚集索引,过滤掉不需要的数据,降低索引的维护开销和存储空间,提高查询性能。  准备工作...

    SQL Server系统调优解决方案

    非聚集索引的最低行包含非聚集索引的键值,并且每个键值项都有指针指向包含该键值的数据行。数据行不按基于非聚集键的次序存储。如果一个表只有非聚集索引,它的数据行将按无序的堆集方式存储,非聚集索引可以建多个...

    浅析SQL Server的聚焦使用索引和查询执行计划

    上一篇《浅析SQL Server 聚焦索引对非聚集索引的影响》我们讲了聚集索引对非聚集索引的影响,对数据库一直在强调的性能优化,所以这一节我们统筹讲讲利用索引来看看查询执行计划是怎样的,简短的内容,深入的理解。...

    数据库系统概论chp3-2.pptx

    一个表可以拥有多个非聚集索引,每个非聚集索引提供访问数据的不同排序顺序。 数据库系统概论chp3-2全文共66页,当前为第10页。 3.唯一索引唯一索引是指索引值必须是唯一的。聚集索引和非聚集索引均可用于强制表内...

    数据库 索引

    文章目录数据库 索引1、概述2、索引的种类3、索引的底层实现原理3.1 索引的基础知识3.1 索引提高检索速度3.3 哈希索引4、聚集索引与非聚集索引4.1 聚集索引4.2 非聚集索引4.3 覆盖索引5、索引的最左分配原则6、总结 ...

    海量数据查询优化

    海量数据查询优化 包括聚集 非聚集索引的区别等内容

    详解SQL Server的聚焦过滤索引

    这一节我们还是继续讲讲索引知识,前面我们聚集索引、非聚集索引以及覆盖索引等,在这其中还有一个过滤索引,通过索引过滤我们也能提高查询性能,简短的内容,深入的理解。 过滤索引,在查询条件上创建非聚集索引(1...

    SQL2005入门到精通(15)

    第15章 索引和查询优化 312 15.1 索引概述 312 15.1.1 聚集索引和非聚集索引 312 15.1.2 填充因子 312 15.1.3 使用目录视图查看索引 313 15.2 用CREATE INDEX语句创建索引 313 15.2.1 基本语法 ...

    MySql数据库索引详解,索引看这一篇就够了

    6 主键索引,辅助索引,聚集索引,非聚集索引 6.1 MyISAM存储引擎-主键索引 6.2 MyISAM存储引擎-辅助索引 6.3 InnoDB存储引擎-主键索引 6.4 InnoDB存储引擎-辅助索引 7 索引的相关问题 7.1 索引的设计原则 7.2 一次...

    Sql Server查询性能优化之不可小觑的书签查找介绍

    工作好几年了,也写过不少SQL,却浑然不知道索引为何物,只知道数据库有索引这么个东西,分不清聚集索引和非聚集索引,只知道查询慢了建个索引查询就快了,到头来索引也建了不少,查询也确实快了,偶然问之:汝建之...

    实验3-视图和索引使用实验指南

    3. 在视图view1中的“学号”列上创建一个非聚集索引。 3、根据表Student,SC,Course,运用连接操作实现以下查询功能; 查询每位学生的选课情况以及每门课的课程成绩; 查询每门课程的选课情况并且只显示选课人数多于...

    【MySQL】查询优化与覆盖索引

    在了解覆盖索引之前我们先大概了解一下什么是聚集索引(主键索引)和辅助索引(二级索引) 聚集索引(主键索引): 聚集索引就是按照每张表的主键构造一颗B+树,同时叶子节点中存放的即为整张表的记录数据。 聚集索引的...

Global site tag (gtag.js) - Google Analytics