SQL SERVER 查询与整理索引碎片
程序员文章站
2022-06-27 14:15:31
重建索引 查询索引碎片 ......
重建索引
1 use database_name; 2 3 declare @tablename varchar(255) 4 declare @sql nvarchar(500) 5 declare @fillfactor int 6 set @fillfactor = 80 7 declare tablecursor cursor for 8 select object_schema_name([object_id])+'.['+name+']' as tablename 9 from sys.tables w 10 open tablecursor 11 fetch next from tablecursor into @tablename 12 while @@fetch_status = 0 13 begin 14 set @sql = 'alter index all on ' + @tablename + ' rebuild with (online=off,fillfactor=80);' --' rebuild with (fillfactor = ' + convert(varchar(3),@fillfactor) + ')' 15 exec (@sql) 16 fetch next from tablecursor into @tablename 17 end 18 close tablecursor 19 deallocate tablecursor 20 go
查询索引碎片
use database_name; select dbschemas.[name] as 'schema', dbtables.[name] as 'table', dbindexes.[name] as 'index', indexstats.alloc_unit_type_desc, indexstats.avg_fragmentation_in_percent, indexstats.page_count from sys.dm_db_index_physical_stats (db_id(), null, null, null, null) as indexstats inner join sys.tables dbtables on dbtables.[object_id] = indexstats.[object_id] inner join sys.schemas dbschemas on dbtables.[schema_id] = dbschemas.[schema_id] inner join sys.indexes as dbindexes on dbindexes.[object_id] = indexstats.[object_id] and indexstats.index_id = dbindexes.index_id where indexstats.database_id = db_id() and dbindexes.[name] not like 'pk_%' order by indexstats.avg_fragmentation_in_percent * page_count desc
上一篇: 依赖注入与哪些事情无关?
下一篇: 封装个 Android 的高斯模糊组件
推荐阅读
-
提升SQL Server速度 整理索引碎片
-
Sql Server 数据库索引整理语句,自动整理数据库索引
-
在SQL Server中查询资料库的TABLE数量与名称的sql语句
-
sql索引碎片产生的原理 解决碎片的办法(sql碎片整理)
-
sql server 索引阐述系列五 索引参数与碎片
-
sql server 索引阐述系列七 索引填充因子与碎片
-
从创建索引过程中内存变化来看SQL Server与MySQL的内存淘汰算法
-
在SQL Server中,索引是一种增强式的存在,这意味着,即使没有索引,SQL Server仍然可以实现应有的功能。但索引可以在大多数情况下大大提升查询性能,
-
Microsoft SQL Server 查询处理器的内部机制与结构(1)
-
利用 SQL Server 过滤索引提高查询语句的性能分析