Sql server sql database 最新機能紹介

Post on 15-Jul-2015

418 Views

Category:

Technology

6 Downloads

Preview:

Click to see full reader

Transcript

SQL Server/SQL Database最新機能紹介

SQLWorld★大阪#30

2015/04/25 SQLWorld お だ

自己紹介

織田 信亮(おだ しんすけ)

大阪で開発者しています

SQLWorld 代表 (http://sqlworld.org)

http://odashinsuke.hatenablog.com/

Twitter:@shinsukeoda

注意事項

現時点(2015/04/19) でのお話しです

最新の情報は公式Webでご確認下さい

注意事項

最近追加された機能を中心にしたスライドになってます

全体の話しは無しです(特に SQL Database)

今日話すこと

SQL Server 2014 の話し

SQL Database V12 の話し

今日話すこと

SQL Server 2014 の話し

SQL Database V12 の話し

まだリリースされてない SQL Server の話し!

SQL Server 2014 の話し

メモリ最適化テーブル

インメモリ OLTP

100倍速くしたい => Hekaton

SQL Server があれば OK!

メインメモリ最適化

T-SQL フルコンパイル

ロックフリーの高並列

列ストアインデックス

クラスタ化列ストアインデックス が追加された

更新可能

非クラスタ化列ストアインデックスは更新不可※

テーブルに1つのインデックスのみ

クラスタ化列ストアインデックスのみ

インデックス = データ

データサイズが少ない

Azure との連携

データファイルを Azure Storage (Blob) に配置

FileStream は NG

バックアップ/復元

Azure Storage へのバックアップとStorage から直接 復元

2012 CU2 から可能。2005 – 2012 CU1 は以下で可能

Microsoft SQL Server Backup to Microsoft Azure Tool

http://www.microsoft.com/ja-JP/download/details.aspx?id=40740

AlwaysOn の強化

AG(可用性グループ) のセカンダリレプリカ数が 4 -> 8

読取可能なセカンダリの強化

プライマリ/クラスタークォーラムが無くても読取出来る

FCI で CSV(クラスターの共有ボリューム)を共有ディスクで使える

DMV で取れる情報追加

バッファプール拡張

Standard から使えるようになりました!

バッファプールに SSD とかの速いディスクを使おう

メモリが足りない時に、速いディスクでカバー

たくさんメモリを積んでるサーバーは対象外

128GB より大きいサーバーはだめ~

サイズは、Max Server Memory の32倍まで

128GB * 32 = 4TB が Max

他社製品にも同じようなのあるよ

Oracle Database Smart Flash Cache

バッファプール拡張

ディスクからデータを読むのは一般に遅い

一度読んだデータはメモリ(バッファプール)にキャッシュ(保持)しておく

メモリが足りなくなったら、あまり使われなかったデータはキャッシュアウトされる(メモリから消される)

そこで、SSD 等の早いディスクを第二のキャッシュとして利用する!

ディスクに読み書きするのでディスクの性能には注意

色々と…

基数推定機能の再設計

遅延持続性

オンライン操作のロック優先順位管理

増分統計

リソースガバナーの物理IOサポート

SQL Server 2014 SP1

リリースしましたが…

SSISDB を使用していると SP1適用で インスタンスが無効で使用出来ない状態になる

http://blogs.msdn.com/b/jpsql/archive/2015/04/23/sql-server-2014-sp1.aspx

触れなかったのでスルー

SP1 は暫くしたら再度公開される予定です

SQL Database V12 の話し

SQL Database って何?

Microsoft Azure 上で提供されている クラウド上のRDB

利用者はデータベースの管理だけしたら良い

テーブル/ユーザー/ストアド/ファンクション とか

SQL Server ベースだが、ちょっと違うとこも…

DB Engine Only!(SSRS/SSIS/SSAS 等は無し)

進んでる点/遅れてる点 両方ある

ざっと全体を…

包含データベース

テーブルパーティショニング

2GBを超えるトランザクションのサポート

BLOB を含むインデックスのオンラインサポート

ALTER COLUMN の オンラインサポート

TRUNCATE TABLE の パーティションサポート

ALTER DATABASE のオプション追加

DBCC コマンドの追加

ざっと全体を…

Dynamic Data Masking

Row-Level Security

Window関数(OVER句)のサポート

.NET CLR の一部サポート

Change Tracking

XML インデックスのサポート

ヒープテーブルのサポート

アプリケーションロールのサポート

ざっと全体を…

列ストアインデックスのサポート

並列クエリーのサポート

透過的データの暗号化(TDE) のサポート予定

包含データベース (Contained Databased)

LOGIN を master に作る必要無し

DB の移動が容易

DB 移動したけど、LOGIN 作ってなかった!とかが無くなる

SQL Server では、2012 からある

パーティショニング

テーブル パーティションが出来るようになった!

TRUNCATE TABLE で PARTITON をサポート

一部のパーティションだけ TRUNCATE

SQL Server では未実装!

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

ALTER COLUMN のオンラインサポート

一部の処理がオンラインでサポートhttps://msdn.microsoft.com/en-us/library/ms190273.aspx

ポインタを差し替える感じ

http://sqlperformance.com/2015/02/sql-performance/more-online-operations

SQL Server では未実装!

Dynamic Data Masking

結果セットから、対象のテーブル + 列 or 特定のエイリアスに対し、データのマスキングをする

セキュリティ対応接続文字列でのみ有効

監査で使う接続文字列

<servername>.database.secure.windows.net

http://azure.microsoft.com/en-us/documentation/articles/sql-database-dynamic-data-masking-get-started/

SQL Server では未実装!

Row-Level Security

実行プランの最後にユーザー定義関数でフィルタリング

例:テーブルに権限用のカラムを持ち、ユーザー定義関数内で現在のユーザーと対象カラムでフィルタリングする感じ

インデックスは効く

ユーザー定義関数に渡すカラムも考慮すること

https://msdn.microsoft.com/library/7221fa4e-ca4a-4d5c-9f93-1b8a4af7b9e8.aspx

SQL Server では未実装!

Window 関数(OVER句)のサポート

分析関数が使えるようになった

LEAD/LAG/FIRST_VALUE/LAST_VALUE…

OVER (ROWS/RANGE) のサポート

N行目までの集計とかが出来るようになった

select 日付, 金額,sum(金額) over (order by 日付 row between 1 preceding and current row

) as 前日との計from 日次売上

Change Tracking (変更の追跡)

SQL Server では 2008 から

テーブル内の行が変更されたことを保持

変更前のデータは保持しない

UPDATE の場合は、どの列が更新されたかも保持

データは保持しないので、履歴管理というよりは差分更新向け(別DBとの sync とか)

データを持たないので必要なデータサイズは少なめ

ヒープテーブルのサポート

クラスター化インデックスの無いテーブルを利用可能

以前はヒープテーブルではデータの更新が出来なかった

SELECT … INTO によるテーブルの作成兼データの追加も利用可能に!

select * into CopyTable from Table_1

列ストアインデックスのサポート

2つの列ストアインデックスをサポート

NCCI(非クラスター化列ストアインデックス)

CCI(クラスター化列ストアインデックス)

利用出来るサービス階層(エディション) に制限

Premium でのみ利用可

並列クエリー

MAXDOP の指定が可能に

利用出来るサービス階層/パフォーマンスレベルに制限

Premium (P2) 以上でのみ

透過的データの暗号化 サポート予定

Coming soon

SQL Server では 2008 から

データファイル/ログファイルの暗号化

別サーバーでのアタッチ/復元には、証明書&秘密鍵のバックアップも必要

開発者は意識する必要無し

ページレベルで実行され、ディスクに書き込まれる前に暗号化/メモリに読み込まれるときに暗号化解除される

おまけ

Azure SQL Database Elastic Scale

クライアントライブラリ (.NET)

シャーディングによって、スケールアウト/イン を実現

シャードの管理/分割/マージ/クエリ発行/マルチシャードクエリ…

マルチシャードクエリの結果は、全シャードに同じクエリを投げた結果が UNION ALL された感じで取得出来る

まだリリースされていないSQL Server の話し!

SQL Server vNext

PASS Summit 2014 で機能が紹介された

https://www.youtube.com/watch?v=7Pum0vfYtSk&list=PLoGAcXKPcRvanix7u9eqg_qt1tp849rX3&index=2

メモリ最適化テーブル での NCCI

非クラスター化列ストアインデックスをメモリ最適化テーブルで利用可能に

STRETCH TABLE

QUERY STORE

STRETCH TABLE

https://www.youtube.com/watch?v=7Pum0vfYtSk&list=PLoGAcXKPcRvanix7u9eqg_qt1tp849rX3&index=2

http://ryuchan.hatenablog.com/entry/2015/01/19/014521

QUERY STORE

実行プランを保持する機能

実行プランが変わっても、以前の実行プランを保持

再起動OK

現在と以前の実行プランを DMV から取れる

http://www.brentozar.com/archive/2014/11/sql-server-query-store/

http://slavasql.blogspot.jp/2014/11/newest-sql-server-feature-query-store.html

http://slavasql.blogspot.jp/2014/11/newest-sql-server-feature-query-store.html

まとめ

Ignite で SQL Server vNext のセッションがある!

Microsoft SharePoint Server 2016 with SQL Server vNext: Better Together

http://ignite.microsoft.com/session/sessionmoreinfo/?topicid=fd37928b-3795-e411-b87f-00155d5066d7#fbid=JB4HmMrttaO

SQL Server 2016 の CTP が近々出るらしい!

5/26-27 開催の de:code で 2016 のセッションがある

2016 はよ!

top related