BLOG

Sitecore ブログ
Sitecore DO's&DONT's : やっておいた方がいいこと - Sitecore のパフォーマンスチューニングに関する事例

2017/11/30 15:00
名取 郁太郎
みなさま、こんにちは。
ソフトバンク・テクノロジー CMSサポートの名取と申します。

今日は、Sitecore で Web サイトを運用するにあたって『やっておいた方がいいこと』として、 実際の事例から、Sitecore 7.0以降のパフォーマンスチューニングについて、 「SQL Server インデックスの断片化レベルのチェック」をご紹介したいと思います。

皆さんもご存知かと思いますが、Sitecoreはコンテンツをアイテムとして構造化するデータベース型のCMSとなります。

構造化したアイテムの階層構造全体をコンテンツツリーと呼びますが、 アイテムのバージョン管理や、アイテムを増やしたり、消したりすることで、 データベース内に連続しないデータが発生し、インデックスの断片化を引き起こす可能性があります。

少量の断片化であれば、それほど気にしなくてもパフォーマンスへの影響はありませんが、 断片化の割合が上がるにつれ、パフォーマンスへ悪影響を及ぼしていきます。

断片化されたインデックスのチェック方法を以下に記載しますので、 パフォーマンスチューニングにお役立てください。

・CMSデータベース(Core,Master,Web)に対して、インデックスの物理統計を出力する。

1. SQL Server Management Studio を起動します。
2.オブジェクト エクスプローラの 該当する データベースを右クリックし、 [レポート]、[標準レポート]、[インデックスの物理統計] をクリックします。
3. 表示されたテーブル名、インデックス名、インデックスの種類、パーティション数、 および推奨されている操作についての情報を表示するレポートを確認します。

確認の観点として、[推奨されている操作] フィールドがあり、「Rebuild」の値を見つけることで、 インデックスが断片化していることを確認することが出来ます。
また、[# パーティション] フィールドを展開することで、断片化された割合 (%) も確認することが出来ます。
(Sitecoreでは、インデックス断片化は10%未満を推奨しています。)

解決方法として、インデックスをデフラグするためにメンテナンスプランを次のように実行します。

1. SQL Server Management Studio を起動します。
2. オブジェクト エクスプローラで、[管理/メンテナンス プラン] フォルダーを展開します。
3. *[インデックス デフラグのメンテナンス プラン] を右クリックして、[実行] をクリックします。

クエリ実行に時間がかかってる場合や、書き込み遅延などデータベースのパフォーマンス低下が疑われる場合には、 調査範囲の一つとして参考になれば幸いです。

他にも、DO's&DONT's をご紹介していきたいと思っております。
それでは、ありがとうございました。