48
SQL Server 2016 CTP 3.0 新機能 2015/11/21

Sql server 2016 ctp 3.0 新機能

Embed Size (px)

Citation preview

Page 1: Sql server 2016 ctp 3.0 新機能

SQL Server 2016 CTP 3.0 新機能

2015/11/21

Page 2: Sql server 2016 ctp 3.0 新機能

はじめに

2015/11/21SQL Server 2016 CTP 3.0 新機能2

2015/11/21 時点の DL 可能な最新バージョンであるSQL Server 2016 CTP 2.4 の情報を元に作成しています

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

Page 3: Sql server 2016 ctp 3.0 新機能

SQL Server 2016 関連情報

2015/11/21SQL Server 2016 CTP 3.0 新機能3

ダウンロード SQL Server 2016 Community Technology Preview 3.0.

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

SQL Server 2016 CTP Technical Deep Dive

http://www.slideshare.net/idigdata/sql-server-2016-ctp-technical-deep-dive

SQL Server 2016 CTP New Features - 9 June 2015 08:01 http://smooth1.co.uk/sqlserver2016/2016_CTP.html

SQL Server 2016 Community Technology Preview 3.0 is available http://blogs.technet.com/b/dataplatforminsider/archive/2015/10/28/sql-server-2016-community-technology-preview-3-0-is-available.aspx

デモスクリプト https://github.com/MasayukiOzawa/SQLServer2016DemoScript

Page 4: Sql server 2016 ctp 3.0 新機能

SQL Server 2016 関連情報

2015/11/21SQL Server 2016 CTP 3.0 新機能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.0 で実装 What‘s New in SQL Server R Services

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

CTP 2.4 http://blogs.technet.com/b/dataplatforminsider/archive/2015/09/30/sql-server-2016-community-technology-preview-2-4-is-

available.aspx

本スライドのカバー範囲

CTP 3.0

Page 5: Sql server 2016 ctp 3.0 新機能

What‘s New in Database Engine

2015/11/21SQL Server 2016 CTP 3.0 新機能5

主要な変更点

Database Engine Feature Enhancements

Transact-SQL Enhancements

Security Enhancements

High Availability Enhancements

Advanced Analytics

Tools Enhancements .NET Framework 4.6 (Database Engineでは、3.5 SP1 も必要となる)

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

Download SQL Server Management Studiohttps://msdn.microsoft.com/en-us/library/mt238290.aspx

SSMS に SQL Database を Azure AD で認証するための以下の方式が追加 Active Directory パスワード認証

Active Directory Integrated Authentication

x86 サーバーの廃止 サーバーコンポーネントの x86 サポートが廃止

現時点では、Express Edition についても x64 のみとなっているhttps://msdn.microsoft.com/en-us/library/ms143506.aspx

Page 6: Sql server 2016 ctp 3.0 新機能

Database Engine Feature Enhancements

2015/11/21SQL Server 2016 CTP 3.0 新機能6

Page 7: Sql server 2016 ctp 3.0 新機能

Database Engine Feature Enhancements

2015/11/21SQL Server 2016 CTP 3.0 新機能7

Columnstore Indexes

In-Memory OLTP

Live Query Statistics

Query Store

Temporal Tables

Backup to Microsoft Azure

Managed Backup

Trace Flag 4199

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

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

FOR JSON

Always Encrypted

PolyBase

Stretch Database

Page 8: Sql server 2016 ctp 3.0 新機能

Columnstore Indexes

2015/11/21SQL Server 2016 CTP 3.0 新機能8

シングルスレッドでのバッチモード処理

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 + クラスター化列ストアインデックスの組み合わせが可能一意制約 / 外部キー制約も設定可能

リアルタイムなデータ検索を目指し、列ストアインデックスとメモリ最適化テーブルを組み合わせて使用可能 変更等のデータはメモリ最適化テーブルに格納し、バックグラウンドタスクで列ストアインデックスに移行

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

列ストア + 行ストアまたは、メモリ最適化テーブル の 2 種類のデータを保持する

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

Page 9: Sql server 2016 ctp 3.0 新機能

Columnstore Indexes-シングルスレッドでのバッチモード処理 -

2015/11/21SQL Server 2016 CTP 3.0 新機能9

SELECT O_CUSTKEY,COUNT(*) FROM ORDERS_CI GROUP BY O_CUSTKEY OPTION (MAXDOP 1)

SQL Server 2014 まで

SQL Server 2016 から (互換性レベル 130)

Page 10: Sql server 2016 ctp 3.0 新機能

従来のクラスター化列ストアインデックス

クラスター化列ストアインデックス + メモリ最適化テーブル

2015/11/21SQL Server 2016 CTP 3.0 新機能10

Columnstore Indexes- 列ストアインデックス + メモリ最適化テーブル -

列ストア 行ストア

ディスクベーステーブル

In-Memory OLTP

列ストア

100万行で列ストアに圧縮

メモリ最適化テーブル

ディスクベーステーブル

追加データ

追加データ

100万行で列ストアに圧縮

Page 11: Sql server 2016 ctp 3.0 新機能

2015/11/21SQL Server 2016 CTP 3.0 新機能11

行ストア 列ストア メモリ最適化

クラスター化 非クラスター化 クラスター化 非クラスター化 ハッシュ 非クラスター化

行ストア

クラスター化 ○ ×○

2016 から×

非クラスター化○

2016 から○

2016 から×

列ストア

クラスター化 ×○

2016 から○

2016 から

非クラスター化○

2016 から○

2016 から× ×

メモリ最適化

ハッシュ

×○

2016 から×

非クラスター化

Columnstore Indexes- SQL Server 2016 のインデックスの組み合わせ -

Page 12: Sql server 2016 ctp 3.0 新機能

In-Memory OLTP 1/2

2015/11/21SQL Server 2016 CTP 3.0 新機能12

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) のサポート

ネイティブコンパイルストアドプロシージャ内でユーザー定義関数(スカラー値関数)の呼び出しをサポート (WITH NATIVE_COMPILATION を指定した関数を作成) CREATE FUNCTION (Transact-SQL)

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

Page 13: Sql server 2016 ctp 3.0 新機能

In-Memory OLTP 2/2

2015/11/21SQL Server 2016 CTP 3.0 新機能13

照合順序の制限の緩和 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

DML トリガーのサポート

FOR / AFTER トリガーのサポート

ネイティブコンパイルモジュールとして作成 / 結果を返すクエリはサポートされない

FOREIEIGN KEY / CHECK / UNIQUE 制約のサポート

参照整合性制約は参照テーブルの主キーに対して設定 / メモリ最適化テーブル間のみ可能 / CASCADE の指定はできない

メモリ最適化テーブルで並列クエリのサポート (互換性レベル 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/

CTP 3.0

CTP 3.0

Page 14: Sql server 2016 ctp 3.0 新機能

2015/11/21SQL Server 2016 CTP 3.0 新機能14

SQL Server 2014 SQL Server 2016

In-Memory OLTP- ストレージ管理の変更 -

Page 15: Sql server 2016 ctp 3.0 新機能

In-Memory OLTP- 並列クエリのサポート -

2015/11/21SQL Server 2016 CTP 3.0 新機能15

SELECT O_CUSTKEY,COUNT(*) FROM ORDERS GROUP BY O_CUSTKEY ORDER BY O_CUSTKEY DESC

SQL Server 2014

SQL Server 2016 (互換性レベル 130)

Page 16: Sql server 2016 ctp 3.0 新機能

Live Query Statistics

2015/11/21SQL Server 2016 CTP 3.0 新機能16

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

クエリエディタと利用状況モニターから確認可能 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 17: Sql server 2016 ctp 3.0 新機能

2015/11/21SQL Server 2016 CTP 3.0 新機能17

実際の実行プラン

ライブクエリ統計

Live Query Statistics- 実行中のクエリのプラン表示 -

Page 18: Sql server 2016 ctp 3.0 新機能

Query Store

2015/11/21SQL Server 2016 CTP 3.0 新機能18

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

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

ランを確認できる

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

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

インメモリ OLTP への対応 ネイティブコンパイルモジュールのクエリ情報も取得される

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

CTP 3.0

Page 19: Sql server 2016 ctp 3.0 新機能

Query Store

2015/11/21SQL Server 2016 CTP 3.0 新機能19

SQL

コンパイル

実行

プランストア

実行統計

クエリーストアスキーマ

クエリーストアコンパイルメッセージ

実行メッセージ

非同期書き込み

Page 20: Sql server 2016 ctp 3.0 新機能

2015/11/21SQL Server 2016 CTP 3.0 新機能20

Query Store- 同一クエリの実行プランの変化の確認 -

Page 21: Sql server 2016 ctp 3.0 新機能

Temporal Tables

2015/11/21SQL Server 2016 CTP 3.0 新機能21

ANSI SQL:2011 規格であり、SQL Server 固有の機能ではない

トランザクション時間 / データの有効期間を SysStartTime / SysEndTime とし持つことで、自動的なデータアーカイブと変更履歴の追跡が可能 特定の期間のデータや、全期間のデータを確認可能

CTP3 で期間の指定方法が拡張されている

HIDDEN を設定することで、SysStartTime/SysEndTimeを非表示項目に設定可能

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

データを変更すると、変更前のデータが自動的に履歴テーブルに追加される

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

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

In-Memory OLTP と組み合わせることが可能 SCHEMA_AND_DATA のみ可能

ALTER TABLE のサポート

Temporal Tables

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

System-Versioned Temporal Tables with Memory-Optimized Tables

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

CTP 3.0

CTP 3.0

CTP 3.0

Page 22: Sql server 2016 ctp 3.0 新機能

2015/11/21SQL Server 2016 CTP 3.0 新機能22

テーブルの構造 テーブルの操作

Temporal Tables- 基本的な構成 -

INSERT

UPDATE

DELETE

変更前のデータを履歴に追加

システム バージョン管理されたテーブル

SELECT * FROM Table

データの参照

履歴テーブル最新データを参照

システム バージョン管理されたテーブル

履歴テーブル

システム バージョン管理されたテーブル

SELECT * FROM Table FOR SYSTEMTIME

データの参照

履歴テーブル

透過的に特定タイミングのデータを参照

データの変更

Page 23: Sql server 2016 ctp 3.0 新機能

Multiple TempDB Database Files

2015/11/21SQL Server 2016 CTP 3.0 新機能23

インストール時に TempDB のデータファイルを最適化

データファイル数 : 8 または CPU コアの小さい方 を初期値として設定 (8 または CPU コアの大きい方が最大数)

GUI / 構成ファイルが複数 tempdb に対応

; データベース エンジンの TempDB ファイルの数。

SQLTEMPDBFILECOUNT="2"

; データベース エンジン TempDB データ ファイルの初期サイズを MB 単位で指定します。

SQLTEMPDBFILESIZE="8"

; 各データベース エンジン TempDB データ ファイルの自動拡張増分値を MB 単位で指定します。

SQLTEMPDBFILEGROWTH="64"

; データベース エンジン TempDB ログ ファイルの初期サイズを MB 単位で指定します。

SQLTEMPDBLOGFILESIZE="8"

; 各データベース エンジン TempDB ログ ファイルの自動拡張増分値を MB 単位で指定します。

SQLTEMPDBLOGFILEGROWTH="64"

Page 24: Sql server 2016 ctp 3.0 新機能

Instant File Initialization setting for engine setup

2015/11/21SQL Server 2016 CTP 3.0 新機能24

インストール時に瞬時初期化の有効化が可能に。

http://blogs.technet.com/b/dataplatforminsider/archive/2015/10/28/sql-server-2016-community-technology-preview-3-0-is-available.aspx

SQLSVCINSTANTFILEINIT = TRUE オプションが追加

https://msdn.microsoft.com/en-us/library/ms144259(v=sql.130).aspx

CTP 3.0

Page 25: Sql server 2016 ctp 3.0 新機能

Backup to Microsoft Azure

2015/11/21SQL Server 2016 CTP 3.0 新機能25

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

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

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

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

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

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

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

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

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

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

SQL Server Backup to URLhttps://msdn.microsoft.com/en-US/library/dn435916.aspx

Page 26: Sql server 2016 ctp 3.0 新機能

2015/11/21SQL Server 2016 CTP 3.0 新機能26

ページ BLOB にバックアップCREATE CREDENTIAL [<資格情報名>]

WITH IDENTITY = '<ストレージアカウント名>',

SECRET = '<ストレージアカウント アクセスキー>'

GO

BACKUP DATABASE <データベース名>

TO URL = 'https://<ストレージアカウント名>.blob.core.windows.net/<コンテナー名>/<バックアップ名>'

WITH CREDENTIAL = '<資格情報名>' ,COMPRESSION, STATS = 5

ブロック BLOB にバックアップCREATE CREDENTIAL [https://<ストレージアカウント名>.blob.core.windows.net/<コンテナー名>]

WITH IDENTITY='SHARED ACCESS SIGNATURE', -- IDENTITY は固定

SECRET = '<sv= ~の SAS トークン>'

BACKUP DATABASE TEST

TO URL = 'https://<ストレージアカウント名>.blob.core.windows.net/<コンテナー名>/test_01_blockblob.bak',

URL = 'https://<ストレージアカウント名>.blob.core.windows.net/<コンテナー名>/test_02_blockblob.bak'

WITH COMPRESSION, STATS = 5

Backup to Microsoft Azure- 2 種類の取得方法 -

Page 27: Sql server 2016 ctp 3.0 新機能

Managed Backup

2015/11/21SQL Server 2016 CTP 3.0 新機能27

保有期間の設定 (1~30日) に応じて、Azure 上に自動的に完全/ログバックアップを取得する機能https://msdn.microsoft.com/ja-jp/library/dn449496(v=sql.120).aspx#Concepts

Microsoft Azure への SQL Server マネージバックアップ

SQL Server 2014 で追加された管理対象バックアップの機能拡張 カスタムスケジュールのバックアップ設定が可能

2014 はデータの更新状況や前回バックアップからの経過時間に応じた自動バックアップのみサポート

managed_backup.sp_backup_config_schedule で設定

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

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

CTP 2 では SSMS の GUI ベースでの設定ができないため T-SQL / PowerShell で設定

SQL Server Managed Backup to Microsoft Azurehttps://msdn.microsoft.com/en-us/library/dn449496.aspx

Page 28: Sql server 2016 ctp 3.0 新機能

Trace Flag 4199

2015/11/21SQL Server 2016 CTP 3.0 新機能28

クエリオプティマイザ関連のトレースフラグ 今まで明示的に有効する必要のあった各種トレーフラグが、互換性レベル 130 では、デ

フォルトで有効の状態となっている。https://support.microsoft.com/ja-jp/kb/974006

4101~4111 / 4115~4117 / 4119~4122 / 4124~4129 / 4131 / 4133 / 4135

Page 29: Sql server 2016 ctp 3.0 新機能

Always Encrypted

2015/11/21SQL Server 2016 CTP 3.0 新機能29

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

の 2 種類を設定可能

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

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

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

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

HSM を使用する場合には、.NET Framework 4.6.1 を使用する

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

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

Page 30: Sql server 2016 ctp 3.0 新機能

2015/11/21SQL Server 2016 CTP 3.0 新機能30

Always Encrypted- 常に暗号化した状態でのデータ操作 -

アプリケーション

Column Master Key (CMK)

EnhancedADO.NET Library

SQL Server

Column Encryption Setting=enabled

Column Encryption Key (CEK)

@Param = 'ABCDEFG'

SELECT * FROM Table

WHERE Col2 = @Param

アプリケーションからは通常の文字列で検索

@Param = 1x7fg68

SELECT * FROM Table

WHERE Col1 = @Param

Col1 Col2 Col3

1 1x7fg68 JPN

2 0x7ff65e JPN

3 0y8fj75e USA

Col1 Col2 Col3

1 1x7fg68 JPN

Col1 Col2 Col3

1 ABCEDFG JPN

SQL Server 側では暗号化された文字列で検索(クエリキャッシュも暗号化された文字列でキャッシュ)

データは暗号化された文字列で検索(データキャッシュも暗号化された文字列でキャッシュ)

複合化された状態で見える 暗号化された状態で返却

Page 31: Sql server 2016 ctp 3.0 新機能

FOR JSON

2015/11/21SQL Server 2016 CTP 3.0 新機能31

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

Query JSON Data with Built-in Functions (SQL Server)https://msdn.microsoft.com/en-us/library/dn921890.aspx

CTP 3.0

Page 32: Sql server 2016 ctp 3.0 新機能

PolyBase

2015/11/21SQL Server 2016 CTP 3.0 新機能32

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

大量データの効率的な処理のためスケールアウト対応

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

CTAS (CREATE TABLE AS SELECT) による外部データソースへのエクスポートサポート INSERT (Transact-SQL)

https://msdn.microsoft.com/en-us/library/ms174335(v=sql.130).aspx

インストール時の注意点 JRE 7.51 以上をインストール

照合順序は SQL_Latin1_General_CP1_CI_AS / Latin1_General_100_CI_AS_KS_WS 以外でも動作可能 In SQL16 CTP2.4, the PolyBase feature will support all SQL Server collations.

https://msdn.microsoft.com/en-US/library/bb510411.aspx#bkPolyBase

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

CTP 3.0

CTP 3.0

CTP 3.0

Page 33: Sql server 2016 ctp 3.0 新機能

スケールアウト構成への対応

2015/11/21SQL Server 2016 CTP 3.0 新機能33

PolyBase groups for scale-out computation

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

CTP 3.0

Page 34: Sql server 2016 ctp 3.0 新機能

Stretch Database

2015/11/21SQL Server 2016 CTP 3.0 新機能34

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

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

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

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

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

AlwaysOn / Always Encrypted のサポート

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

CTP 3.0

CTP 3.0

Page 35: Sql server 2016 ctp 3.0 新機能

2015/11/21SQL Server 2016 CTP 3.0 新機能35

Stretch Database- SQL Database へ自動的なデータのアーカイブ -

SQL Server SQL Databaseデータの追加

バックグラウンドでSQL Database にデータを移動

最初のデータはSQL Server に格納

SQL Server SQL Databaseデータの参照

リモートクエリで透過的にSQL Database を検索

SQL Server にクエリを実行

Page 36: Sql server 2016 ctp 3.0 新機能

Transact-SQL Enhancements

2015/11/21SQL Server 2016 CTP 3.0 新機能36

Page 37: Sql server 2016 ctp 3.0 新機能

Transact-SQL Enhancements

2015/11/21SQL Server 2016 CTP 3.0 新機能37

インデックス項目の拡張 インデックスキーを 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

DROP IF によるオブジェクト存在時の削除 DROP TABLE IF EXISTS hogehoge

DBCC の MAXDOP オプションの追加 DBCC CHECKDB WITH MAXDOP = 1

CHECKTABLE / CHECKDB / CHECKFILEGROUP で利用可能

CTP 3.0

CTP 3.0

Page 38: Sql server 2016 ctp 3.0 新機能

Security Enhancements

2015/11/21SQL Server 2016 CTP 3.0 新機能38

Page 39: Sql server 2016 ctp 3.0 新機能

Security Enhancements

2015/11/21SQL Server 2016 CTP 3.0 新機能39

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

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

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

INSERT / UPDATE / DELETE については、ブロック述語を使用して制限をする

ADD BLOCK PREDICATE AFTER INSERT / UPDATE : ルールに一致しないデータを「作り出すこと」を制限

ADD BLOCK PREDICATE BEFORE UPDATE /DELETE : ルールに一致しないデータを「操作すること」を制限 BEFORE は FILTER 側で制限することもできるが、参照は許可するが変更/削除は許可しないというルールを作れる

権限による制御よる制御はテーブル単位の制御だが、ブロック述語は関数ベースのため、細かな調整が可能

スキーマバインドしないセキュリティポリシーの作成

SCHEMABINDING=OFF でポリシーを設定可能

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

CTP 3.0

CTP 3.0

Page 40: Sql server 2016 ctp 3.0 新機能

2015/11/21SQL Server 2016 CTP 3.0 新機能40

行レベルセキュリティ

動的データマスク

Security Enhancements- 行レベルセキュリティ / 動的データマスク -

Col1 Col2 Col3

1 10000 UserA

2 20000 UserA

3 30000 UserB

UserA

Col1 Col2 Col3

1 10000 UserA

2 20000 UserA

SELECT * FROM Table

フィルター

Col1 Col2 Col3

1 10000 UserA

2 20000 UserA

3 30000 UserB

UserA

Col1 Col2 Col3

1 xxxxx UserA

2 xxxxx UserA

3 xxxxx UserB

新しい列の設定

SELECT * FROM Table

Page 41: Sql server 2016 ctp 3.0 新機能

High Availability Enhancements

2015/11/21SQL Server 2016 CTP 3.0 新機能41

Page 42: Sql server 2016 ctp 3.0 新機能

High Availability Enhancements

2015/11/21SQL Server 2016 CTP 3.0 新機能42

AlwaysOn 可用性グループの機能拡張 Standard Edition で AlwaysOn 可用性グループの利用 ロードバランシングされた読み取り専用レプリカ 自動フェールオーバーノードを 2 → 3 に設定可能 分散トランザクションのサポート

https://msdn.microsoft.com/en-us/library/ms366279.aspx#dtcsupport Windows Server 2016 Technical Preview 2 で動作している必要がある データベース ミラーリングまたは AlwaysOn 可用性グループではサポートされない複数デー

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

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

Windows Server 2016 のワークグループクラスター上で AlwaysOn 可用性グループを実行可能

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

Page 43: Sql server 2016 ctp 3.0 新機能

Standard Edition で AlwaysOn 可用性グループ

2015/11/21SQL Server 2016 CTP 3.0 新機能43

2014 までは Enterprise Edition で利用可能

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

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

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

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

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

リスナーを作成できない

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

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

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

Page 44: Sql server 2016 ctp 3.0 新機能

2015/11/21SQL Server 2016 CTP 3.0 新機能44

Enterprise AlwaysOn

Standard AlwaysOn (基本的な可用性グループ)

High Availability Enhancements

- Standard AlwaysOn -

リスナー

SQL Server(セカンダリ)

可用性グループ

データベース

データベース

SQL Server(プライマリ)

可用性グループ

データベース

データベース

アプリケーション

リスナーが作成できないためデータベースミラーリングの接続文字列を利用

DataSource=ServerA;Failover Partner=ServerB

SQL Server(セカンダリ)

可用性グループ

データベース

SQL Server(プライマリ)

可用性グループ

データベース

アプリケーション

リスナーを介して透過的にプライマリに接続

Page 45: Sql server 2016 ctp 3.0 新機能

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

2015/11/21SQL Server 2016 CTP 3.0 新機能45

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

Page 46: Sql server 2016 ctp 3.0 新機能

2015/11/21SQL Server 2016 CTP 3.0 新機能46

2014 までALTER AVAILABILITY GROUP [AlwaysOnAG]

MODIFY REPLICA ON N'SQL-2016-01'

WITH ( PRIMARY_ROLE(READ_ONLY_ROUTING_LIST=(N'SQL-2016-02',N'SQL-2016-03',N'SQL-2016-04') ))

2016 のロードバランシングされた読み取り専用レプリカALTER AVAILABILITY GROUP [AlwaysOnAG]

MODIFY REPLICA ON N'SQL-2016-02'

WITH ( PRIMARY_ROLE(READ_ONLY_ROUTING_LIST=((N'SQL-2016-01',N'SQL-2016-03'),N'SQL-2016-04') ))

High Availability Enhancements- ロードバランシングされた読み取り -

Page 47: Sql server 2016 ctp 3.0 新機能

Advanced Analytics

2015/11/21SQL Server 2016 CTP 3.0 新機能47

Page 48: Sql server 2016 ctp 3.0 新機能

Revolution R の SQL Server への統合

2015/11/21SQL Server 2016 CTP 3.0 新機能48

Revolution R を SQL Server に統合することで R 言語をサポート Advanced Analytics Extensions の機能をインストール

SQL Server Launchpad サービスが追加され、Revolution R と連携される

Revolution R Open 3.2.2 for Revolution R Enterprise 7.5.0 をインストール Revolution R Enterprise 7.5. をインストール Installing SQL Server R Services

https://msdn.microsoft.com/en-US/library/mt604883.aspx

sp_execute_external_script による R スクリプトの実行 sp_execute_external_script (Transact-SQL)

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

SQL Server R Serviceshttps://msdn.microsoft.com/en-us/library/mt604845.aspx

SQL Server R Services Tutorials https://msdn.microsoft.com/en-us/library/mt591993.aspx

CTP 3.0