SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

EnterpriseZine(エンタープライズジン)編集部では、情報システム担当、セキュリティ担当の方々向けに、EnterpriseZine Day、Security Online Day、DataTechという、3つのイベントを開催しております。それぞれ編集部独自の切り口で、業界トレンドや最新事例を網羅。最新の動向を知ることができる場として、好評を得ています。

直近開催のイベントはこちら!

EnterpriseZine編集部ではイベントを随時開催しております

EnterpriseZine(エンタープライズジン)編集部では、情報システム担当、セキュリティ担当の方々向けの講座「EnterpriseZine Academy」や、すべてのITパーソンに向けた「新エバンジェリスト養成講座」などの講座を企画しています。EnterpriseZine編集部ならではの切り口・企画・講師セレクトで、明日を担うIT人材の育成をミッションに展開しております。

お申し込み受付中!

DB Online Monthly Special

チューニングの基本は適切な情報収集から/マイクロソフト平山理氏に訊くDBチューニングの勘所


適切なアドバイスを得るには適切な情報が必要

 もう1つの頼もしい存在が、データベースエンジンチューニングアドバイザだ。これは、取得したSQLプロファイラトレースの結果を基に、チューニングを行うためのデータベースの物理設計構造の追加や削除、変更などのアドバイスをしてくれる機能だ。得られたアドバイスは、すぐにシステム適用可能だ。これらのツールや機能を活用することで、いまでは「誰でもチューニングが行える環境が整備された」という。

 誰でもチューニングが行えるとはいえ、それで技術者がいらないわけではない。たとえば、ある1時間ぶんのSQLプロファイラトレースを取得し、それを基にシステムからアドバイスを得たとしても、それはトレースを取得した間の処理に対応するチューニングだ。データベースのシステムには夜間バッチもあれば週次、月次処理もあるだろう。取得した1時間のトレースだけでは、そういった処理までは考慮されない。ならばすべてのトレースを取ればいいとも考えられるが、SQL Server 2008 R2では項目数を増やしトレースを取得すると10%程度はCPUリソースを消費してしまう。

 システムの運用状況まで考慮し、適切にトレースを取得して利用するのは、チューニング作業の中で人が関与すべき重要なことだ。システムから適切なアドバイスを受けたければ、最良の情報をシステムに与えなければならない。ここについては、すべてをシステムに任せられないのだ。ちなみに、次期バージョンとなるDenaliでは、XE Profilerというライトウェイトのツールが提供されるとのこと。これを活用すれば負荷を上げずに情報収集が可能となり、自由度は向上することになる。

データベースエンジニアはOSやハードウェアまで意識すべきか

 ところで、SQL Serverは必ずWindowsの上で動く。そのため、WindowsとSQL Serverは密接に結びついているのかといえば、そんなことはない。

 「Oracleやその他のオープンソースデータベースなどと同様、OSからは完全に独立して動いています。Windowsの上ではさまざまなアプリケーションが動くので、OSのスケジューラーは1つ1つのアプリケーションの状態までは考慮しません」(平山氏)

 そうだとすると、データベースをよりよい状態に保つには、エンジニアがWindowsの状態を意識しなければならないのだろうか。平山氏によれば、WindowsとSQL Serverの間にはSQL OSというものがあり、両者のやり取りを抽象化してくれる。これがあることでデータベースエンジニアは、通常はOSやハードウェアの状況を特に意識する必要はないとのこと。

 しかし、CPU負荷が極めて高いなどの場合に、高度なチューニングを施す必要がある際にはOSやハードウェアを意識する必要も出てくる。SQL Serverの内部構造を理解し、OSやハードウェアも含めた高度なチューニング技法を身につけるための参考書として、『絵で見てわかるSQL Serverの内部構造』(平山 理著 翔泳社)がある。この中では、SQL OSについても詳細な解説がなされている。

 通常のチューニングにおいては、OSやハードウェアを特に意識する必要はない。とはいえ、最新のハードウェアなりを活用すれば、大きなパフォーマンスの向上が見込めるのも事実だ。OracleがディスクIOを高速化するために採用している、SSDをディスクとしてではなく広大なメモリ空間として利用する方法についても、SQL Serverでも取り組みが始まっている。

 またSQL Server Parallel Data Warehouseのように、既存の環境を載せ替えるだけで高速化できる、あらかじめハードとソフトを組み合わせた環境も提供されている。これからは、基本的なチューニング技法に加え、最新のハードウェア動向についても技術者はしっかりと押さえておいたほうが良いだろう。

 もう1つ、ハードウェアが進化したが故に発生するトラブルもある。最新のサーバーでは、CPUは32コア、64コアなどが当たり前になりつつある。

「コアがたくさんあれば、効率化するために並列度を上げ並列処理をさせます。とはいえ、無闇に起動するスレッド数を増やしてしまうと、メモリを使い切ってしまいかえって遅くなることがあります」(平山氏)

 リソースが潤沢になって簡単になる部分と、逆に多すぎて混乱する部分があると平山氏は指摘する。現状のSQL Serverでは論理的に256コアまで対応しているが、今後のさらなるコア数の増加が予測され、2048コアまで対応するとの噂も聞こえてくる。「そうなれば、まったく次元の違う話が出てくる」と平山氏。大きなシステムになればなるほど、いままでは発生しなかった新たな特別な問題が出てくる可能性があることを認識しておくべきだと言う。

次のページ
チューニングのポイントは早めの対処

この記事は参考になりましたか?

  • Facebook
  • Twitter
  • Pocket
  • note
DB Online Monthly Special連載記事一覧

もっと読む

この記事の著者

谷川 耕一(タニカワ コウイチ)

EnterpriseZine/DB Online チーフキュレーターかつてAI、エキスパートシステムが流行っていたころに、開発エンジニアとしてIT業界に。その後UNIXの専門雑誌の編集者を経て、外資系ソフトウェアベンダーの製品マーケティング、広告、広報などの業務を経験。現在はフリーランスのITジャーナリスト...

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

EnterpriseZine(エンタープライズジン)
https://enterprisezine.jp/article/detail/3452 2012/02/10 17:54

Job Board

AD

おすすめ

アクセスランキング

アクセスランキング

イベント

EnterpriseZine(エンタープライズジン)編集部では、情報システム担当、セキュリティ担当の方々向けに、EnterpriseZine Day、Security Online Day、DataTechという、3つのイベントを開催しております。それぞれ編集部独自の切り口で、業界トレンドや最新事例を網羅。最新の動向を知ることができる場として、好評を得ています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング