SQLのPerformanceの向上
金曜日, 9 月 12th, 2008
(実は社内の環境がかなりゴダゴダが起きました…S/W的設計とH/Wの故障で、連休が連休じゃなくなるぐらい…)
ゴダゴダ関連から分かったことを1つ…SQLのPerformanceの向上について(元ネタ)。以下、優先順位順に書いておきます。
- 高負荷の時は、TempDBがパフォーマンスのボトルネックになる。ということなので、TempDBを優先して、TempDB用のディスクを用意。そのディスクはRAID1+0に構成します。※元ネタにはありませんが、社内のSQLerに話を聞くと、TempDBはDataファイル(*.mdf)とLogファイル(*.log)は分けなくても特に問題ないそうです。後はコア数分のDataファイルを作成するそうです(例 クアッドならば4個のDataファイルを作成)
- TempDB構成後は、Logファイル用のディスクを用意。※元ネタにはありませんが、RAID0+1の構成をとるそうです。
- 次に、SearchDB用のディスクを用意
- 最後に、Dataファイル用のディスクを用意。※元ネタにはありませんが、RAID1+0の構成をとるそうです。
以下、1人言
Log用のディスクを用意した時点で、Data用のディスクも実質必要なんじゃ…他のDBと共有しても良い?ってことなんでしょうか…優先順位ということだから良い?自信持てません。SQL勉強しないと…2008も…
私的にまとめると、まず、TempDB用のRAID1+0を用意し、コア数分のDataファイル作成して、次に大きいコンテンツDBからData用のディスクとLog用のディスクを用意して、RAID構成すれば良い?あんまり、現実的でないので、SQLerに聞くと、TempDBは別ディスク(RAID1+0)+コア数分作成して、コンテンツDBに関しては、すべてのコンテンツDBのDataとLogをそれぞれRAIDで構成したディスクに置くだけで良いんじゃない?と言われました(結局、各コンテンツDBごとに分けるなら、きちんと分析とかしつつ運用するぐらいしないと意味ないでしょっ。大規模ストレージじゃあるまいしって言われました…)