ユーザ用ツール

サイト用ツール


sqlserverインデックス

差分

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

この比較画面へのリンク

次のリビジョン
前のリビジョン
次のリビジョン両方とも次のリビジョン
sqlserverインデックス [2014/02/22 09:45] – 作成 nabezosqlserverインデックス [2018/06/26 16:45] nabezo
行 2: 行 2:
  
 http://msdn.microsoft.com/ja-jp/library/ms189858%28v=SQL.90%29.aspx http://msdn.microsoft.com/ja-jp/library/ms189858%28v=SQL.90%29.aspx
 +==== 統計情報の取得 ====
  
   SELECT   SELECT
行 20: 行 21:
   ORDER BY   ORDER BY
    so.name    so.name
 +
 +==== 統計情報の再計算 ====
 + EXEC sp_updatestats;   
 +
  
 ====断片化の取得==== ====断片化の取得====
行 41: 行 46:
   b.name   b.name
      
 +  
 +  
 +====インデックスの再構築====
 +  USE [TESTDB]
 +  GO
 +  DECLARE @TableName sysname, @IndexName sysname
 +  DECLARE @basesql nvarchar(max), @sql nvarchar(max)
 +  DECLARE @Edition nvarchar(max)
 +  
 +  SET @basesql = 'ALTER INDEX @1 On @2 REBUILD'
 +  
 +  DECLARE IXC CURSOR FOR
 +  SELECT
 +    OBJECT_NAME(object_id) AS TableName
 +    , name AS IndexName
 +  FROM
 +    sys.indexes
 +  WHERE
 +    OBJECT_SCHEMA_NAME (object_id) <> 'sys'
 +    AND
 +    index_id > 0
 +  ORDER BY 1
 +  
 +  OPEN IXC
 +  
 +  FETCH NEXT FROM IXC
 +  INTO @TableName, @IndexName
 +  
 +  WHILE @@FETCH_STATUS = 0
 +  BEGIN
 +    PRINT @TableName + ':' + @IndexName
 +    
 +    SET @sql = REPLACE(@basesql, '@1', @IndexName)
 +    SET @sql = REPLACE(@sql, '@2', @TableName)
 +   
 +    EXECUTE (@sql)
 +    
 +    FETCH NEXT FROM IXC
 +    INTO @TableName, @IndexName   
 +  END
 +  
 +  CLOSE IXC
 +  DEALLOCATE IXC
 +
sqlserverインデックス.txt · 最終更新: 2019/06/30 12:22 by 127.0.0.1