26
SQL Server 2016 CTP 2 新機能 2015/7/6

Sql server 2016 ctp 2 新機能

Embed Size (px)

Citation preview

Page 1: Sql server 2016 ctp 2 新機能

SQL Server 2016 CTP 2 新機能

2015/7/6

Page 2: Sql server 2016 ctp 2 新機能

はじめに

2015/7/6SQL Server 2016 CTP 2 新機能2

2015/7/6 時点の最新バージョンであるSQL Server 2016 CTP 2.1 の情報を元に作成しています

RTM 時には変更されている可能性がありますので時期に応じた、最新の情報を参照してください

Page 3: Sql server 2016 ctp 2 新機能

SQL Server 2016 関連情報

2015/7/6SQL Server 2016 CTP 2 新機能3

ダウンロード

SQL Server 2016 Community Technology Preview 2.1

https://www.microsoft.com/en-us/evalcenter/evaluate-sql-server-2016

Download SQL Server Management Studio

https://msdn.microsoft.com/en-us/library/mt238290.aspx

技術情報

SQL Server 2016 Release Notes

https://msdn.microsoft.com/en-us/library/dn876712.aspx

SQL Server 2016

https://www.microsoft.com/en-us/server-cloud/products/sql-server-2016/default.aspx

Page 4: Sql server 2016 ctp 2 新機能

SQL Server 2016 関連情報

2015/7/6SQL Server 2016 CTP 2 新機能4

What’s New

What‘s New in Database Engine https://msdn.microsoft.com/en-us/library/bb510411.aspx

What's New in Analysis Services https://msdn.microsoft.com/en-us/library/bb522628.aspx

What's New in Integration Services https://msdn.microsoft.com/en-us/library/bb522534.aspx

What's New in Reporting Services https://msdn.microsoft.com/en-us/library/ms170438.aspx

What's New in Master Data Services https://msdn.microsoft.com/en-us/library/ff929136.aspx

What‘s New (Replication) https://msdn.microsoft.com/en-us/library/bb500342.aspx

ALTER DATABASE Compatibility Level (Transact-SQL) https://msdn.microsoft.com/ja-jp/library/bb510680(v=sql.130).aspx

R 言語の対応については CTP3 で実装予定 Using R in SQL Server 2016 CTP2

https://social.technet.microsoft.com/Forums/sharepoint/ja-JP/65107366-d02d-491f-8e6f-739530b8e563/using-r-in-sql-server-2016-ctp2?forum=sqldatabaseengine

本スライドのカバー範囲

Page 5: Sql server 2016 ctp 2 新機能

What‘s New in Database Engine

2015/7/6SQL Server 2016 CTP 2 新機能5

主要な変更点

Database Engine Feature Enhancements

Transact-SQL Enhancements

Security Enhancements

High Availability Enhancements

Tools Enhancements

.NET Framework 4.6

単体での SSMS の提供

Express で完全版の SSMS ではなく、SSMS のスタンドアロンインストーラーを提供

Download SQL Server Management Studio

https://msdn.microsoft.com/en-us/library/mt238290.aspx

Page 6: Sql server 2016 ctp 2 新機能

Database Engine Feature Enhancements

2015/7/6SQL Server 2016 CTP 2 新機能6

Page 7: Sql server 2016 ctp 2 新機能

Database Engine Feature Enhancements

2015/7/6SQL Server 2016 CTP 2 新機能7

Columnstore Indexes

In-Memory OLTP

Live Query Statistics

Query Store

Temporal Tables

Backup to Microsoft Azure

Managed Backup

Trace Flag 4199 クエリオプティマイザ関連のトレースフラグ / 互換性レベル 130 ではデフォルトで有効

https://support.microsoft.com/ja-jp/kb/974006

Multiple TempDB Database Files インストール時に CPU コア数に合わせて、最大で 8 データファイルを設定した状態でインストール

(/SQLTEMPDBFILECOUNT オプションの追加)

FOR JSON

Always Encrypted

PolyBase

Stretch Database

Page 8: Sql server 2016 ctp 2 新機能

Stretch Database

2015/7/6SQL Server 2016 CTP 2 新機能8

ローカルデータベースのテーブルに追加されたデータを SQL Database に自動的に移動 SQL Database は v12 を使用 / デフォルトでは S3 の DB が作成される

ローカルデータベースのテーブルの検索時には、透過的に SQL Database のテーブルをリモートクエリで検索される 利用者はどこにデータがあるかを意識しないでよい

機能を有効にしたテーブルに対してはいくつかの制限がある(以下は一例) プライマリーキー / 一意制約が設定できない UPDATE / DELETE ができない CREATE INDEX / ALTER INDEX ができない

事前に設定しておくことはできる

FILESTREM / File Table / CDC / メモリ最適化テーブルには適用できない 利用できるデータ型にも制限がある

timestamp / sql_variant / XML / 位置データ型等は非対応

Stretch Database https://msdn.microsoft.com/en-us/library/dn935011.aspx

Page 9: Sql server 2016 ctp 2 新機能

Temporal Tables

2015/7/6SQL Server 2016 CTP 2 新機能9

ANSI SQL:2011 規格であり、SQL Server 固有の機能ではない トランザクション時間 / データの有効期間を SysStartTime / SysEndTime とし

持つことで、自動的なデータアーカイブと変更履歴の追跡が可能 システムバージョン管理されたテーブル / 履歴テーブルの二つで構成され、

透過的に二つのテーブルを操作することができる システムバージョン管理されたテーブルには最新のデータが格納されている データを変更すると、変更前のデータが自動的に履歴テーブルに追加される

デフォルトでは履歴テーブルにページ圧縮が行われている

Truncate Table は実行することができない

CTP 2 の制限 In-Memory OLTP と組み合わせることはできない

Temporal Tables https://msdn.microsoft.com/en-us/library/dn935015.aspx

Page 10: Sql server 2016 ctp 2 新機能

Query Store

2015/7/6SQL Server 2016 CTP 2 新機能10

コンパイル時と実行時の情報をクエリー ストアに格納することで、実行されたタイミングのクエリの情報を確認することができる Plan Store : 実行プラン / Runtime Stats : 実行時間等の情報

同一クエリで実行プランが途中で変更された場合、各実行プランごとにクエリの実行状態を取得することが可能 プランキャッシュは最新の実行プランだが、クエリー ストアは実行されたタイミング

のプランを確認できる

特定の実行プランを強制することができる 類似の機能にプラン ガイドがあるが、クエリー ストアの方がシンプルな操作で適用

することが可能(クエリー ストアに使用したいプランの情報が取得されている必要があるが)

Monitoring Performance By Using the Query Storehttps://msdn.microsoft.com/en-us/library/dn817826.aspx

Page 11: Sql server 2016 ctp 2 新機能

Always Encrypted

2015/7/6SQL Server 2016 CTP 2 新機能11

常に暗号化した状態でデータを操作するための機能 クエリの実行端末に Column Master Key (CMK) を配置 SQL Server に CMK から生成された Column Encryption Key (CEK) を配置 暗号化する列は、DETERMINISTIC (検索項目として使用可) / RANDOMIZED (検索項目として

使用不可) の 2 種類を設定可能

クエリ実行時には通常のテキストで条件句を指定 実際に実行されるクエリは暗号化されたテキストで条件句が設定される

(指定したテキストが透過的に暗号化されてクエリが生成される)

プロファイラー等でクエリをキャプチャしても、条件句は暗号化された状態

クエリの実行端末の条件 .NET Framework 4.6 (4.6 で拡張された ADO.NET のライブラリを使用)

接続文字列に「Column Encryption Setting=enabled」を指定 暗号化された項目を検索条件とする場合は、SqlParameter オブジェクトを使用する

Always Encrypted (Database Engine)https://msdn.microsoft.com/en-us/library/mt163865.aspx

Page 12: Sql server 2016 ctp 2 新機能

Managed Backup

2015/7/6SQL Server 2016 CTP 2 新機能12

SQL Server 2014 で追加された管理対象バックアップの機能拡張

カスタムスケジュールのバックアップ設定が可能

managed_backup.sp_backup_config_schedule

2014 では、自動スケジュールされたバックアップのみ

システムデータベースのバックアップをサポート

単純復旧モデルのデータベースのサポート

SQL Server Managed Backup to Microsoft Azure

https://msdn.microsoft.com/en-us/library/dn449496.aspx

Page 13: Sql server 2016 ctp 2 新機能

Backup to Microsoft Azure

2015/7/6SQL Server 2016 CTP 2 新機能13

SQL Server 2012 SP1 CU2 で追加された、Azure ストレージにバックアップ取得機能の拡張

ブロック BLOB に対してバックアップを取得することが可能となった 以前のバージョンはページ BLOB に対してバックアップを取得

複数のファイルにストライプして取得できない

バックアップファイルの最大サイズが 1TB

ブロック BLOB に対して取得することで以下が可能 複数のファイルにストライプして取得できる (各ファイルの最大サイズは 200GB)

複数のファイルにストライプして取得することでバックアップ / リストア性能の向上

バックアップファイルの最大サイズが 12.8 TB

資格情報の指定方法が異なる ページ BLOB

ストレージアカウント / ストレージアカウントキー

ブロック BLOB ストレージアカウント / SAS トークン

Temporal Tableshttps://msdn.microsoft.com/en-us/library/dn935015.aspx

Page 14: Sql server 2016 ctp 2 新機能

Columnstore Indexes

2015/7/6SQL Server 2016 CTP 2 新機能14

シングルスレッドでのバッチモード処理 2014 まではマルチスレッドの場合のみバッチモードで処理が行われていた

互換性レベル 130 が必要 (互換性レベル 120/ 130によって使用できるパフォーマンス拡張の範囲に差がある)https://msdn.microsoft.com/ja-jp/library/bb510680(v=sql.130).aspx

READ_COMMITTED_SNAPSHOT / ALLOW_SNAPSHOT_ISOLATION のサポート 列ストアインデックスでロック競合を抑えた読み取り処理が可能

CREATE TABLE 時に列ストアインデックスを設定可能 (インラインインデックス作成) 2014 まではテーブル作成 → 列ストアインデックスを追加

非クラスター化列ストアインデックスに対して更新が可能

Columnstore Indexes for Operational Analytics https://msdn.microsoft.com/en-us/library/dn817827.aspx

Btree + クラスター化列ストアインデックスの組み合わせが可能

一意制約 / 外部キー制約も設定可能

列ストアインデックスとメモリ最適化テーブルを組み合わせて使用可能

変更等のデータはメモリ最適化テーブルに格納し、バックグラウンドタスクで列ストアインデックスに移行

フィルター化された非クラスター化列ストアインデックスを作成可能

Columnstore Indexes Versioned Feature Summaryhttps://msdn.microsoft.com/en-us/library/dn934994.aspx

Page 15: Sql server 2016 ctp 2 新機能

In-Memory OLTP 1/2

2015/7/6SQL Server 2016 CTP 2 新機能15

1DB の持続性のあるテーブルの合計サイズのサポートが 256 GB → 2TB に変更

コンテナー単位に 1 つのオフラインチェックポイントスレッドの生成 オフラインチェックポイントスレッドがネックになるスケールリミットの緩和

2 ソケット / 64 コア以上でも性能が発揮できる (SQL Server 2014 は 2 または 4 ソケットおよび 60 未満のコアのシステムを想定している)https://msdn.microsoft.com/ja-jp/library/dn170449(v=sql.120).aspx

ストレージ管理を FILESTERAM からの分離 2014 では、チェックポイントファイル (データファイル / デルタファイル) が FILESTREAMに基づいて

処理されていた

$HKv2 ディレクトリに永続化ファイルが作成される

メモリ最適化テーブルに対しての TDE のサポート

ALTER による変更のサポート メモリ最適化テーブル (オフラインオペレーションのため、対象テーブルに対してメモリが倍必要となる)

/ ネイティブコンパイルストアドプロシージャの定義変更が可能

Multiple Active Result Set (MARS) のサポート

ネイティブコンパイルストアドプロシージャ内でユーザー定義関数の呼び出しをサポート

Page 16: Sql server 2016 ctp 2 新機能

In-Memory OLTP 2/2

2015/7/6SQL Server 2016 CTP 2 新機能16

照合順序の制限の緩和 https://msdn.microsoft.com/en-us/library/dn133182.aspx

非 Unicode 文字列に 1252 (Latin) 以外の照合順序を指定可能

インデックスキーに BIN2 以外の照合順序を指定可能

T-SQL のサポート範囲の増加 (ネイティブコンパイルストアドプロシージャでの OUTER JOIN / UNION サポート等) SQL Server 2014 での制限は以下

インメモリ OLTP でサポートされていない Transact-SQL の構造https://msdn.microsoft.com/ja-jp/library/dn246937(v=sql.120).aspx

メモリ最適化テーブルで並列クエリのサポート (互換性レベル 130) Memory optimized table queries can have parallel plans.

https://msdn.microsoft.com/en-us/library/dn934994.aspx

In-Memory OLTPhttps://msdn.microsoft.com/en-us/library/bb510411.aspx#InMemory

In-Memory OLTP (In-Memory Optimization)https://msdn.microsoft.com/en-us/library/dn133186.aspx

In-Memory OLTP – The faster is now simpler!http://www.sqlshack.com/in-memory-oltp-the-faster-is-now-simpler/

Page 17: Sql server 2016 ctp 2 新機能

Live Query Statistics

2015/7/6SQL Server 2016 CTP 2 新機能17

実行中のクエリに対して、実行プランがどこまで完了したかを表示する機能 推定実行プラン : 実行前 / 実際の実行プラン : 実行後 とは違い実行中

クエリエディタと利用状況モニターから確認可能 SQL Server 2014 (SP1 で確認) / SQL Database v12 に対して使用可能

利用状況モニターでは、以下の条件を満たすことで他のセッションに対して使用可能 SET STATISTICS XML ON / SET STATISTICS PROFILE ON が実行されている

query_post_execution_showplan 拡張イベントを使用できる

列ストアインデックス / メモリ最適化テーブル / ネイティブコンパイルストアドプロシージャでは非サポート

Live Query Statisticshttps://msdn.microsoft.com/en-us/library/dn831878.aspx

Page 18: Sql server 2016 ctp 2 新機能

FOR JSON

2015/7/6SQL Server 2016 CTP 2 新機能18

JSON 型が提供されるというわけではない nvarchar 等に文字列データ型に JSON のデータを格納

SQL の実行結果を JSON として出力できる FOR JSON

実行結果が大きい場合には複数行として結果が返される

以下の機能 (JSON 関数) は CTP 3 で提供予定 OPEN JSON

ISJSON

JOSN_VALUE

Format Query Results as JSON with FOR JSON (SQL Server)https://msdn.microsoft.com/en-us/library/dn921882.aspx

Page 19: Sql server 2016 ctp 2 新機能

PolyBase

2015/7/6SQL Server 2016 CTP 2 新機能19

Microsoft Analytics Platform System (APS) の SQL Server Parallel Data Warehouse (PDW) の Polybase の機能を SQL Server で利用可能 https://www.microsoft.com/ja-jp/server-cloud/products/analytics-platform-system/Explore.aspx

CTP3 で大量データの効率的な処理のためスケールアウト対応が行われる予定

Hadoop / Azure BLOB ストレージに対して SQL によるデータ参照が可能 BLOB ストレージはテーブル非対応でストレージに対して格納されたファイルに対しての

クエリ実行

インストール時の注意点 JRE 7.51 以上をインストール CTP 2.0 / 2.1 時点の制約

照合順序は SQL_Latin1_General_CP1_CI_AS / Latin1_General_100_CI_AS_KS_WS を指定非サポートの照合順序ではサービスが起動しない

PolyBasehttps://msdn.microsoft.com/en-us/library/mt143171.aspx

Page 20: Sql server 2016 ctp 2 新機能

Transact-SQL Enhancements

2015/7/6SQL Server 2016 CTP 2 新機能20

Page 21: Sql server 2016 ctp 2 新機能

Transact-SQL Enhancements

2015/7/6SQL Server 2016 CTP 2 新機能21

インデックス項目の拡張 インデックスキーを 16 → 32 設定可能に

非クラスター化インデックスを 900 → 1,700 バイト設定可能

CREATE INDEX (Transact-SQL)https://msdn.microsoft.com/en-us/library/ms188783.aspx

パーティション単位で Truncate Table を実行可能 WITH (PARTITIONS (0))

TRUNCATE TABLE (Transact-SQL)https://msdn.microsoft.com/en-us/library/ms177570(v=sql.130).aspx

ALTER COLUMN のオンライン操作が可能 WITH (ONLINE=ON)

ALTER TABLE (Transact-SQL)https://msdn.microsoft.com/en-us/library/ms190273(v=sql.130).aspx

Page 22: Sql server 2016 ctp 2 新機能

Security Enhancements

2015/7/6SQL Server 2016 CTP 2 新機能22

SQL Database v12 でプレビュー搭載されている機能のオンプレミス版

Row-Level Security 透過的にフィルターを設定することで、特定条件にマッチするデータのみを取得可能にする

セキュリティ述語関数を通してフィルターする

WHERE 句を指定できない INSERT についてはフィルターできないため、単純な設定では自分が見ることができないデータを追加できてしまう INSERT のブロックは制約で実施

Row-Level Securityhttps://msdn.microsoft.com/en-us/library/dn765131.aspx

Dynamic Data Masking 特定の列のデータを取得時に透過的にマスクすることでセキュリティ向上させる

格納されているデータはマスクされていない状態

互換性レベル 130 が必要

UNMASK の権限を持っているユーザーについてはマスクされていない状態でデータを取得可能

SQL Database v12 ではポータルから設定していたが、SQL Server 2016 では T-SQL で設定

Dynamic Data Maskinghttps://msdn.microsoft.com/en-us/library/mt130841.aspx

Page 23: Sql server 2016 ctp 2 新機能

High Availability Enhancements

2015/7/6SQL Server 2016 CTP 2 新機能23

Page 24: Sql server 2016 ctp 2 新機能

High Availability Enhancements

2015/7/6SQL Server 2016 CTP 2 新機能24

AlwaysOn 可用性グループの機能拡張 Standard Edition で AlwaysOn 可用性グループの利用

ロードバランシングされた読み取り専用レプリカ

自動フェールオーバーノードを 2 → 3 に設定可能

分散トランザクションのサポートhttps://msdn.microsoft.com/en-us/library/ms366279.aspx#dtcsupport データベース ミラーリングまたは AlwaysOn 可用性グループではサポートされない複数

データベースにまたがるトランザクション (SQL Server)https://msdn.microsoft.com/ja-jp/library/ms366279.aspx

データベース レベルの正常性検出 データベースがオフラインになった状態を検知しフェールオーバーが可能に

AlwaysOn Failover Cluster で Gropu Managed Service Accounts (gMSA) をサポートhttps://support.microsoft.com/kb/2998082/

Page 25: Sql server 2016 ctp 2 新機能

Standard Edition で AlwaysOn 可用性グループ

2015/7/6SQL Server 2016 CTP 2 新機能25

2014 までは Enterprise Edition で利用可能

2016 からは Standard で基本的な可用性グループを 利用可能だが制限がある

2 ノードで構成 (Enterprise Edition は 8 ノードで構成可能)

可用性グループに含められるデータベースは 1 つのみ

セカンダリで読み取り / バックアップ取得は使用不可

データベーススナップショットを使用することで読み取り可能

リスナーを作成できない

単一のアクセスポイントを使用した透過的な接続ができない

データベースミラーリングと近い利用方法となる

ミラーリングと異なり非同期モードでも利用可能

Page 26: Sql server 2016 ctp 2 新機能

ロードバランシングされた読み取り専用レプリカ

2015/7/6SQL Server 2016 CTP 2 新機能26

2014 まではルールに応じた読み取りセカンダリへの接続

READ_ONLY_ROUTING_LIST = ('Server1','Server2', 'Server3', 'Server4')

Server 1 に接続できない場合は Server2、2 に接続できない場合は 3

2016 ではロードバランシングされたセカンダリへの接続が可能

READ_ONLY_ROUTING_LIST = (('Server1','Server2'), 'Server3', 'Server4')

Server1 または、Server2 に接続、接続できない場合は Server3

Configure load-balancing across read-only replicas

https://msdn.microsoft.com/en-us/library/hh710054.aspx#loadbalancing