sql >> データベース >  >> RDS >> Sqlserver

SQLServerの再構築インデックスクエリ

    こんにちは

    SQL Serverデータベース内のすべてのインデックスは断片化されます。関連するテーブルが多くの更新を取得した後、トランザクションを削除します。

    テーブル内のインデックスが断片化されている場合、そのテーブルに関連するすべてのトランザクションは非常に遅くなります。そのため、SQL Server DBAはインデックスを頻繁に監視する必要があり、どのインデックスが断片化されているか、次のスクリーンショットとは異なります。

    次のスクリプトで断片化されたインデックスを確認できます。 SQL Serverデータベース名を最初の行に正しく入力すると、クエリは断片化されたインデックスを検索します。

    declare @db int
    select @db=DB_ID('DEVECI')
    select 'ALTER INDEX [' + i.name +'] on '+OBJECT_NAME(s.object_id)+' REBUILD WITH (ONLINE = ON)',
    objname = OBJECT_NAME(s.object_id),
    s.object_id,
    index_name= i.name,
    index_type_desc, 
    avg_fragmentation_in_percent
    from sys.dm_db_index_physical_stats(@db,null,null,null,null) as s
    join sys.indexes i on i.object_id = s.object_id and i.index_id = s.index_id 
    where avg_fragmentation_in_percent>30
    order by avg_fragmentation_in_percent desc, page_count desc;
    
    
    


    1. Word、Excel、PowerPointでのキーボードのみのナビゲーションの使用(パート1:リボン)

    2. SpotlightCloudをセットアップしてSQLServerを効率的にトラブルシューティングする方法

    3. PostgreSQLで2つのスキーマを比較する方法

    4. ''の近くの構文が正しくありません