ユーザ用ツール

サイト用ツール


sqlserverインデックス

差分

このページの2つのバージョン間の差分を表示します。

この比較画面へのリンク

両方とも前のリビジョン前のリビジョン
次のリビジョン両方とも次のリビジョン
sqlserverインデックス [2014/07/26 10:04] – [断片化の取得] nabezosqlserverインデックス [2014/07/26 10:06] – [インデックスの再構築] nabezo
行 44: 行 44:
      
 ====インデックスの再構築==== ====インデックスの再構築====
-  USE [DAIKO_MAIN]+  USE [TESTDB]
   GO   GO
   DECLARE @TableName sysname, @IndexName sysname   DECLARE @TableName sysname, @IndexName sysname
行 50: 行 50:
   DECLARE @Edition nvarchar(max)   DECLARE @Edition nvarchar(max)
      
-  SET @Edition = CONVERT(nvarchar, SERVERPROPERTY(‘Edition’)) +  SET @basesql = 'ALTER INDEX @1 On @2 REBUILD'
-   +
-  SET @basesql = ALTER INDEX @1 On @2 REBUILD @3′ +
-   +
-  IF PATINDEX(‘%Enterprise%’, @Edition) > 0 +
-  BEGIN +
-    SET @basesql = REPLACE(@basesql, ‘@3′, ‘WITH (ONLINE=ON)’) +
-  END +
-  ELSE +
-    SET @basesql = REPLACE(@basesql, ‘@3′, ”)+
      
   DECLARE IXC CURSOR FOR   DECLARE IXC CURSOR FOR
行 68: 行 59:
     sys.indexes     sys.indexes
   WHERE   WHERE
-    OBJECT_SCHEMA_NAME (object_id) <> sys+    OBJECT_SCHEMA_NAME (object_id) <> 'sys'
     AND     AND
     index_id > 0     index_id > 0
行 80: 行 71:
   WHILE @@FETCH_STATUS = 0   WHILE @@FETCH_STATUS = 0
   BEGIN   BEGIN
-    PRINT @TableName + :’ + @IndexName +    PRINT @TableName + ':+ @IndexName 
- +     
-    SET @sql = REPLACE(@basesql, @1, @IndexName) +    SET @sql = REPLACE(@basesql, '@1', @IndexName) 
-    SET @sql = REPLACE(@sql, @2, @TableName)+    SET @sql = REPLACE(@sql, '@2', @TableName)
        
     EXECUTE (@sql)     EXECUTE (@sql)
 +    
     FETCH NEXT FROM IXC     FETCH NEXT FROM IXC
     INTO @TableName, @IndexName        INTO @TableName, @IndexName   
sqlserverインデックス.txt · 最終更新: 2019/06/30 12:22 by 127.0.0.1