怎样检查fragmentation
可以运行下面SQL语句:
SELECT dbschemas.[name] AS 'Schema',
dbtables.[name] AS 'Table',
dbindexes.[name] AS 'Index',
indexstats.index_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()
ORDER BY indexstats.avg_fragmentation_in_percent DESC
参考运行后这个avg_fragmentation_in_percent值,肯定是越小越好:
以下内容于2014-10-07 13:15分更新:
Insus.NET 写了一个存储过程,把avg_fragmentation_in_percent值大于或等于30的,rebuild索引:
CREATE PROCEDURE [dbo].[usp_RebuildIndex]
AS
BEGIN
IF OBJECT_ID('#t') IS NOT NULL
DROP TABLE #t
CREATE TABLE #t
(
[ID] INT IDENTITY(1,1) PRIMARY KEY NOT NULL,
[Table] NVARCHAR(128) NOT NULL,
[Index] NVARCHAR(128) NOT NULL
) INSERT INTO #t ([Table],[Index]) SELECT dbtables.[name],dbindexes.[name]
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] IS NOT NULL AND indexstats.avg_fragmentation_in_percent >= 30 DECLARE @r INT = 1, @rs INT = 0
SELECT @rs = MAX([ID]) FROM #t WHILE @r <= @rs
BEGIN
DECLARE @table NVARCHAR(128), @index NVARCHAR(128)
SELECT @table = [Table],@index = [Index] FROM #t WHERE [ID] = @r EXECUTE('ALTER INDEX '+@index +' ON '+ @table +' REBUILD;') SET @r = @r + 1
END
END
GO
怎样检查fragmentation的更多相关文章
- Optimized fragmentation improves the identification of peptides cross-linked by MS-cleavable reagents (文献分享一组-张宇星)
题目:Optimized fragmentation improves the identification of peptides cross-linked by MS-cleavable reag ...
- 无法向会话状态服务器发出会话状态请求。请确保 ASP.NET State Service (ASP.NET 状态服务)已启动,并且客户端端口与服务器端口相同。如果服务器位于远程计算机上,请检查。。。
异常处理汇总-服 务 器 http://www.cnblogs.com/dunitian/p/4522983.html 无法向会话状态服务器发出会话状态请求.请确保 ASP.NET State Ser ...
- 编译器开发系列--Ocelot语言6.静态类型检查
关于"静态类型检查",想必使用C 或Java 的各位应该非常熟悉了.在此过程中将检查表达式的类型,发现类型不正确的操作时就会报错.例如结构体之间无法用+ 进行加法运算,指针和数值之 ...
- 编译器开发系列--Ocelot语言4.类型定义的检查
这里主要介绍一下检查循环定义的结构体.联合体.是对成员中包含自己本身的结构体.联合体进行检查.所谓"成员中包含自己本身",举例来说,就是指下面这样的定义. struct point ...
- 【腾讯优测干货分享】Android内存泄漏的简单检查与分析方法
本文来自于Dev Club 开发者社区,非经作者同意,请勿转载,原文地址:http://dev.qq.com/topic/57d14047603a5bf1242ad01b 导语 内存泄漏问题大约是An ...
- Android开发学习之路-插件安装、检查应用是否安装解决方案
使用Bmob的时候,如果需要用到支付功能,就需要让应用去安装一个支付插件.而一般的做法是将插件放置在assets目录中,当用户需要支付,先检查是否能支付,不能的话,提示安装插件.代码: public ...
- AngularJS 脏检查深入分析
写在开头 关于Angular脏检查,之前没有仔细学习,只是旁听道说,Angular 会定时的进行周期性数据检查,将前台和后台数据进行比较,所以非常损耗性能. 这是大错而特错的.我甚至在新浪前端面试的时 ...
- 数据库日常维护-CheckList_03有关数据库数据文件大小检查
日常数据维护中容量规划是每个DBA的基础工作之一,也是非常重要的工作.在生产环境中一些比较重要的业务数据库会用前期容量规划不足,或出现意外的爆发式的数据增长,直至盛满整个磁盘空间,系统会无法使用,最终 ...
- 数据库日常维护-CheckList_02有关数据库备份检查
数据库备份是DB日常运维中最基本的也是最重要的工作,很多情况下都是做成作业形式实现自动化周期性的做全备.差异以及日志备份.那么,如果作业出现问题没有完成工作,我们可以设置自动报警如email被动提醒我 ...
随机推荐
- 事务之二:spring事务(事务管理方式,事务5隔离级别,7个事务传播行为,spring事务回滚条件)
事物管理对于企业应用来说是至关重要的,好使出现异常情况,它也可以保证数据的一致性. spring支持编程式事务管理和声明式事务管理两种方式. 编程式事务管理使用TransactionTemplate或 ...
- Netty实现原理浅析
1.总体结构 先放上一张漂亮的Netty总体结构图,下面的内容也主要围绕该图上的一些核心功能做分析,但对如Container Integration及Security Support等高级可选功能,本 ...
- Windows10 官方原版镜像下载途径 Label:win10解决方案
https://www.microsoft.com/en-gb/software-download/windows10ISO 设置浏览标签为手机以避免跳转,下载即可 或者手机打开该网址,获取下载链接 ...
- 【原创】 HBase 配置指南
HBase 默认配置 Centos6.5下Hbase配置 官网配置文档:http://hbase.apache.org/book.html#_configuration_files 中文翻译转自: ...
- 1117 Eddington Number
题意:给出了N个数字,确定一个尽可能大的数字E,要求这N个数字中大于E的数字有E个. 思路: 乍一看不知道题目在说啥.静下心来多读几遍题目,在草稿纸上比划比划,发现是个大水题.解释一下样例,原始序列为 ...
- 混搭下的C与C++内存操作
源自最近遇到一个的问题,先介绍一下背景.项目中混用了C与C++编程范式,鉴于项目成员背景不一,每个模块的负责人可以自行2选1.同时为了提高效率,C范式的模块被允许使用STL库的部分容器(其实也就仅仅大 ...
- Angular2快速入门-1.创建第一个app
一.环境搭建 Angular2 运行在nodejs 环境下,需要我们先创建好nodejs环境,具体操作 1.下载安装Nodejs,参考网址,https://nodejs.org/en/ 选择64位 ...
- Java 查询数据后进行递归操作
java的递归方法记录: private List<Map<String, Object>> generateOrgMapToTree(List<Map<Strin ...
- Lyx/LaTeX笔记04---插入伪代码
1 可用的宏包 常用的排版伪代码包有clrscode, algorithm, algorithmic, algorithmicx, algorithm2e 2 clrscode clrscode是著名 ...
- flask+jsonp跨域前后台交互(接口初体验)
1 # -*- coding: utf-8 -*- 2 from flask import Flask, jsonify 3 import psutil, time,json 4 5 app = Fl ...