ディスク †
I/Oチューニング †
- I/Oチューニングで一番大事なのは、このI/Oのディスク書き込みの待ち行列の発生を、いかに抑制するかという点
- SQL Serverとファイルシステムという観点から注目しなくてはならないのは、「ログファイルは順アクセスである」という点
- 通常のデータ領域が収められている「MDF」や「NDF」といったファイルはランダムアクセス
- ファイルアクセスの観点で性質の相反するファイルを同じディスクに置くと、ディスクヘッドの競合という問題が発生する
- SQL Serverは1つのインスタンスの中に複数のデータベースを持つことができるので、複数のデータベースを作成したら、それらのトランザクションログファイルをすべて、専用のパーティション「D」に集めることがパフォーマンス向上に有効です。
パーティション †
- SQL ServerのI/Oチューニングでは、トランザクションログ専用のパーティションのほかに、3種類の専用パーティションを用意することを推奨している
- 「tempdb」専用パーティション
- tempdbとはSQL Serverが持っている特殊なシステムデータベース
- 複数のテーブルを結合するための中間の結果セットを保存したり、「order by」のように結果を並べ替える、あるいは「group by」でアグリゲーションを行って集計値を返す、といったクエリ要求が来たときに使用される
- tempdbはSQLの書き方によっては非常に負荷が高くなります。そうなるとこのtempdbにも、専用のパーティションを与えた方がいい
- テーブルとクラスタ化インデックスのインデックス情報とクラスタ化インデックスの「ヒープ」と呼ばれる最下位の部分
- 非クラスタ化インデックス用のパーティション
- SQL ServerはOSに対してパーティションの数だけI/Oの依頼を並行して出せるので、データの更新処理と、インデックス情報の更新でI/O負荷分散が可能
自動拡張 †