SELECT features FROM bumf... MS SQL Server 2016 の新機能

Table of Contents

SELECT features FROM bumf... MS SQL Server 2016 の新機能

Microsoft は SQL Server 2016 をリリースし、新しいセキュリティ機能、改善されたクエリ プロファイリング、Hadoop 統合、ハイブリッド クラウド機能、R 分析をデータベース サーバーに追加するとともに、その他多数の改善を加えました。

SQL Server を「データベースサーバー」と呼ぶだけでは、その範囲を正確に表現できません。主なコンポーネントは次のとおりです。

データベースエンジン。Windowsで動作し、Linux版もリリース予定です。MicrosoftのSQLにSQL Server固有の拡張機能を加えたTransact-SQLをサポートしています。レプリケーションやフェイルオーバーなどの高可用性機能も備えています。

Reporting Services。Web ポータル経由でレポートを設計および展開できます。

Analysis Services。多次元データモデルを用いた高度なデータマイニングとレポート作成機能。PowerPivotアドインを介してExcelスプレッドシートと統合します。

R Services。SQL Server 2016の新機能で、統計分析に使用されるRプログラミング言語をSQL Serverに統合します。これは、MicrosoftによるRevolution Analyticsの買収に基づいています。

データ品質サービス。内部または外部のナレッジベースを参照して、不正確なデータ、不完全なデータ、重複したデータを検出し、データの品質を向上させる分析ツール。

PolyBase。SQL Server 2016 の新機能。SQL Server を Hadoop または Azure Blob ストレージ内の外部データと統合します。

Azure SQL。MicrosoftのSQL Server as a Service(サービスとしてのSQL Server)は、メンテナンスの手間が少なく、自動スケーリングの利便性を備えていますが、SQL Serverのフル機能の一部しかサポートしていません。Microsoftは、フル機能を利用するにはAzure仮想マシン(VM)でSQL Serverを実行することを推奨していますが、コストは高くなります。

SQL データ ウェアハウス。Azure SQL では最大 60 TB のデータベース (バージョン 250 GB から 1 TB) をサポートする新しい Azure サービスですが、クエリの超並列処理によるデータ ウェアハウス向けに最適化されていますが、利用できる T-SQL のサブセットはより限定されています。

これらすべてが大きな製品、あるいは製品ファミリーを構成します。Microsoftは、他のベンダーが様々なモジュールごとに追加料金を請求するのとは異なり、すべてが組み込まれていると主張しています。ただし、これはEnterprise Editionを購入した場合のみ当てはまり、Enterprise Editionは安価ではありません。

SQL Server 2016 は 2014 エディションを継承しており、その大きな新機能はコード名 Hekaton と呼ばれるインメモリ OLTP (オンライン トランザクション処理) です。これは実質的に、インメモリ データ用に最適化され、ネイティブ コードにコンパイルされたストアド プロシージャによってさらに強化された代替データベース エンジンであり、これらを組み合わせることで、パフォーマンスが大幅に向上する可能性があります。

SQL Server 2016 には特に目を引くものはありませんが、インメモリ OLTP は以前よりも使いやすくなっており、FOREIGN KEY、UNIQUE、CHECK 制約を含む、より広範な T-SQL のサブセットがサポートされているほか、ネイティブ コンパイル ストアド プロシージャの OR、NOT、SELECT DISTINCT、OUTER JOIN、SELECT のサブクエリもサポートされています。

セキュリティ機能

MicrosoftはSQL Server 2016に重要なセキュリティ機能を追加しました。「Always Encrypted」では、クライアント側のキーに基づいてサーバーからクライアントへのデータ全体を暗号化できます。これらのキーはクライアントに配布されます。新しいAlways Encrypted対応ドライバーが必要ですが、暗号化はアプリケーションに対して透過的です。

Always Encryptedはクライアント側の復号化を使用します

Always Encryptedはクライアント側の復号化を使用します

欠点は、新しいドライバーが必要になることです。Microsoftは.NET、ODBC、JDBCドライバーを更新しましたが、いくつか注意点があります。例えば、ドライバーによってカスタムキーストアプロバイダーのサポートの有無が異なり、すべてのデータ型が現在のODBCドライバーでテストされているわけではありません。本番環境で使用する前に、徹底的なテストを実施することをお勧めします。

行レベルセキュリティも新たに追加されました。これは、データベースエンジンレベルでデータアクセスを制限し、ユーザーが自分に関連のある情報のみを閲覧できるようにするという考え方です。例えば、営業担当者は、同じテーブルに他のレコードが存在するにもかかわらず、自分の営業記録のみを閲覧できるようにすることができます。これは、ユーザーログインを参照するインラインテーブル関数とセキュリティポリシーを組み合わせることで実装されます。ただし、注意が必要です。そうしないと、ユーザーが閲覧できないレコードを作成できるようなポリシーを作成してしまう可能性が高くなります。

ダイナミックデータマスキングも新機能の一つです。典型的な用途はクレジットカード番号です。番号全体を保存する必要がありますが、多くのユーザーは最後の数桁だけを確認すれば十分です。テーブル定義でこれを指定すると、UNMASK権限を持つユーザーのみが番号全体を参照できるようになります。

Discover More