各テーブルに設定してあるINDEXが断片化されていることが分かりました。 そこで、以下の様なストアドプロシージャを作成して、夜間バッチにて断片化を解消することにしました。 実行したところ、 INDEXの領域も約20%程、mdfファイルのサイズが縮小されて、 前提・実現したいことSQL Server 2017を利用しています。インデックスの断片化によるパフォーマンス低下と、データファイルの未使用領域が増えてきているため、インデックスの再構築とShrinkによるデータ圧縮を実施したいと考えております。 発生している問題インデックス再構 SQLServerは、断片化率が高くなると、SQLが実行される際、パラレル処理されなくなり、極端に処理性能が低下します . sqlserver インデックス 断片化 解消されない (6) . ここでインデックスの断片化と再構築について調べる。 すごく簡単に言うと、Windowsのデフラグのようなことらしい。 インデックスの再構築の際には、データベースへのアクセスを停止しておかないといけないみたいなので注意。 索引の再編成時に、索引が2つ以上の物理ファイルにまたがっている場合、データはデータファイル内でのみデフラグされます。 「クラスタ化インデックス」が存在しない「非クラスタ化インデックス」での「リーフ レベル(インデックス ページ)」では ポインタとして行識別子(ファイルID、ページID、行ID)を格納しており、その行識別子を使って「ヒープ」へジャンプし、検索対象データを探し出す。

SQLServerにおいて、インデックスが断片化してしまうとクエリのパフォーマンスが低下してくる。 インデックスの再構成(Reorganize)や再構築(Rebuild)を行うと断片化が解消される為、定期的にインデックスの再構成(Reorganize)や再構築(Rebuild)をすることでこれを解決することができる。 SQL Serverトラブルシューティング(46):「断片化は発生していない」のに業務処理がだんだん遅くなっていく(パフォーマンストラブル) (1/2) SQLServerは、断片化率が高くなると、SQLが実行される際、パラレル処理されなくなり、極端に処理性能が低下します ストレージを増設する前、12TBのストレージで、10TBのDBを運用していたので、1ヵ月に1回程度、SQLServerのDB Shrinkを実行していました。 alter table [インデックス名] on [テーブル名] rebuild でインデックスの断片化を解消することができる。SQL Server Management Studio でもテーブル名の下にある[インデックス]を右クリックすると再構成や再構築のメニューが出てくる。 解消されない - sqlserver インデックス再構築 ロック . SQL Server:インデックス再構築とインデックス再構成の違いは何ですか?