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 重新生成或重新組織索引 (來(lái)源于聯(lián)機(jī)幫助) 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
相關(guān)文章
SQL SERVER 2008數(shù)據(jù)庫(kù)引擎詳細(xì)介紹
SQL Server 的數(shù)據(jù)庫(kù)引擎組件是用于存儲(chǔ)、處理數(shù)據(jù)和保證數(shù)據(jù)安全的核心服務(wù)。數(shù)據(jù)庫(kù)引擎提供受控的訪問(wèn)和快速事務(wù)處理,以滿(mǎn)足企業(yè)中要求極高、大量使用數(shù)據(jù)的應(yīng)用程序的要求2012-11-11SQL Server 2008存儲(chǔ)結(jié)構(gòu)之GAM、SGAM介紹
談到GAM和SGAM,我們不得不從數(shù)據(jù)庫(kù)的頁(yè)和區(qū)說(shuō)起。一個(gè)數(shù)據(jù)庫(kù)由用戶(hù)定義的空間構(gòu)成,這些空間用來(lái)永久存儲(chǔ)用戶(hù)對(duì)象,例如數(shù)據(jù)庫(kù)管理信息、表和索引。這些空間被分配在一個(gè)或多個(gè)操作系統(tǒng)文件中2012-08-08SQL SERVER 2008 CTE生成結(jié)點(diǎn)的FullPath
SQL SERVER 2008 使用CTE是經(jīng)常的事兒,有時(shí)我們想存儲(chǔ)一些冗余數(shù)據(jù),像每個(gè)結(jié)點(diǎn)的FullPath。2011-10-10SQLServer 2008 新增T-SQL 簡(jiǎn)寫(xiě)語(yǔ)法
SQLServer 2008 新增T-SQL 簡(jiǎn)寫(xiě)語(yǔ)法2009-07-07SQLServer 2008中SQL增強(qiáng)之一:Values新用途
SQL Server 2008中新增功能:可以使用單個(gè)Insert命令插入多行2011-05-05SQLServer 2008中的代碼安全(五) 非對(duì)稱(chēng)密鑰加密
非對(duì)稱(chēng)密鑰包含數(shù)據(jù)庫(kù)級(jí)的內(nèi)部公鑰和私鑰,它可以用來(lái)加密和解密SQL Server數(shù)據(jù)庫(kù)中的數(shù)據(jù),它可以從外部文件或程序集中導(dǎo)入,也可以在SQL Server數(shù)據(jù)庫(kù)中生成。2011-06-06SQL Server 2008 R2占用cpu、內(nèi)存越來(lái)越大的兩種解決方法
這篇文章主要介紹了SQL Server 2008 R2占用內(nèi)存越來(lái)越大的兩種解決方法,需要的朋友可以參考下2017-10-10sql?server?2008數(shù)據(jù)庫(kù)不能添加附加文件的解決方法
這篇文章主要介紹了sql?server?2008數(shù)據(jù)庫(kù)不能添加附加文件的解決方法,需要的朋友可以參考下2023-02-02SQL Server復(fù)制需要有實(shí)際的服務(wù)器名稱(chēng)才能連接到服務(wù)器
服務(wù)器上安裝的WIN2008 R2,然后沒(méi)有在意機(jī)器名,安裝了SQL2008 R2數(shù)據(jù)庫(kù)之后,配置AD域的時(shí)候修改了機(jī)器名2013-11-11java之File對(duì)象對(duì)文件的操作常用的幾個(gè)方法(推薦)
下面小編就為大家?guī)?lái)一篇java之File對(duì)象對(duì)文件的操作常用的幾個(gè)方法(推薦)。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2016-12-12