2016-09-06 7 views
0

私は25の大きなデータベースを持つインスタンスを持っています。SQLインデックスの処理

すべてのデータベースのすべてのインデックスを再構築するために、rebuild_all_indexesジョブを設定しました。

データベースのサイズが大きく、OLTP環境であるため、このジョブは完了までに約3,4日以上かかります。

この状況に対処するのに手伝ってもらえますか?あなたはすべてのインデックスの断片化を確認し、再構築または断片化のその割合に応じて索引を再編成する必要があり

exec database1.dbo.SP_JOBS_REBUILD_DB_INDEXES 
GO 
--exec database2.dbo.SP_JOBS_REBUILD_DB_INDEXES 
GO 
exec database3.dbo.SP_JOBS_REBUILD_DB_INDEXES 
GO 
exec database4.dbo.SP_JOBS_REBUILD_DB_INDEXES 
GO 
exec database5.dbo.SP_JOBS_REBUILD_DB_INDEXES 
GO 
exec database6.dbo.SP_JOBS_REBUILD_DB_INDEXES 
GO 
exec database7.dbo.SP_JOBS_REBUILD_DB_INDEXES 
GO 
exec database8.dbo.SP_JOBS_REBUILD_DB_INDEXES 
go 
............... 
............... 
upto database25.dbo.sp_jobs_rebuild_db_indexes 
+0

なぜすべてのデータベースのすべてのインデックスを再構築したいのですか?インデックスを再構築する必要がありますか、問題を解決するのにどのような問題がありますか? –

+0

スタック交換のデータベース管理者サイトでより良い回答を得ることができます。 – Mike

+0

私はOLTP環境を持っており、パフォーマンスと分析のために、私は週に一度インデックスを再構築する必要があると述べました。 –

答えて

0

私の経験から:

としてジョブステップは、私はこのような呼び出しいくつかのストアドプロシージャを使用していました。私はあなたに毎晩この操作を行うようお勧めします。私の最大のSQLサーバー(1テラバイト以上)では、この操作は毎晩2:40です。 databeバックアップ中にこの操作を実行しないように注意してください。

このリンクはあなたに役立ちますhttp://blog.sqlauthority.com/2010/01/12/sql-server-fragmentation-detect-fragmentation-and-eliminate-fragmentation/インデックスの断片化をチェックするスクリプトがあります。ご覧のように、フレグメンテーションの5〜30%を「再編成」し、30%を上回ると「リビルド」を実行することをお勧めします。

個人的に私はここに、カスタムスクリプトを使用してジョブを使用する手順は、次のとおりです。sys.dm_db_index_physical_statsを(NULL、NULL、NULL、FROM ...

  • は選択 を使用して(表にすべてのデータベースからインデックス情報を取得します。 NULL、「LIMITED」)上記の表に基づき、PS
  • 、フラグメンテーションの割合をチェックし 再構築または再編成

すべてが一つだけのJである実行ob

関連する問題