PR

 Microsoft SQL Serverは,控えめに言っても,複雑な製品だ。完全に使いこなせるようになるには,数年とは言わないまでも,数カ月の時間が必要である。SQL Serverの方法論についての理解が一定の水準に達するまでは,腹立たしいとまでは言わないにしても,わかりにくいと感じる点が多々あることだろう。DBA(データベース管理者)は,何かいらだちを感じることに遭遇すると,同じ目標を達成できる別の方法を見つけるものだ。そして,そうした知識が蓄積されるにつれて,快適に作業を進められるようになる。

 SQL Server Magazineフォーラムの常連投稿者であるPete Kavanagh氏は,筆者に「私は,いらだちの原因となる問題を避けて,別の解決法を見つける習慣を身につけた。そのため,今では何にいらだちを感じていたのか,なかなか思い出せないほどだ」と話した。同じくSQL Server Magazineフォーラムの常連のRussell Bloom氏は,SQL Server 2000とSQL Server 2005でクエリー・エディタのタブ設定が変わったことがそうした問題に含まれるのか,悩んでいる。なぜなら,彼はSQL Server Management Studioの設定をいくつか変更するだけで,その問題を解決できたからだ。とはいえ,SQL Server 2008には頭痛の種になる要素が確実に存在する,ということに異論を唱える人はいないだろう。

ユーザーが見つけた不都合はどうする?

 SQL Serverの挙動には,人によって評価が極端に分かれるものがある。SQL Serverのバグ・レポートを読めば,報告されている挙動の多くが,たまたま発生したものではなく,「設計上そうなっている」ものなことが分かる。おそらく,これらの挙動は,一部の人にとっては腹立たしいほど不合理に思えても,そのほかの人には至極当然のこととして受け入れられているのだろう。

 例えば,SQL Server 2000で「TOP (100) PERCENT」句と「ORDER BY」句を使用するビューをクエリーすると,ORDER BY句で指定された順番で結果が返される。だが,SQL Server 2008やSQL Server 2005で同じビューをクエリーすると,ランダムな順番で結果が返されるのだ。ランダムな出力と規則正しい出力のどちらが適切なのかについては,様々な議論がなされている。SQL Server 2000の挙動に問題があったと言う人もいれば,逆にそれ以降のリリースでこの挙動を変える理由が分からないと主張する人もいる。この論争は,MicrosoftがSQL Server 2008とSQL Server 2005の挙動をSQL Server 2000に合わせるホットフィックスをリリースするまで続いた(Microsoftサポートオンラインのサイト)。

 とは言うものの,いらいらの原因となるバグは確実に存在する。データベースを使っていてバグの可能性がある予想外の挙動に遭遇したときは,Microsoft SQL Server ConnectのWebサイト)を利用して,その情報をMicrosoftに報告することが可能だ。同サイトでは,同じバグを報告している人がほかにもいるか,Microsoftが解決策やパッチをリリースしているか,といったことを確認できる。誰も同じバグを報告していなければ,自分で報告すればよい。多数のユーザーに影響を及ぼすバグは,多くのユーザー評価を集める。そして,SQL Serverチームは,そうした問題を優先的に解決していくのだ。

あまりにも多いSQL Server 2008のエディション

 選択肢があるのはいいことだ。しかし,選択肢が多すぎると,混乱を招くことがある。SQL Server 2008のバージョンがこれほど多彩なのは無理からぬことではあるが,それが事態を複雑にしているのも事実だ。プロセサ・アーキテクチャ別の製品の違いを無視すると,SQL Server 2008には,「Enterprise」「Standard」「Developer」「Workgroup」「Web」「Express」「Express with Advanced Services」「Compact」という8種類ものエディションが存在する。

 これらのエディションはそれぞれ異なる市場をターゲットにしているが,ユーザーが自分の組織のニーズに合致するエディションを選別するには,多少の時間がかかるだろう。選択の対象となるバージョンが数種類しかないのであれば,その中から1つを選ぶのは比較的容易だ。だが,8つの異なるエディションの長所と短所を比較検討し,どれか1つに決めなければならないとなると,かなりの時間が必要だ。

 その結果,DBAの多くは最上位のEnterpriseエディションを選択するのが最も安全と考える。Enterpriseを選んでおけば,後で自分が選んだエディションに含まれていない機能やライセンス・オプションが必要なことが分かって非難されるという事態を避けられるからだ。あなたの組織がある特定の機能を現時点で必要としていないからといって,将来もその機能が不要だとは限らない。Enterpriseは,SQL Server 2008の完全な機能セットを含んでいる唯一のエディションである。

 さらに,組織にとって最適のSQL Serverエディションを購入してコストを節約したとしても,正確なニーズを前もって把握するためにDBAにお金を払い,その後,それらのニーズを最適なSQL Server 2008エディションに合致させるということをしていると,節約分が相殺される可能性がある。完璧なエディションを選択して数百ドルを節約するためだけに専門家にお金を払うのは,必ずしも得策とはいえない (もちろん,コンサルティング業務を手がける人にとっては,こうした作業はおいしい仕事かもしれない)。

 それぞれのエディションには合理的な存在意義があるものの,エディションの数がこれほど多くなければ,DBAが展開するエディションを選ぶ作業はもっと楽になるだろう。そして,その作業が楽になれば,DBAが展開を行なう際に間違いを犯す確率は低くなる。人々に選択肢を与えれば与えるほど,一部の人が間違った選択をする可能性は高くなるのだ。