• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • MsSql
  • Mysql
  • oracle
  • MariaDB
  • DB2
  • SQLite
  • PostgreSQL
  • MongoDB
  • Redis
  • Access
  • 数据库其它
  • sybase
  • HBase
您的位置:首页 > 数据库 >MsSql > SQL SERVER 2008 R2 重建索引的方法

SQL SERVER 2008 R2 重建索引的方法

作者: 字体:[增加 减小] 来源:互联网 时间:2017-05-11

通过本文主要向大家介绍了sql server 2008 r2,sqlserver2008 r2下载,sqlserver2008 r2密钥,sqlserver2008 r2安装,sqlserver2008 r2卸载等相关知识,希望本文的分享对您有所帮助

参考sys.dm_db_index_physical_stats

检查索引碎片情况

1.SELECT
2.OBJECT_NAME(object_id) as objectname,
3.object_id AS objectid,
4.index_id AS indexid,
5.partition_number AS partitionnum,
6.avg_fragmentation_in_percent AS fra
7.FROM sys.dm_db_index_physical_stats (DB_ID(), NULL, NULL , NULL, ‘LIMITED')
8.WHERE avg_fragmentation_in_percent > 10.0 AND index_id > 0;
9. 
10.使用脚本中的 sys.dm_db_index_physical_stats 重新生成或重新组织索引 (来源于联机帮助)
11. 
12.SET NOCOUNT ON;
13.DECLARE @objectid int;
14.DECLARE @indexid int;
15.DECLARE @partitioncount bigint;
16.DECLARE @schemaname nvarchar(130);
17.DECLARE @objectname nvarchar(130);
18.DECLARE @indexname nvarchar(130);
19.DECLARE @partitionnum bigint;
20.DECLARE @partitions bigint;
21.DECLARE @frag float;
22.DECLARE @command nvarchar(4000);
23.– Conditionally select tables and indexes from the sys.dm_db_index_physical_stats function
24.– and convert object and index IDs to names.
25.SELECT
26.object_id AS objectid,
27.index_id AS indexid,
28.partition_number AS partitionnum,
29.avg_fragmentation_in_percent AS frag
30.INTO #work_to_do
31.FROM sys.dm_db_index_physical_stats (DB_ID(), NULL, NULL , NULL, ‘LIMITED')
32.WHERE avg_fragmentation_in_percent > 10.0 AND index_id > 0;
33.– Declare the cursor for the list of partitions to be processed.
34.DECLARE partitions CURSOR FOR SELECT * FROM #work_to_do;
35.– Open the cursor.
36.OPEN partitions;
37.– Loop through the partitions.
38.WHILE (1=1)
39.BEGIN;
40.FETCH NEXT
41.FROM partitions
42.INTO @objectid, @indexid, @partitionnum, @frag;
43.IF @@FETCH_STATUS < 0 BREAK;
44.SELECT @objectname = QUOTENAME(o.name), @schemaname = QUOTENAME(s.name)
45.FROM sys.objects AS o
46.JOIN sys.schemas as s ON s.schema_id = o.schema_id
47.WHERE o.object_id = @objectid;
48.SELECT @indexname = QUOTENAME(name)
49.FROM sys.indexes
50.WHERE object_id = @objectid AND index_id = @indexid;
51.SELECT @partitioncount = count (*)
52.FROM sys.partitions
53.WHERE object_id = @objectid AND index_id = @indexid;
54.– 30 is an arbitrary decision point at which to switch between reorganizing and rebuilding.
55.IF @frag < 30.0
56.SET @command = N‘ALTER INDEX ‘ + @indexname + N‘ ON ‘ + @schemaname + N‘.' + @objectname + N‘ REORGANIZE';
57.IF @frag >= 30.0
58.SET @command = N‘ALTER INDEX ‘ + @indexname + N‘ ON ‘ + @schemaname + N‘.' + @objectname + N‘ REBUILD';
59.IF @partitioncount > 1
60.SET @command = @command + N‘ PARTITION=' + CAST(@partitionnum AS nvarchar(10));
61.EXEC (@command);
62.PRINT N‘Executed: ‘ + @command;
63.END;
64.– Close and deallocate the cursor.
65.CLOSE partitions;
66.DEALLOCATE partitions;
67.– Drop the temporary table.
68.DROP TABLE #work_to_do;
69.GO
</div> </div>
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • sqlserver 2008手工修改表结构,表不能保存的问题与解决方法
  • sql server 2008 数据库管理系统使用SQL语句创建登录用户步骤详解
  • SQL server 2008 更改登录验证方式的方法
  • 设置sql server 2008 r2的身份验证模式的图文教程
  • SQL server 2008不允许保存更改的完美解决办法(图解)
  • sql server 2008 忘记sa密码的解决方法
  • SQL Server 2008 R2安装配置方法图文教程
  • SQL Server 2008及更高版本数据库恢复方法之日志尾部备份
  • SQL Server 2008数据库误删数据如何进行数据恢复
  • SQL Server 2008 评估期已过怎么解决

相关文章

  • 2017-08-28oracle转 SQLServer
  • 2017-05-11SQL Server 2008 数据库中创建只读用户的方法
  • 2017-05-11安装SQL2005 29506错误码的解决方案
  • 2017-05-11一步一步教你创建SQL 2005计划任务应用图解教程
  • 2017-05-11图文详解SQL Server 2008 R2安装配置方法
  • 2017-05-11sql2008 附加数据库时出现错误5123提示的解决方法
  • 2017-05-11sqlserver中获取当前日期的午夜的时间值的实现方法
  • 2017-05-11SQL2005 性能监视器计数器错误解决方法
  • 2017-05-11快速将珊瑚虫IP数据库转MS SQL2005的图文教程第1/2页
  • 2017-05-11深入SqlServer2008 数据库同步的两种方式(Sql JOB)的分析介绍

文章分类

  • MsSql
  • Mysql
  • oracle
  • MariaDB
  • DB2
  • SQLite
  • PostgreSQL
  • MongoDB
  • Redis
  • Access
  • 数据库其它
  • sybase
  • HBase

最近更新的内容

    • sql server 关于设置null的一些建议
    • sql rollup用法 小计汇总
    • 同时安装vs2005团队开发版和sql 2005企业版的方法(downmoon原作)
    • mssql 监控磁盘空间告警实现方法
    • SQL Server 2005 中使用 Try Catch 处理异常
    • sql server 2008 数据库管理系统使用SQL语句创建登录用户步骤详解
    • 收缩数据库日志文件的方法(仅适用于mssql2005)
    • SQLServer 2008中SQL增强之三 Merge(在一条语句中使用Insert,Update,Delete)
    • PowerDesigner中如何导入SQL Server数据库
    • SQL Server Native Client下载 SQL Server Native Client安装方法

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有