不動の鳥の勉強記録

時間があるときに勉強したことをメモします。

いまさらSQL Server 2014の新機能のダイジェストを見てみる

■はじめに

SQL Server 2008 R2のEOSL対応で、SQL Server 2017にアップグレードするので、
自習書のダイジェストをもとに2012からの新機能を勉強します。
SQL Server 2012は前回記事作ったので、SQL Server 2014の新機能を見てます。

hiyo-ac.hatenablog.com

www.microsoft.com 上記リンクから、「SQL Server 2014 の新機能の概要」をもとにしました。

下記の番号は自習書の目次の番号に合わせ、私の個人的なメモを記載します。

2.1 インメモリ OLTP 機能の概要

テーブルやストアドプロシージャの機能をメモリに載せてメモリ内で処理させる機能です。 ディスクアクセスがなくなる分、高速な処理が期待でしますがメモリが必要になるのでメモリ確保の仕組みが気になります。 下記ページを後でじっくり読みたいと思います。

インメモリ OLTP (インメモリ最適化) - SQL Server | Microsoft Docs

3.1 更新可能な列ストアインデックスの概要

SQL Server 2012では読み取り専用だったのが、更新可能になったとのことでした。

この更新可能な列ストア インデックスは、「クラスター化列ストア インデックス」(CCSI: Clustered Column-store Index)と呼ばれ、従来ながらの読み取り専用の列ストア インデック スは、「非クラスター化列ストア インデックス」と呼ばれます。

とのことで、新しい短縮用語が出てきたのはしっかり押さえておきたいところでした。 列ストアインデックスはデータの圧縮がかかっているのでディスクアクセスは減るが、
データの圧縮率によってCPUパワーを余計に消費する点は勉強になりました。

4.1 バッファプール拡張(SSDをバッファプールとして利用可能に)

ドライブの一部の領域をバッファプールに割り当てられるとのことです。 SSDなどを割り当てるとディスクを読み取るより早いので性能向上に役立つとのこと。
メモリに載せたいデータと、拡張領域に載せたいデータを明示的に分けるのは難しそうで、
性能事故の元になりそうなので利用することはなさそうですね…

4.2 Power View (パワービュー)機能の強化

SQL Server 2012から登場したPower Viewの機能強化がされました。
BIに力を入れていることがうかがえます。

4.3 クラウド対応(Microsoft Azure 連携)

AzureへのバックアップやAzure上にmdfファイルを置けるようになったとのことで、 クラウド化が始まりました。

4.4 SQL Server AlwaysOnのパワーアップ

下記3つのパワーアップがあったそうです。

2点目については、SQL Server 2012ではクォーラムが損失するとデータベースへのアクセスができなかったのがアクセスできるようになった点がグッドです。

4.5 クエリ処理エンジンの進化(SELECT INTOのパラレル処理など)

下記4つの機能が追加になったとのことです。

  • SELECT INTO のパラレル処理
  • 基数推定の進化(新しいアルゴリズム
  • 統計の増分更新
  • リソース ガバナーでI/O数による制限が可能に

統計の増分更新は気になります。SQL Server 2016と2017でどんな処理しているのか詳細探してみたいと思います。

4.7 インデックス再構築時のロックの優先度変更

オンラインインデックス再構築時にロックの優先度が設定できるとのこと。オンラインリビルドの時は開始と終了時の時点のみロックがかかる仕組みだったかと思うのだけれど、何が変わったのだろうか…

■終わりに

SQL Server 2014といえば、インメモリOLTPですが他にもいろいろな機能があって勉強になりました。
DMVやデータコレクションなどの機能もしっかり見ていきたいと思いました。