Thanks to visit codestin.com
Credit goes to www.slideshare.net

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=fd3
7928b-3795-e411-b87f-00155d5066d7#fbid=JB4HmMrttaO
SQL Server 2016 の CTP が近々出るらしい!
5/26-27 開催の de:code で 2016 のセッションがある
2016 はよ!

Sql server sql database 最新機能紹介

Editor's Notes

  • #12 FCI:フェイルオーバークラスターインスタンス CSV:クラスターの共有ボリューム DMV:動的管理ビュー
  • #15 基数推定機能の再設計:クエリプランの品質向上 遅延持続性:コミットを返した後にログファイルに書き込み。通常は、ログファイルに書き込み完了してからを返す オンライン操作のロック優先順位管理:インデックスの再構築は、行の移動を行っているページを排他ロックする。これによってデッドロックが起こる可能性があった パーティションインデックスの再構築
  • #18 運用コストが低そうな感じ ハード/OS/SQL Server インスタンス/管理用データベース は Microsoft 側で管理 冗長化/バックアップの設定 も Microsoft 側で管理
  • #25 監査については、SQL Database 的には、余分なリソース(CPUとか)は使わない。   一般的なシナリオで 0.5mSec-6mSec 位の例テンシーの追加があるくらい。   この遅延が耐えれないなら、パフォーマンスレベルやサービス階層を上げる   http://azure.microsoft.com/en-us/documentation/articles/sql-database-auditing-get-started/   performance は comment のとこに記載。
  • #28 Change Data Capture(変更データキャプチャ) というのもあるが、こちらは未サポート こっちは、変更前のデータも保持する