OracleとSQLServerを比較し、最適なDBを選ぶ

「OracleとSQLServerを比較してどちらが自社にあうのか?」

データベースを選定する際の悩みどころです。OracleとSQLServerはどんな違いがあるのでしょうか?(他のデータベースは別の機会にでも)

それではOracleとSQLServerを比較してみます。

oracle_SQLServer

管理ツール

  • OEM(Oracle Enterprise Manager)・・・Oracle
  • SQL Server Management Studio・・・SQLServer

DBAがまず気になるのが日常のメンテナンス。OEMはブラウザから起動し、SQL Server Management Studioはローカルのソフトです。どちらもDBの管理ツールです。「どちらが使いやすいか?」は個人差があるので何ともいえません。

ただOEMには難点があります。

OEMはWEBサイトや書籍で情報が少なく、セミナーもみかけませんね。恐らくはかなりの機能がOEMにはあるはずですが、使えるようになるためのハードルが高いです。思うに、OracleにOEMを広める気がないように感じられます。そんな状態なので「Oracleの設定変更はコマンドのほうがよい」が通説です。私もOEMを使うくらいならコマンドで処理します。

それに比べSQL Server Management Studioは情報量も多く直感的に使いやすいと感じます。

ロックエスカレーションの是非

  • ロックエスカレーション発生する可能性無し・・・Oracle
  • ロックエスカレーション発生する可能性有り(無しにもできる)・・・SQLServer

「SQLServerはロックエスカレーションが発生するのでパフォーマンスが低い」といわれております。ロックエスカレーションとは簡単にいうと、「多くの行をロックする場合はテーブルごとロックしてしまえ」というやり方です。特定の行を更新する場合でも関係のない行をロックしてしまうので他の処理が影響を受けてしまう可能性があります。SQLServerはここが問題だと。

Oracleは行ロックに対応しているので、必要な行のみロックします。よって他の処理が影響を受けることがないわけです。

ただし、ロックエスカレーションは一括ロックするのでオーバーヘッドが小さいというメリットもあります。それに加え、SQLServerのロックエスカレーションは無効にできるので、この機能が不要であれば無効にしてしまえばいいだけのことです。なのでロックエスカレーションはSQLServerのデメリットとは考えられません。

管理の容易さ

Oracleは不具合も少なくなく、それなのに有償サポートに入らないとパッチが入手できません。また、インストールや設定変更時にエラーが発生する確率が高いです。そういったことを解決できる技術者が必要です。つまり、Oracleの方がSQLServerよりも高い技術レベルを求められます。

私はOracleを10年程使った後、はじめてSQLServerをさわりましたが、衝撃でした。

  • インストールが途中でとまらず完了する
  • 設定変更してもエラーがでない

SQLServerのほうがOracleよりも管理は手軽にできます。

国内シェア

2009年のデータです。

  • 売上げ額シェア・・・Oracle41%、SQLServer35%
  • 売上げ本数シェア・・・Oracle33%、SQLServer46%

これをみると本数ではSQLServerのシェアが高いけれど、Oracleは価格が高い分だけ売上げ額のシェアが高いということになります。というわけで、両者の国内シェアは拮抗していて差はないということです。

信頼性

何をもって「信頼性が高い」というかは会社次第、経営者次第、DBA次第ではないでしょうか?大企業になればなるほど、Oracleの採用率が高いと感じます。

ただ、Oracleを採用している会社の何人かの管理者に「Oracleでないといけないのか?」という問いをぶつけましたが、結果はおよそ同じです。

「そんなことないですよ。ただOracleだと通りやすいから」つまり他のDBMSも可能だけれど、「Oracleでいきます」というと「上」が納得しやすいというカラクリです。「大手が使っているから」「実績があるから」という・・これって完全なイメージですよね?シェアはほぼ同じ。大手でもSQLServerを採用している企業ももちろんあります。大手が使っている、実績があるのはSQLServerにもいえることです。でも、イメージは違う。これがいわゆるブランド力というやつですね。

他には「昔から使っているから」というのもありました。昔からOracleを使っているからSQLServerに乗せかえる理由がないということです。「でもSQLServerの方がトータルコスト低いですよ」というと、「会社が払うから関係ない」「予算あるから」という答え。これも多いです。

全てが前述の通りとは思いませんが、こういったケースは少なくないと感じます。つまり、Oracleが信頼されているのは「Oracleデータベースの信頼性」とはあまり関係のない部分があるのでは?と感じています。

 

長々とOracleとSQLServerの違いについて述べてきました。Oracleの批判が多いと感じられるかもしれませんが、私自身、Oracleを使ってきて、Oracleが一番だと「信じていました」し、「聞いていました」。本やWEBサイトでもNo.1だと「書いてありました」。

でも、SQLServerやMySQLにふれてみると「そんなにOracleが優れている?」と疑問に感じるようになりました。それで俯瞰的に考えようと、今回比較してみました。

やはり「1つの製品しか知らない」のは危険です。「その製品が優れているか?」を検証するには、自分で「見て」、「使って」、「他と比較して」がないといけません。決して「業界の空気」や「マーケティング」に侵さてはいけません。

自分できちんと比較し、自社に最適なDBを選ぶには一度、「Oracle至上主義」を捨ててみることが重要だと考えます。(決して、Oracleがダメといっているわけではありませんので。)

OracleとSQLServerの選定の参考にしてみてください。

 

ティークリエイトブログのこの記事が読まれています