データベースエンジニアを目指せ!
SQL Serverで大規模システムを究める

加山恵美
2003/7/9

 マイクロソフトのSQL Serverといえば、「手軽」や「容易」といった印象が強く、それが導入事例の多さに結び付く。それは同時に、その適用範囲は中小規模に最適であり、「SQL Serverは大規模システムには向かない」と語るエンジニアは意外と多い。その発想は果たして正しいか、誤解なのか。また、SQL Serverでデータベースを覚え、運用管理を行うエンジニアのスキルパスはどのような方向があり得るのか。今回はSQL Serverでの大規模システム構築経験者に話を伺った。

SQL Serverはデフォルトか

日本ユニシス サービスビジネス開発本部 サービスビジネス統括部 プラットフォームビジネス開発部の宮内伸樹氏

 日本ユニシスでSQL Serverを使った大規模開発に携わっている日本ユニシス サービスビジネス開発本部 サービスビジネス統括部 プラットフォームビジネス開発部の宮内伸樹氏と小倉雅人氏に話を伺った。両人ともにOracleデータベースも経験し、ORACLE MASTER Platinum(Oracle8i)資格をも持つデータベースのスペシャリストである。

 日本ユニシスは、Windows 2000 Datacenter Serverが稼働するエンタープライズ向けサーバ Unisys Enterprise Server ES7000シリーズを引っ提げ、大規模システムの構築などを数多く手掛けている。もちろん、そうした案件では、SQL Serverを利用することも多い。そうした実績があるだけに、2人はSQL Serverの良しあしをよく知るエンジニアだといえるだろう。

 一般にUNIXやWindowsなどのオープン環境で利用されるデータベースといえば、多くのエンジニアはOracleを前提に話すことが多い。もちろん、これは筆者の経験や体験の中での話で、実際はそうでないのかもしれない。こう思えるのはOracleデータベースの人気の高さからであり、さまざまな取材でも、データベースの前提にあるのはOracleデータベースを利用する場合、ということが多かった。また、データベースエンジニアの資格といえばすぐに思いつくのはORACLE MASTERだ。これらは、シェアを考えれば当然のように思えるが、それではSQL Serverはどうだろうか。SQL Serverのシェアや利用者数も、実際はかなりの数である。

日本ユニシス サービスビジネス開発本部 サービスビジネス統括部 プラットフォームビジネス開発部の小倉雅人氏

大規模システムにSQL Serverは?

 しかし、大規模システムの場合を考えると、SQL Serverの影は薄くなる。SQL Serverには中小規模向けというイメージが浸透していて(筆者の印象だけだろうか)、それが転じて大規模システムには不向きのようなレッテルが貼られているようにも思える。これらのことがあり、SQL Serverでは、データベースの高度な技術習得が難しいと思われているような節が見受けられる。これらは偏見だろうか。

 まずは、SQL Serverを利用する人の多さの背景から考える。SQL Serverを選ぶ背景には何があるのか。その点について小倉氏は、「SQL Server以外のデータベース、例えばOracleでないといけないという案件は、すでにUNIXをベースにした環境がある場合に多く見受けられます。それまでに蓄積した対応ソフトやツール、運用ノウハウをそのまま生かしたいという要望があるからです。こうした案件でSQL Serverを導入しようとしても、さまざまなソフトやツールはOracleを前提に構築されているため、費用が掛かる可能性があるのです。こうした場合とは逆に、新たにシステムを構築したい場合は、WindowsベースかつSQL Serverを選ぶ案件が多くなります。また、Windowsをベースにした既存システムがあるのであれば、それらとの接続性のためにSQL Serverを選ぶ後押しになります」と説明する。

 Windows環境を前提にし、既存環境やほかのシステムを積極的に指定しない場合、SQL Serverが自然と選ばれることが多いという。つまり、SQL ServerはWindows環境のデータベースの「デフォルト」的な選択肢となっていると小倉氏は指摘する。これがSQL Serverの利用者数の多さにも結び付く。だが同時に、こうした無意識的、または消極的に選ぶ利用者が含まれることが、利用者数の多さの割に、技術への興味や関心が希薄になる理由の1つにもなっているようなのだ。

「SQL Serverは大規模システムに不向き」は誤解

 とはいえ、SQL Serverには、多くのユーザーが享受できるメリットがある。それを一言でいえば「手軽さ」だろう。マイクロソフトのサーバ製品群を組み合わせれば、1台のサーバに多くの役割を持たせることも気軽にできる(例えばファイルサーバ、プリントサーバ、イントラネット用のWebサーバなどを1台のマシンに構築することは簡単なことだ)。しかし、小規模ならまだしも、大規模システムで導入する場合、そうした手軽さをそのまま利用するわけにはいかないと、宮内氏は警告する。

 「システム構成でいくつかのサブシステムやサーバに役割を分担することは、どんなシステムでもあり、SQL Serverでも同じことです。サーバを集中化するためシステムにリソースを割り振る技術はありますが、小規模システムで見受けられるような『取りあえずなんでも詰め込む』というような感覚は、大規模システムの場合では厳しい結果を招きます」(宮内氏)

 大事なことは規模に応じた使い方を選ぶことだ。中小規模なら手軽さを生かした使い方もあるが、大規模システムには適用できない。手軽さには一定の限界があるのだ。しかし、手軽さに限界があるからといって、それがSQL Serverの限界になるわけではない。ここを混同してはいけない。

真の原因を追求する

 「『ここまでの規模ならSQL Serverでも大丈夫だけど、その先は別』というように、SQL Serverが利用できる規模の境界があるわけではありません。もしSQL Serverを用いたシステムに限界が発生したとしても、そのときはほかデータベースエンジンでも同じく限界に達することになるでしょう」と宮内氏はいう。

 システムの限界がデータベースエンジンのみに起因することはめったにないことだという。システムにはハードウェアやネットワークといった複数の要素が複雑に絡み合う。特にハードウェアの限界をSQL Serverの限界と混同する場合が多いと、宮内氏は指摘する。短絡的に原因を決めつけることなく、要素間の関係も把握したうえで、真の原因を追求することが大切だ。

 では、SQL Serverを大規模システムで導入するとき、ほかのデータベースエンジンと異なる点や注意点はあるのだろうか。それを両氏に問うと「特にない」という。SQL Serverの設計思想や実装の違いといった細かな違いは当然あるが、大規模システムでの利用に当たってSQL Serverがほかのデータベースと際立って違う点は大してないからだ。データベースの神髄を究めていくと、製品の実装の差は小さなものになってくるのだろう。

必須の知識とは

 SQL Serverの手軽さには、技術的な敷居の低さも含まれる。高度なスキルを持たなくても「そこそこ使える」ことがSQL Serverのメリットである。しかし、それに甘えすぎないようにすることも重要だという。

 「SQL ServerだとGUIがよくできていて、内部処理の仕組みを知らなくても運用ができる場合があります。ただし、Oracleだとそうはいかないでしょう。こうしたSQL Serverの特徴は、導入の敷居を下げることになりますが、危険もはらんでいます。内部処理を理解しないまま運用していると、パフォーマンスが落ちていたり、問題発生に気付くのに遅れる可能性があるからです。大規模システムでは、それが致命傷になることがありますので、DBメンテナンス作業(統計情報の更新やインデックスの再構成など)を怠らないようにしています」(小倉氏)

 内部のアーキテクチャを知らず、「ブラックボックス」のままである程度運用できてしまうSQL Server。しかし、できるだけ内部のアーキテクチャを把握して運用するのが望ましいことはいうまでもない。難しいことを「考えなくても済む」といっても、「考えなくてもいい」という意味とは違うのだ。では、どの程度の知識があればいいのだろうか。そして指標はあるだろうか。

 「GUIからの操作の裏で、実際にデータベースに対して何が実行されているのかを理解する必要があります。GUIからの操作を実行するとどのようなSQL文が発行されているのか、どのようなシステム・ストアド・プロシージャが発行されているのか、それらがどのデータベースオブジェクトに対してどのような影響(効果)を与えるものなのかなどを理解することです。当然それらを理解するためにはベースの知識としてRDBMS構造についての基礎知識やSQL構文についての基礎知識は備わっている必要があるでしょう」と小倉氏はいう。

 ただし、よくあることとして、SQL Server以外のデータベースを利用した経験があると、ほかのデータベースとの違いで混同・混乱することもあるという。小倉氏は以前、Oracleでのシステム構築を経験することが多かった。そんな彼がSQL Serverを利用し始めた当初は、ロックメカニズムの違いに戸惑ったという。データベースの提供する機能には各製品間で差があまりないとしても、その実装方法は製品ごとに微妙な違いがあることに注意しなくてはならないのだ。

 次に、OS知識の必要性はどうだろうか。

 「OSから見てSQL Serverだから問題があるというわけではありませんが、ほかのデータベースと比べ、マイクロソフト製品であるSQL ServerはWindows OSと密接に関係しているので、OSの知識は特に必要です。ただ、その密接さ故に境界が分かりづらく感じることがあります。例えば、MSCSクラスタ環境に導入したSQL ServerとWindowsドメインとの関連などです。」(小倉氏)

 それでは、ハードウェア知識はどうだろうか。

 「もちろん必要です。例えばシステムを見積もるとき、秒当たりのトランザクション件数も考えます。これはディスクのI/Oと関係し、ハードウェア構成に影響を与えることがあるからです。ただし、ハードウェアの高性能化などのおかげで、こうした知識の必要性は昔に比べて希薄になってきています」と宮内氏はいう。厳密にいえば、ハードウェアについての知識は確かに必要だが、高度な部分、詳細な内容について踏み込むことはないという。

先入観や誤解

 SQL Serverについては、中小規模で手軽に使えるという側面ばかりが強調され、大規模システムでも利用できるという側面が見過ごされたり、否定されたりする。その根拠には「ぬれぎぬ」に当たるものもある。例えば先の規模の件である。規模に応じて変えるのは、主にハードウェアが先であって、ソフトウェアはその後だ。SQL Serverの限界があるのか、Windows OSに限界があるのか。それとも両方に問題があるのか? こうしたときにきちんとした原因追求ができるか。正しい知識と根拠を持って、的確な判断を下せるようになること――これはエンジニアとして、理想の境地の1つといえるだろう。

お薦めの書籍

 今回お薦め本として持参していただいたのは、お二方がともに示し合わせたわけでもないのに、データモデリングについて書かれたもので、著者も同じだった。

   データモデリングを理解するために

 この本はデータモデリングの本の中では、比較的易しく書かれており、初級から中級向けに当たる。生産管理のデータモデリングが解説されている。生産管理の業務知識と、IT(データベース)知識を結び付け、複雑な業務システムの構築に役立てるものだ。

小倉氏:「たまたまあるプロジェクトで、在庫管理と販売管理を担当することになり、その両方の言葉が表紙に掲げられていたので『これだ!』と思って買いました。データベースエンジニアの仕事は業務を分析して、こんな商品コードがあるから幅はこのくらいで、検索のことを考えるとこんなレイアウトが必要で……、という作業が必要になります。そういったことを助けてくれる本だと思います」

業務別データベース設計のためのデータモデリング入門

渡辺幸三著
日本実業出版社
2001年7月
ISBN4-534-03250-1
2800円(税別)


   さらに詳しくデータモデリングを知りたい人に

 同じくデータモデリングの本で、先ほどの本より少し踏み込んで解説してある。データモデリングについてはデータモデル、エンティティと正規化、システム設計に関する知識が、生産管理については部品表と工程表、在庫システム、入出荷と製造、月次計画と製造などが網羅されている。掲載されているER図がとても見やすい。

宮内氏:「私も生産管理のプロジェクトを担当することになり、データ構造の参考にできるものが欲しくてこれを手にしました。業務分析からデータ構造を考えること、そういうことがこの仕事をやっていくうえで面白いところになると思います。製品知識だけだと知識が浅くなってしまうので、こういうデータモデリングのノウハウが加わるとよいと思います」

生産管理・原価管理システムのためのデータモデリング

渡辺幸三著
日本実業出版社
2002年10月
ISBN4-534-03473-3
2800円(税別)


   SQL Server 2000を理解するには

 SQL Server 2000の重要な機能と内部のアーキテクチャが詳しく解説されている。加えて、その特徴を生かす設計手法についても触れている。製品内部の解説だけではなく、データ格納方法やインデックスの実装、パフォーマンスやチューニング、ロックやクエリなどの実装にかかわる部分も解説している。

小倉氏:「SQL Serverのアーキテクチャを解説した本の中では、これがお薦めできます。ある程度SQL Serverを使った人にいい本です。ただ、この本1冊では足りない部分もあるかと思いますが……。SQL Serverは簡単に操作できるようになっていますが、SQL Serverについてより深い理解を得たい人に読んでほしいです」

アーキテクチャ徹底解説Microsoft SQL Server 2000(マイクロソフト公式解説書)

Kalen Delaney著、クイック訳
日経BPソフトプレス
2001年11月
ISBN4-89100-260-3
9500円(税別)


データベースエンジニアを目指せ! バックナンバー
SQL Serverで大規模システムを究める
データベースは設計と上流から押さえる
データベースコンサルタントへの道
データベースの習得に王道はあるか?
データベースの学び方
顧客の変化とともに成長するエンジニアになる
理想のデータベースエンジニアとは?
データベースエンジニアの真髄を見極めよう
自分戦略研究所、フォーラム化のお知らせ

@IT自分戦略研究所は2014年2月、@ITのフォーラムになりました。

現在ご覧いただいている記事は、既掲載記事をアーカイブ化したものです。新着記事は、 新しくなったトップページよりご覧ください。

これからも、@IT自分戦略研究所をよろしくお願いいたします。