Upload
masayuki-ozawa
View
2.281
Download
0
Embed Size (px)
Citation preview
SQL Server 2016 CTP 3.0 新機能
2015/11/21
はじめに
2015/11/21SQL Server 2016 CTP 3.0 新機能2
2015/11/21 時点の DL 可能な最新バージョンであるSQL Server 2016 CTP 2.4 の情報を元に作成しています
RTM 時には変更されている可能性がありますので時期に応じた、最新の情報を参照してください
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
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
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
Database Engine Feature Enhancements
2015/11/21SQL Server 2016 CTP 3.0 新機能6
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
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
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)
従来のクラスター化列ストアインデックス
クラスター化列ストアインデックス + メモリ最適化テーブル
2015/11/21SQL Server 2016 CTP 3.0 新機能10
Columnstore Indexes- 列ストアインデックス + メモリ最適化テーブル -
列ストア 行ストア
ディスクベーステーブル
In-Memory OLTP
列ストア
100万行で列ストアに圧縮
メモリ最適化テーブル
ディスクベーステーブル
追加データ
追加データ
100万行で列ストアに圧縮
2015/11/21SQL Server 2016 CTP 3.0 新機能11
行ストア 列ストア メモリ最適化
クラスター化 非クラスター化 クラスター化 非クラスター化 ハッシュ 非クラスター化
行ストア
クラスター化 ○ ×○
2016 から×
非クラスター化○
2016 から○
2016 から×
列ストア
クラスター化 ×○
2016 から○
2016 から
非クラスター化○
2016 から○
2016 から× ×
メモリ最適化
ハッシュ
×○
2016 から×
非クラスター化
Columnstore Indexes- SQL Server 2016 のインデックスの組み合わせ -
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
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
2015/11/21SQL Server 2016 CTP 3.0 新機能14
SQL Server 2014 SQL Server 2016
In-Memory OLTP- ストレージ管理の変更 -
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)
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
2015/11/21SQL Server 2016 CTP 3.0 新機能17
実際の実行プラン
ライブクエリ統計
Live Query Statistics- 実行中のクエリのプラン表示 -
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
Query Store
2015/11/21SQL Server 2016 CTP 3.0 新機能19
SQL
コンパイル
実行
プランストア
実行統計
クエリーストアスキーマ
クエリーストアコンパイルメッセージ
実行メッセージ
非同期書き込み
2015/11/21SQL Server 2016 CTP 3.0 新機能20
Query Store- 同一クエリの実行プランの変化の確認 -
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
2015/11/21SQL Server 2016 CTP 3.0 新機能22
テーブルの構造 テーブルの操作
Temporal Tables- 基本的な構成 -
INSERT
UPDATE
DELETE
変更前のデータを履歴に追加
システム バージョン管理されたテーブル
SELECT * FROM Table
データの参照
履歴テーブル最新データを参照
システム バージョン管理されたテーブル
履歴テーブル
システム バージョン管理されたテーブル
SELECT * FROM Table FOR SYSTEMTIME
データの参照
履歴テーブル
透過的に特定タイミングのデータを参照
データの変更
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"
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
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
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 種類の取得方法 -
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
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
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
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 側では暗号化された文字列で検索(クエリキャッシュも暗号化された文字列でキャッシュ)
データは暗号化された文字列で検索(データキャッシュも暗号化された文字列でキャッシュ)
複合化された状態で見える 暗号化された状態で返却
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
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
スケールアウト構成への対応
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
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
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 にクエリを実行
Transact-SQL Enhancements
2015/11/21SQL Server 2016 CTP 3.0 新機能36
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
Security Enhancements
2015/11/21SQL Server 2016 CTP 3.0 新機能38
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
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
High Availability Enhancements
2015/11/21SQL Server 2016 CTP 3.0 新機能41
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/
Standard Edition で AlwaysOn 可用性グループ
2015/11/21SQL Server 2016 CTP 3.0 新機能43
2014 までは Enterprise Edition で利用可能
2016 からは Standard で基本的な可用性グループを利用可能だが制限がある
2 ノードで構成 (Enterprise Edition は 8 ノードで構成可能)
可用性グループに含められるデータベースは 1 つのみ
セカンダリで読み取り / バックアップ取得は使用不可
データベーススナップショットを使用することで読み取り可能
リスナーを作成できない
単一のアクセスポイントを使用した透過的な接続ができない
データベースミラーリングと近い利用方法となる
ミラーリングと異なり非同期モードでも利用可能
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(プライマリ)
可用性グループ
データベース
アプリケーション
リスナーを介して透過的にプライマリに接続
ロードバランシングされた読み取り専用レプリカ
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
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- ロードバランシングされた読み取り -
Advanced Analytics
2015/11/21SQL Server 2016 CTP 3.0 新機能47
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