当前位置: 首页 > 编程笔记 >

SQL SERVER 2008 R2 重建索引的方法

申辉
2023-03-14
本文向大家介绍SQL SERVER 2008 R2 重建索引的方法,包括了SQL SERVER 2008 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
 类似资料:
  • 本文向大家介绍MongoDB中重建索引的方法,包括了MongoDB中重建索引的方法的使用技巧和注意事项,需要的朋友参考一下 要重新构建索引,请使用reIndex()。让我们首先创建一个索引。查询如下 这将产生以下输出: 以下是在MongoDB中重建索引的查询- 这将产生以下输出-

  • 本文向大家介绍SQL SEVER数据库重建索引的方法,包括了SQL SEVER数据库重建索引的方法的使用技巧和注意事项,需要的朋友参考一下 一.查询思路 1.想要判断数据库查询缓慢的问题,可以使用如下语句,可以列出查询语句的平均时间,总时间,所用的CPU时间等信息 2.列出数据库每个表的数据量,并且需要运维人员对业务足够了解,知道大概哪些表是查询量最多的,可以查看“排在前面的表的磁盘使用情况”:

  • 我从这里的文档和帖子中了解到,在neo4j中为节点属性启用自动索引后,必须为每个节点重新设置属性,以将属性添加到索引中。 Neo4j 1.9版。M05 使用DrWHO数据库,此groovy代码旨在通过设置属性将Dr字符添加到自动索引字符属性中。此代码不起作用。运行后自动节点索引为空 你能看出我做错了什么吗?

  • 我的Neo4J实例突然停止工作,我想我的驱动器因为一些不相关的日志文件而耗尽了空间。无论如何,现在我不能启动Neo4J,它开始了,一次又一次。如果我检查数据库的一致性,我会得到以下消息。(在版本3.3.5或3.4.1上都不起作用) 警告:标签索引未正确关闭,需要重建。标签索引:neostore。标签可以存储。db WARN:索引未正确关闭,需要重建。索引[IndexRule[id=1,描述符=In

  • 有时PyCharm会变得非常慢。经过 20-30 分钟的缓慢运行,它会重建其索引。有没有办法手动触发重建 PyCharm 索引?

  • 本文向大家介绍python 重命名轴索引的方法,包括了python 重命名轴索引的方法的使用技巧和注意事项,需要的朋友参考一下 如下所示: 以上这篇python 重命名轴索引的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持呐喊教程。