【ITM-EXPO開催中】50講演・40ブース・資料250点

スラッシュドット    はてなブックマーク  Yahoo!ブックマークに登録  印刷
真・Dr. K's SQL Serverチューニング研修(4)

DB管理者がいますぐ確認すべき3つの設定

株式会社 CSK Winテクノロジ
技術フェロー特別役員
熊澤 幸生
2010/9/6
SQLをうまく書くことだけがチューニングではありません。まずは、この3つの設定をチェックすることからはじめよう(編集部)

管理者の力量があらわれる3つの設定

 前回、設定された値を見るだけでDB管理者の力量が見える、ということに触れました。今回も必ず押さえておきたいパラメータを、なぜそのように設定すべきかという理由と併せて解説していきます。

 設定すべきポイントは大変シンプルです。

  1. tempdbの数をCPUコア数にあわせよ
  2. x64環境なら「メモリ内のページロック指定」を変えよ
  3. OLTP環境では、並列処理の最大限度(Max DOP)はCPUコア数の「4分の1」に設定せよ

 もちろん、これだけ変更すれば、その部分における最低限のチューニングは完了します。しかし1つ上のエンジニアを目指すなら、その理由まできっちり知っておくべきでしょう。その理由を知ることで、監視ツールや動的管理オブジェクトが発する「声」をより多く聞くことができるようになるからです。

その1:tempdbの数をCPUコア数にあわせよ

 こちらは前回、ラッチの解説で取り上げました。Latchを最小限にするために、tempdb(一時表領域)の数はCPUコア数(スケジューラ数)と同じ数だけ用意してください。

●図1 tempdbの設定例。CPUコア数(スケジューラ数)と同じ数だけ用意する(クリックで拡大します)
fig1

その2:x64環境なら「メモリ内のページロック指定」を変えよ

 これはOS側の設定です。64bit環境を使っているDB管理者は、Windowsのローカルポリシー、ユーザー権利の割り当てにおける「メモリ内のページのロック」に、SQL Serverの実行ユーザーを追加します。これだけです。MSDNのドキュメントは日本語も英語もどちらも大変不親切で、やるべきなのかやらなくてもいいのかが分かりにくいのです。結論からいうと、これは必ず設定すべきです。

●図2 「メモリ内のページのロック」にSQL Server実行ユーザーを追加する(クリックで拡大します)
fig2
【参考】
4GBを超える物理メモリに対するメモリサポートの有効化
http://msdn.microsoft.com/ja-jp/library/ms179301.aspx

Lock Pages in Memoryオプションを有効にする方法(Windows)
http://msdn.microsoft.com/ja-jp/library/ms190730.aspx

 これは、SQL Serverの実行ユーザーが、メモリの連続領域を確保するために設定すべき項目です。64bit環境であればメモリはふんだんに搭載しているはずです(第2回「CAT秘伝、バランスド・システムの考え方」参照)。この設定をしておかないと、物理的に連続したメモリ領域を確保できないため、せっかく搭載したメモリを有効に活用できません。そのためにこの権限を与える必要があります。

●図3 SQL Serverのログ。1行目は連続領域が確保できていないときのログが表示されている。設定を行うと下のようなログが出力される
fig2

 もし64bit環境を利用していたならば、SQL Serverのログをみてください。もしそこに「Cannot use Large Page Extensions: lock memory privilege was not granted.」と表示されていたとしたら、連続領域が確保されていない状態で動作していることになります。すぐにローカルポリシーを見直し、設定を変えてみてください。正しく設定されていれば、ログには「Large Page Granularity: 2097152」 (2MB)、および「Large Page Extensions enabled.」と表示され、プロセスはそれぞれ2MBの物理的に連続したメモリ領域を確保していることが確認できます。

  1/3 次のページへ

Index
DB管理者がいますぐ確認すべき3つの設定
→
Page 1
管理者の力量があらわれる3つの設定
その1:tempdbの数をCPUコア数にあわせよ
その2:x64環境なら「メモリ内のページロック指定」を変えよ

Page 2
その3:OLTPでは、並列処理の最大限度はCPUコア数の「4分の1」に
すべてのチューニング可能なパラメータを表示するためには

Page 3
押さえておきたい4つの動的管理ビュー
代表的な監視ツール
パフォーマンスモニタ
SQL Server Profiler
SQL Serverダッシュボード

真・Dr. K's SQL Serverチューニング研修 連載インデックス
Database Expert フォーラム 新着記事

@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

RSSフィード

スキルアップ/キャリアアップ(JOB@IT)

- PR -
@IT Sepcial
- PR -

お勧め求人情報

キャリアアップ 〜JOB@IT
@IT Sepcial
ソリューションFLASH