SE の雑記

SQL Server の情報をメインに Microsoft 製品の勉強内容を日々投稿

SQL Server 2014 CTP1 製品ガイドで見る新機能概要

leave a comment

Microsoft® SQL Server® 2014 CTP1 Product Guide が新機能を俯瞰するのに便利だったので読みながらキーポイントとなる箇所軽くをまとめておきたいと思います。

■キーワード


SQL Server 2014 のキーワードとしては、

  • In-Memory Across Workloads
  • Performance & Scale
  • Hybrid Cloud Optimized
  • HDInsight
  • Cloud BI

が挙げられています。

ちなみに SQL Server 2012 では、

  • AlwaysOn
  • ColumnStore Index
  • Data Quality Services
  • Power View
  • Cloud Connectivity

となっていました。

■Mission Critical Performance


  • In-Memory Across Workloads
  • Performance & Scale

の箇所ですね。

In-Memory OLTP

Hekaton のことですね。

Memory Optimized Tables を使用したインメモリ OLTP が SQL Server 2014 で実装されます。

Fixed schema; no ALTER TABLE; must drop/recreate/reload
No LOB data types; row size limited to 8,060
No constraints support (primary key only)
No identity or calculated columns, or CLR

というようなテーブルの設計をする上での考慮事項が挙げられています。

Size of tables = (row size * # of rows)

Size of hash index = (bucket_count * 8 bytes)

というような格納領域のサイズ計算も気にしておいたほうがよさそうですね。

ハッシュインデックスでは行データの検索に使用するためのハッシュ値をバケットに格納しますが、そのサイズのサイズについての算出方法も記載されています。
# バケット等については Wikipedia が参考になります。

データの永続性を行わないための設定も SCHEMA_ONLY vs. SCHEMA_AND_DATA として紹介されていますね。
# 揮発データとして Hekaton を利用するシナリオですね。

Columnstores : Clustered updatable

PDW v2 で実装されている更新可能な列ストアインデックス (Clusterd Column Store Index : CCSI)ですね。
SQL Server 2014 でも使用できるようです。

Hekaton の場合はテーブルサイズは [Size of tables = (row size * # of rows)] となっています。
TechEd やホワイトペーパーを確認すると Hekaton のデータ格納は行を基本としたデータ格納となっています。

CCSI の場合は列を基本としたデータ格納 (Row Group で列としてもくくっていますが) となっており、列圧縮による格納領域のサイズ削減がありますのでこの辺の違いは意識しておくとよいかと思います。

バッチモードの強化として Support for all flavors of JOINs 等がありますので、今まではバッチモードとして処理ができていなかったクエリがバッチモードとして処理が最適化されて実行される幅が増えるようです。

更新可能になったことにより、

BULK INSERT
•Creates new columnstore row groups

INSERT
•Rows are placed in the row store (heap)
•When row store is big enough, a new columnstore row group is created

DELETE
•Rows are marked in the deleted bitmap

UPDATE
•Delete plus insert

というようにどのようにしてデータを追加しているかも重要となってきますね。

ほかにも PDW v2 についても紹介されています。

SSD BufferPool

Windows Server 2012 R2 で複数層の記憶域としてデータアクセス頻度が高いものは SSD に配置するというような記憶域設定ができるようになるようですが、それとは別に SQL Server でも複数層の記憶域管理がバッファプールで使用することができるようになるようです。

ALTER SERVER CONFIGURATION
SET BUFFER POOL EXTENSION ON
(FILENAME = ‘F:SSDCACHEEXAMPLE.BPE‘, SIZE = 50 GB)

使えるエディションがどれになるかがわかりませんが、Standard でも使えると結構面白いかもしれないですね。

Query Process Enhancement

気になったものとしては、

Parallel SELECT INTO

でしょうか。

大量データの並列ロードとして SELECT INTO の並列化ができるようになるようです。

パーティションのスイッチについても機能改善があるようですね。

Security Enhancement

いくつかの権限が追加されるようです。

Three new permissions (CONNECT ANY DATABASE, IMPERSONATE ANY LOGIN, and SELECT ALL USER SECURABLES)

Resource Governor

リソースガバナーの機能強化があげられています。

SQL Server 2012 のリソースガバナーで CAP_CPU _PERCENT が指定できるようになり、CPU の使用率の条件を厳密に設定できるようになりました。

SQL Server 2014 では

[ [ , ] MIN_IOPS_PER_VOLUME = value ]
[ [ , ] MAX_IOPS_PER_VOLUME = value ])

により、ストレージの IOPS も制限ができるようになるようです。

AlwaysOn

SQL Server 2012 で追加された AlwaysOn ですがこれに関しても機能強化が挙げられています。

Increase number of secondariesfrom four to eight
Increase availability of readable secondaries
Support for Windows Server 2012 CSV
Enhanced diagnostics

セカンダリを 8 台の構成にすることができるようです。
セカンダリを配置できる拠点を増やすことができそうですね。
# 管理大変そうですが。

CSV (Cluster Shared Volume) を使用することもできるようです。

 

■Faster Insight from Any Data


  • HDInsight
  • Cloud BI

というような BI / ビッグデータ関連ですね。

この辺はあまり触らないのでさくっとだけ書いてしまいますと、

  • “Data Explorer” Preview for Excel
  • HDInsight and Hadoop
  • PolyBase
  • Geoflow
  • MobileBI

というようなデータ可視化や、データの源泉としての選択肢の拡張、場所や端末を選ばないデータの表示というような形でしょうか。

いくつかの機能についてはすでに触ることができるようになっているかと思います。

専門がストレージエンジンよりなのでこの辺は弱いんですよね。
蓄積したデータをいかにして活用するかという方向にもシフトしていかないといけないとは思っているのですが、蓄積されたデータに自由に触れる機会がないもので。

データは蓄えることが目的ではなく、蓄えたデータをいかにして活用するかが目的だと思いますので、このあたりに注目されている方には表現力の向上はかなりよさそうです。

 

■Platform for Hybrid Cloud


最後は

  • Hybrid Cloud Optimized

ですね。

Backup to Windows Azure

SQL Server 2012 でも修正プログラムを適用することで、Azure ストレージ上にバックアップを取得できるようになりましたが、2014 では標準搭載に。

CREATECREDENTIALmystoragecred
WITHIDENTITY=‘mystorage’,
SECRET=‘<your storage access key>
BACKUPDATABASEmydbTOURL=’https://mystorage.blob.core.windows.net/backup-container/mydb-20130411.bak’
WITHCREDENTIAL=‘mystoragecred’,FORMAT,COMPRESSION, STATS = 5,
MEDIANAME=‘mydb backup 20130411′,MEDIADESCRIPTION=’Backup of mydb’

構文自体は SQL Server 2012 と変わりがなさそうですね。

機能強化点としては Smart Backup でしょうか。

上記の構文は単発でバックアップを取得するための構文ですのでバックアップの世代管理については含まれていません。
SQL Server 2012 では、世代管理を自前で実装する (Azure CmdShell でストレージのファイルを整理等) 必要がありましたが、2014 では世代管理の管理性が向上しています。

Example:
EXEC smart_admin.sp_set_db_backup
@database_name=’TestDB’,
@storage_url=<storage url>,
@retention_days=30,
@credential_name=’MyCredential’,
@enable_backup=1

ストアドで設定が容易にできるようなっているようですね。
# SQL Server Agent も併用しているとは思いますが。

リストアも Azure ストレージのバックアップを直接使うことができるようです。
# 2012 はリストアは一度ローカルに持ってくる必要があったかと。

AlwaysOn Replica in Azure

DR 用途として、AlwaysOn の待機系を非同期モードとして Azure に配置するというようなシナリオは 2012 でもあったかと思いますが、2014 では、レプリカを Azure 状に配置するための設定が GUI からできるようになったようです。

Virtual Network で VPN を設定しておく必要はあるかと思いますが。

Deploy Database to Windows Azure VM

2012 までは、DAC Fx を使用して SQL Database にデータベースを配置することができましたが 2014 では Azure の VM (IaaS) に対してデータベースを配置することができるように。

Azure ストレージにバックアップを取得し、それを VM に展開するという操作をウィザードベースで実施できるようです。

新規 VM として作成するのか、既存の VM にも展開できるのかまでは読み解けなかったのですが、相互に移動できるようになると面白そうですね。

 

1 時間少しでまとめただけでもこれだけの機能拡張が SQL Server 2014 では行われるようです。
検証内容盛りだくさんですね。
OS も新しいものが出てくるとなると時間がいくらあっても足りないですね~。

Share

Written by Masayuki.Ozawa

6月 20th, 2013 at 9:16 am

Posted in SQL Server

Tagged with ,

Leave a Reply