SQL Server

 SQL Server 1990年にリリースされたMicrosoft社製のリレーショナルデータベース製品です。
個人事業者などの小規模環境から、金融系などの大規模環境まで幅広く採用されており、現在は、SQL Server 2014が最新版となっています。SQL Serverの特徴は、機能面や性能面はもちろんですが、使いやすく導入しやすいのが特徴です。
例えば、SQL Serverには、GUIの管理ツール群がありますが、Windowsのエクスプローラーのように、簡単に使えるのが特徴です。このツールにより、細かなコマンドなどを知らない方でもデータベースの構築から管理が簡単にできるようになっています。初期のSQL Serverは、機能や性能面から中小規模環境での採用が多かったため、「小規模向け」という印象が先行した時期もありました。ですが、SQL Server 2005のころから機能や性能面において他社製品と引けを取らないものに進化し、大規模オンラインショッピング系サイトや金融系システムなど高い性能と信頼性を必要とする環境においても採用が進んでいます。

 

上記にもあるように、SQL Serverの導入事例には様々なものがあります。ですが、SQL Serverに限らず、最近のデータベース製品は性能面や機能面においての差が小さくなっています。そのため、最終的にお客様が実現したいことを考えた場合、特定の製品に依存しなくてもよいケースがほとんどです。
では、なぜ多くのお客様がSQL Serverを選択したのでしょうか。様々な事例を読んでいくと、以下の3点を挙げているお客様が多くいらっしゃいます。

 

1. コスト

 最近は、お客様もインターネットを通じて様々な情報を入手しており、自分たちが採用している製品が「実は割高では?」「もっと簡単にできるのでは?」と思うことが増えてきているようです。

 SQL Serverは有償製品ですが、エディションごとに提供されている機能は、追加費用なしで利用できます。他社の製品の場合、様々な機能が有償のオプションとなるため、同等の機能や構成にした場合、割高になってしまうことがあるようです。

 

2. パフォーマンス

 どんなに安くても必要なパフォーマンスが発揮できなければ意味がありません。SQL Serverでは、後程ご紹介する「インメモリ機能」をはじめ性能を高めるための工夫や配慮が多くなされています。また、ハードウェアメーカーと共同で超高速処理を実現するサーバー製品である「SQL Server SSD Appliance」を展開するなど、性能面においても十二分な対応が図られています。

 

3. サポート体制

 データベース製品には、オープンソースをはじめとした無償製品もありますが、問題があった時に相談に乗ってくれる技術者がいるかというとそうとは限りません。また、OS部分とデータベース部分でサポート対応が分かれてしまうなど、場合によっては"たらい回し"に合うことも考えられます。

 SQL Serverを採用することで、ベースのOSであるWindowsからSQL ServerまでトータルでMicrosoftのサポートを受けることができます。また、Windows Updateを通じて、修正プログラムなども無償提供されます。これは、一見すると「当たり前では?」と思うかもしれませんが、他社製品の場合、サポート費用を支払わないと修正プログラムが提供されないといった場合もあるようです。

 

最新版SQL Server 2014

現在、最新版のSQL Server 2014では、様々な機能強化が図られています。その中でも、特徴的な2点をご紹介します。

 

■インメモリ機能

 

SQL Server 2014といえば「インメモリ機能への対応」とあげる方が多いと思います。それだけインパクトの大きい機能でもあります。 これは一言でいうと「メモリ上にデータを常駐させ高速化しよう!」というテクノロジーです。

 

 

 通常のデータベースの処理では、必要に応じてハードディスクからデータを取り出し、メモリ(バッファプール上)に展開してから処理を行っていました。ただ、命令が増えると、ハードディスクへのアクセスが殺到して、データの取り出しに時間がかかってしまいます。この場合は、ハードディスクの性能向上策などを講じる必要がありました。

 

インメモリ機能では、SQL Serverが確保しているメモリ上にテーブルを常駐させます。これを「メモリ最適化テーブル」と呼びます。メモリ最適化テーブルは、ハードディスクからのデータの取り出しが不要なため、取り出すための待ち時間が発生しません。また、更新している最中でもデータの参照が可能なため、同時アクセスに強いのも特徴です。また、インメモリ機能と合わせて、「ネイティブコンパイルストアドプロシージャー」も実装されました。これは、メモリ最適化テーブルでの利用を想定したストアドプロシージャーです。
通常のSQL文によるクエリは、実行時にコンパイルしマシン語に変換したのちに実行されます。ネイティブコンパイルストアドプロシージャーでは、マシン語に変換した状態のストアドプロシージャーをメモリに読み込ませておくため、従来のクエリよりも素早く実行できるのが特徴です。

 

なお、メモリ最適化テーブルは、ネイティブコンパイルストアドプロシージャーを使わなくても、従来のクエリをそのまま使い利用することも可能です。そのため、アプリケーション側の変更を行わなくても、高速化できるのも特徴です。

 

■クラウド連携の強化

Microsoft社が提供するクラウドサービスである、Microsoft Azure上との連携がさらに密になりました。これにより、障害や災害などを想定したデータベースの多重化がより手軽にできるようになりました。

 

たとえば、SQL Server 2012には、Always ONとよばれるサーバーの多重化機能があります。これまでは、物理環境のSQL Serverのみで構成していましたが、SQL Server 2014では、Azure上のSQL Serverも含めて多重化することができます。そのため、物理環境のSQL Serverの問題が生じたとしても、Azure上のSQL Serverでサービスを継続できるわけです。

 


また、SQL Serverのデータベースを構成するファイル群やバックアップをAzureのクラウドストレージ上に配置することもできるようになりました。これにより、SQL Serverの再インストールが必要な場合でも、クラウドストレージ上のファイル群を用いるだけで、簡単にデータベースを復旧することができます。このような形で、Azureと連携することで、物理環境のSQL Serverに万が一障害が起こった場合でも、Azure上のデータを用いて、 素早くサービスを再開することが可能です。