`
357029540
  • 浏览: 735932 次
  • 性别: Icon_minigender_1
  • 来自: 重庆
社区版块
存档分类
最新评论

在SQLSERVER中查找缺失和无用的索引SQL

阅读更多
--缺失的索引
SELECT  avg_total_user_cost * avg_user_impact * ( user_scans + user_seeks ) AS PossibleImprovement , 
        last_user_seek , 
        last_user_scan , 
        [statement] AS [Object] , 
        'CREATE INDEX [IDX_' + CONVERT(VARCHAR(32), GS.group_handle) + '_' 
        + CONVERT(VARCHAR(32), D.index_handle) + '_' 
        + REPLACE(REPLACE(REPLACE([STATEMENT], ']', ''), '[', ''), '.', '') 
        + ']' + ' ON ' + [statement] + ' (' + ISNULL(equality_columns, '') 
        + CASE WHEN equality_columns IS NOT NULL 
                    AND inequality_columns IS NOT NULL THEN ',' 
               ELSE '' 
          END + ISNULL(inequality_columns, '') + ')' + ISNULL(' INCLUDE (' 
                                                              + included_columns 
                                                              + ')', '') AS Create_Index_Syntax 
FROM    sys.dm_db_missing_index_groups AS G 
        INNER JOIN sys.dm_db_missing_index_group_stats AS GS ON G.index_group_handle = GS.group_handle 
        INNER JOIN sys.dm_db_missing_index_details AS D ON G.index_handle = D.index_handle 
ORDER BY statement,PossibleImprovement desc


--无用的索引
SELECT  ind.index_id , 
        obj.name AS TableName , 
        ind.name AS IndexName , 
        ind.type_desc , 
        indUsage.user_seeks , 
        indUsage.user_scans , 
        indUsage.user_lookups , 
        indUsage.user_updates , 
        indUsage.last_system_seek , 
        indUsage.last_user_scan , 
        'drop index [' + ind.name + '] ON [' + obj.name + ']' AS DropIndexCommand 
FROM    sys.indexes AS ind 
        INNER JOIN sys.objects AS obj ON ind.object_id = obj.object_id 
        LEFT JOIN sys.dm_db_index_usage_stats indUsage ON ind.object_id = indUsage.object_id 
                                                          AND ind.index_id = indUsage.index_id 
WHERE   ind.type_desc <> 'HEAP' 
        AND obj.type <> 'S' 
        AND OBJECTPROPERTY(obj.object_id, 'isusertable') = 1 
        AND ( ISNULL(indUsage.user_seeks, 0) = 0 
              AND ISNULL(indUsage.user_scans, 0) = 0 
              AND ISNULL(indUsage.user_lookups, 0) = 0 
            ) 
ORDER BY obj.name , 
        ind.name
分享到:
评论

相关推荐

    sql server 2000 试题汇编答案

    3. **数据库架构**:SQL Server 2000中的数据库由表、视图、存储过程、触发器、索引、约束等构成。表是数据的主要载体,视图是虚拟的表,存储过程是预编译的SQL语句集合,触发器用于响应特定的数据更改事件,索引...

    SQLServer7指南(下)

    《SQLServer7指南(下)》是一份专为SQL Server 7.0用户设计的详尽教程,旨在帮助用户深入理解和掌握这一版本的数据库管理系统。SQL Server 7.0是微软发布的一个重要的数据库产品,虽然现在已经较为老旧,但对于理解...

    SQL Server 2008内存及IO性能监控

    在SQL Server 2008中,内存管理和IO性能监控是数据库管理员进行系统优化和问题排查的关键环节。本文将深入探讨这两个方面的监控方法,帮助你更好地理解和管理SQL Server的资源利用。 一、内存管理 1. **内存架构**...

    如何解决SQL Server内存不断增加问题

    在实际运行过程中,有时会遇到SQL Server实例占用内存不断增加的问题,这可能导致系统性能下降甚至影响其他应用程序的运行。解决这一问题需要理解SQL Server的内存管理策略以及如何进行配置优化。 SQL Server在启动...

    经典SQLServer操作脚本

    例如,CHARINDEX可以查找子字符串的位置,REPLACE用于替换字符串中的某个部分,LEFT和RIGHT则可以获取字符串的左边或右边指定数量的字符。 3. **排序**: ORDER BY子句是SQL语句中不可或缺的部分,用于对查询结果...

    sqlserver2005工具

    综上所述,"sqlserver2005工具"可能是一个优化过的第三方工具,具备SQL Server Management Studio的部分或全部功能,并且在特定方面(如速度)有所改进。无论具体工具如何,了解并熟练掌握这些SQL Server 2005的核心...

    SQL Server性能优化专题之五:负载均衡

    在SQL Server性能优化的过程中,负载均衡是一个至关重要的概念,尤其对于处理大型数据库的场景。负载均衡旨在有效地分配系统资源,确保服务器性能的稳定性和高可用性,避免单一节点过载,提高整体系统的响应时间和...

    SQL Server索引设计与调优

    在SQL Server数据库管理系统中,索引是提升查询性能的关键元素。索引设计与调优是数据库管理员和开发人员必备的技能,它直接影响到系统的响应速度和整体性能。本篇文章将深入探讨SQL Server索引的基本概念、类型、...

    SQL Server 2000完结篇系列之十:SQL Server 2000性能优化答疑

    在SQL Server 2000性能优化答疑这个专题中,我们将深入探讨如何提升数据库系统的运行效率,解决在实际操作中可能遇到的各种性能瓶颈问题。SQL Server 2000是微软公司推出的一款关系型数据库管理系统,尽管现在已经...

    SQLServer 2019

    SQL Server 2019是微软公司推出的数据库管理系统,它在SQL Server系列中扮演着重要的角色,特别是对于那些需要高效、可靠且经济实惠的数据存储和管理解决方案的企业而言。本篇文章将深入探讨SQL Server 2019的核心...

    SQL Server数据库基础

    SQL Server数据库基础是数据库管理领域中的重要组成部分,尤其对于企业级数据存储和处理而言,它扮演着不可或缺的角色。本文将深入探讨SQL Server的基础知识,包括其核心概念、安装配置、数据类型、表的创建与管理、...

    sql server 2008 dba入门经典代码

    在SQL Server 2008中,可以创建聚集索引(决定了数据物理排序)和非聚集索引。理解何时使用唯一索引、全文索引或空间索引,以及如何通过`ALTER INDEX`进行重建或重新组织,是优化查询性能的重要步骤。 五、备份与...

    MS SQL Server语句追踪器

    在本文中,我们将深入探讨SQL Server语句追踪器的功能、用途以及如何使用它。 SQL Server语句追踪器提供了多种追踪模板,适用于不同场景。例如,"TSQL Profiling"模板可以捕获所有T-SQL相关的事件,包括查询、插入...

    Microsoft SQL Server 管理员手册

    在SQL Server中,用户访问控制和权限管理是关键。管理员应掌握如何创建和管理登录账户、用户、角色,以及设置权限和角色成员资格。此外,理解SQL Server的身份验证模式(Windows身份验证和混合模式)以及加密技术也...

    SQL server课件

    接下来是数据库创建,学习者将学习如何使用SQL Server Management Studio (SSMS) 创建新的数据库,理解数据库文件类型(如主数据文件和日志文件)以及它们在数据库操作中的作用。此外,还将涉及数据库的备份与恢复...

    SQL server2012教学课件

    SQL Server 2012是微软公司推出的一款关系型数据库管理系统(RDBMS),在业界广泛应用于数据存储、管理和分析。这款产品提供了全面的数据解决方案,支持企业级的高性能、安全性以及可扩展性。SQL Server 2012引入了...

    SQL Server 2005 盛宴系列11-数据库工具

    在本节"SQL Server 2005 盛宴系列11-数据库工具"中,我们将深入探讨SQL Server 2005中的各种管理和开发工具,这些工具是数据库管理员和开发人员日常工作中不可或缺的部分。SQL Server 2005作为微软推出的强大数据库...

    SQL Server 2000数据库开发从零开始(1/2)

    SQL Server 2000是微软公司推出的一款关系型数据库管理系统(RDBMS),在当时广泛应用于企业级数据存储和管理。它提供了强大的数据处理能力、高可用性、安全性以及易用性,深受开发者喜爱。 1. **SQL Server 2000...

    sqlserver数据库查看器

    SQLServer数据库查看器是一款专为管理和查看SQL Server服务器上的数据库设计的应用程序。它提供了全面的数据库浏览和查询功能,使得用户能够轻松地查看服务器上的所有数据库,以及数据库中包含的表和字段信息。这款...

Global site tag (gtag.js) - Google Analytics