Sql Server 索引使用情况及优化的相关 Sql
来源:互联网 发布:大金淘宝 编辑:程序博客网 时间:2024/05/01 07:41
Sql Server 索引使用情况及优化的相关 Sql 语句,非常好的SQL语句,记录于此:
--Begin Index(索引) 分析优化的相关 Sql -- 返回当前数据库所有碎片率大于25%的索引-- 运行本语句会扫描很多数据页面-- 避免在系统负载比较高时运行-- 避免在系统负载比较高时运行declare @dbid intselect @dbid = db_id()SELECT o.name as tablename,s.* FROM sys.dm_db_index_physical_stats (@dbid, NULL, NULL, NULL, NULL) s,sys.objects owhere avg_fragmentation_in_percent>25 and o.object_id =s.object_idorder by avg_fragmentation_in_percent descGO-- 当前数据库可能缺少的索引-- 非常好用的 Sql 语句select d.* , s.avg_total_user_cost , s.avg_user_impact , s.last_user_seek ,s.unique_compilesfrom sys.dm_db_missing_index_group_stats s ,sys.dm_db_missing_index_groups g ,sys.dm_db_missing_index_details dwhere s.group_handle = g.index_group_handleand d.index_handle = g.index_handleorder by s.avg_user_impact descgo-- 自动重建或重新组织索引-- 比较好用,慎用,特别是对于在线 DB-- Ensure a USE <databasename> statement has been executed first.SET NOCOUNT ON;DECLARE @objectid int;DECLARE @indexid int;DECLARE @partitioncount bigint;DECLARE @schemaname nvarchar(130); DECLARE @objectname nvarchar(130); DECLARE @indexname nvarchar(130); DECLARE @partitionnum bigint;DECLARE @partitions bigint;DECLARE @frag float;DECLARE @command nvarchar(4000); -- Conditionally select tables and indexes from the sys.dm_db_index_physical_stats function -- and convert object and index IDs to names.SELECT object_id AS objectid, index_id AS indexid, partition_number AS partitionnum, avg_fragmentation_in_percent AS fragINTO #work_to_doFROM sys.dm_db_index_physical_stats (DB_ID(), NULL, NULL , NULL, 'LIMITED')WHERE avg_fragmentation_in_percent > 10.0 AND index_id > 0;-- Declare the cursor for the list of partitions to be processed.DECLARE partitions CURSOR FOR SELECT * FROM #work_to_do;-- Open the cursor.OPEN partitions;-- Loop through the partitions.WHILE (1=1) BEGIN; FETCH NEXT FROM partitions INTO @objectid, @indexid, @partitionnum, @frag; IF @@FETCH_STATUS < 0 BREAK; SELECT @objectname = QUOTENAME(o.name), @schemaname = QUOTENAME(s.name) FROM sys.objects AS o JOIN sys.schemas as s ON s.schema_id = o.schema_id WHERE o.object_id = @objectid; SELECT @indexname = QUOTENAME(name) FROM sys.indexes WHERE object_id = @objectid AND index_id = @indexid; SELECT @partitioncount = count (*) FROM sys.partitions WHERE object_id = @objectid AND index_id = @indexid;-- 30 is an arbitrary decision point at which to switch between reorganizing and rebuilding. IF @frag < 30.0 SET @command = N'ALTER INDEX ' + @indexname + N' ON ' + @schemaname + N'.' + @objectname + N' REORGANIZE'; IF @frag >= 30.0 SET @command = N'ALTER INDEX ' + @indexname + N' ON ' + @schemaname + N'.' + @objectname + N' REBUILD'; IF @partitioncount > 1 SET @command = @command + N' PARTITION=' + CAST(@partitionnum AS nvarchar(10)); EXEC (@command); PRINT N'Executed: ' + @command; END;-- Close and deallocate the cursor.CLOSE partitions;DEALLOCATE partitions;-- Drop the temporary table.DROP TABLE #work_to_do;GO-- 查看当前数据库索引的使用率-- 非常的有用SELECTobject_name(object_id) as table_name,(select namefrom sys.indexeswhere object_id = stats.object_id and index_id = stats.index_id) as index_name,*FROM sys.dm_db_index_usage_stats as statsWHERE database_id = DB_ID()order by table_name-- 指定表的索引使用情况declare @table as nvarchar(100)set @table = 't_name';SELECT( select name from sys.indexes where object_id = stats.object_id and index_id = stats.index_id) as index_name,*FROM sys.dm_db_index_usage_stats as statswhere object_id = object_id(@table)order by user_seeks, user_scans, user_lookups asc--End Index 分析优化的相关 Sql
- Sql Server 索引使用情况及优化的相关 Sql
- Sql Server 索引使用情况及优化的相关 Sql
- sql server 索引优化相关
- 在SQL Server中使用索引的技巧及sql索引优化策略
- SQL Server索引的使用和优化
- MS SQL SERVER索引优化相关查询
- Sql Server CPU 性能排查及优化的相关 Sql
- 如何获得SQL Server索引使用情况
- 怎样获得SQL Server索引使用情况
- [sql server] 索引及SQL优化综述SQL
- SQL Server查询优化技术及索引
- SQL Server 数据库索引及使用索引的小技巧
- SQL Server 索引相关
- 优化SQL Server索引
- 优化SQL Server索引
- sql Server 索引优化
- sql Server索引优化
- sql Server 索引优化
- log4j配置
- 我们应该如何对待开源?——看完ssh有感
- 第13周任务3
- windows下文件夹的备份
- printf中的short int, int, long int和long long int
- Sql Server 索引使用情况及优化的相关 Sql
- 日志文件管理和nologging的实现
- jbpm.cfg.xml配置
- 第13周任务4
- struts简单配置草稿
- 详解大端模式和小端模式
- 十三周实验报告(一)
- "北京卷烟厂信息化建设历程总结"
- Multiple View Geometry in Computer Vision 读书笔记