SE の雑記

SQL Server の情報をメインに Microsoft 製品の勉強内容を日々投稿

Archive for the ‘SQL Server 2016’ tag

SQL Server 2016 SP1 で変わる Edition 間の機能差

leave a comment

先日の Connect(); 2016 で SQL Server 2016 SP1 が発表されました。

アナウンス

機能紹介

ブログ
Tiger Team

SQL Server Database Engine

SQL Server Reporting Services Team

 
 
これにより SQL Server の Edition 間の機能差が大きく変わりましたので一度まとめてみたいと思います。
今まで、Enterprise Edition のみの機能を使用しているかを確認する際に、sys.dm_db_persisted_sku_features を使用することがありましたが、今回の SP1 の変更により、以降は、この DMV からではなく、SQL Server 2016 SP1: Things you should know の方法を使用する必要があるようです。
Read the rest of this entry »

Written by Masayuki.Ozawa

11月 20th, 2016 at 1:04 pm

Posted in SQL Server

Tagged with

SQL Server 2016 における TF1117 と TF1118

leave a comment

SQL Server 2016 では、tempdb に関しては TF1117 / 1118 がで有効になっており、ユーザーデータベースに関しては、データベースレベルの構成で設定ができるようになりました。

これについては、SQL Server 2016: Changes in default behavior for autogrow and allocations for tempdb and user databases でも紹介されています。

Read the rest of this entry »

Written by Masayuki.Ozawa

9月 24th, 2016 at 7:51 pm

Posted in SQL Server

Tagged with ,

SQL Server 2016 の可用性グループの分散トランザクション (データベースをまたがるトランザクション) について

leave a comment

以前から調べていたのですが、まとめられていなかったので。
詳細については SQL Server 2016 DTC Support In Availability Groups が公開されている情報で、一番まとまっているかと思います。

High Availability Enhancements / Enhanced Always On Availability Groups in SQL Server 2016 に記載されていますが SQL Server 2016 の AlwaysOn 可用性グループでは分散トランザクションがサポートされるようになっています。

Always On Availability Groups supports distributed transactions and the DTC on Windows Server 2016. For more information, see Support for distributed transactions.

以前からの分散トランザクションの制約ついては、
データベースミラーリングをクロスデータベース トランザクション または分散トランザクションと併用する場合の問題 データベースミラーリング (DBM) 利用時のアプリケーション設計・実装の注意点
を確認しておくと良いかと思います。
SQL Server 2016 の実装については、上記の実装を踏襲しつつ、インダウトなトランザクションの解決方法が変わっているという形になるかと思いますので。
# 従来までの一律ロールバックが、トランザクションの状態を確認して、整合性を保つようになっているのかと思いますが、実動作レベルでそこまで確認ができていません。

Read the rest of this entry »

Written by Masayuki.Ozawa

7月 26th, 2016 at 12:23 am

Posted in SQL Server

Tagged with ,

Temporal Table の履歴データの保存期間の管理

leave a comment

SQL Server 2016 で追加された Temporal テーブルですが、Features Supported by the Editions of SQL Server 2016 に記載されているとおり、すべてのエディションで使用することができます。

ただし、履歴側のデータの保有期間を定めたい場合は、システム バージョン管理されたテンポラル テーブルの履歴データの保有期間管理 に書かれているような履歴テーブルのデータ削除を実装する必要がありますので、注意点を軽くまとめてみたいと思います。

現状、保存期間を定める方法はないため、基本的にはデータ削除をする仕組みを考える必要があります。

Read the rest of this entry »

Written by Masayuki.Ozawa

7月 18th, 2016 at 12:41 am

Posted in SQL Server

Tagged with ,

db tech showcase Tokyo 2016 の資料を公開しました

leave a comment

先日 SQL Server 2016 Always On 可用性グループ New Features というセッションを担当させていただきました。

後日、イベントのスライドを集約したサイトからも入手できると思いますが、私のお話しさせていただいたセッションについては http://www.slideshare.net/masayukiozawa/sql-server-2016-always-on-new-features で資料を公開しています。

SQL Server 2016 の AlwaysOn 可用性グループを使用する際の一助になれば幸いです。

Written by Masayuki.Ozawa

7月 17th, 2016 at 12:21 am

インターネットに接続されていない、インストール直後の Windows 7 SP1 x64 に最新の SSMS をインストールする方法

leave a comment

タイトルの通りですが、インターネットに接続されていない、インストール直後の Windows 7 SP1 x64 に対して、SQL Server 2016 対応された最新の SSMS をインストールしようとした場合、少し癖がありましたので情報を。
Windows Update かけて最新化している場合は、発生しない気がしますが、素の Windows 7 SP1 だと発生するかと思います。
Read the rest of this entry »

Written by Masayuki.Ozawa

7月 13th, 2016 at 8:18 am

Posted in SQL Server

Tagged with

SQL Server の新しいサンプルデータベースである WideWorldImporters で使用されている SQL Server の機能を確認してみる

leave a comment

WideWorldImporters: The new SQL Server sample database で、アナウンスがありましたが、SQL Server の新しいサンプルデータベースとして、WideWorldImporters というデータベースが提供されています。

従来までは、AdventureWorks がサンプルデータベースとして利用されていましたが、今後はこちらをサンプルとして使用する機会が増えるのでしょうかね。

Wide World Importers Documentation

Read the rest of this entry »

Written by Masayuki.Ozawa

7月 4th, 2016 at 11:54 am

Posted in SQL Server

Tagged with ,

SQL Server 2016 の AlwaysOn 可用性グループの Redo スレッドの並列化について軽く調べてみる

leave a comment

SQL Server 2016 の AlwaysOn の機能拡張として、セカンダリレプリカの Redo スレッドの並列化 (マルチスレッド) による性能向上があるかと思います。

Read the rest of this entry »

Written by Masayuki.Ozawa

6月 22nd, 2016 at 11:23 pm

Posted in SQL Server

Tagged with ,

基本的な可用性グループで単一のリスナーで複数の可用性グループの制御(片寄)を簡易的な方法で行ってみる

leave a comment

実際の案件で話に出そうな気がするので、軽く検証してみました。
Standard エディションで使用可能な「基本的な可用性グループ」では、

  • プライマリ / セカンダリの 2 台構成
  • 読み取り可能なセカンダリは利用できない
  • 可用性グループに含められるデータベースは一つ
  • リスナーを作成することが可能
  • 複数の可用性グループを作成可能

というような制約があります。

通常の構築では、以下のような構成をとることになるかと思います。
image

このような構成をとった場合、データベースを跨いだクエリの実行などをどのように行うかの考慮が必要となってきます。

そこで、下のような構成を簡易的な方法を用いてとってみたいと思います。
image

Read the rest of this entry »

Written by Masayuki.Ozawa

6月 5th, 2016 at 10:37 pm

Posted in SQL Server

Tagged with ,

異なるディスク構成で分散可用性グループを設定する

leave a comment

SQL Server 2016 の分散可用性グループについては、Distributed Availability Groups (Always On Availability Groups) で公開されている情報が今のところまとめっているものかと思います。

分散可用性グループでは、「SEEDING_MODE= AUTOMATIC」が使用されていますが、自動シードでは、バックアップとリストアを透過的に実行する仕組みのため、異なるディスク構成 (ドライブレターやデータベースの格納場所がサーバーによって異なる) の場合は、自動的な同期を使用することができません。

異なるディスク構成で分散可用性グループを設定する方法を軽くまとめてみたいと思います。

SQL Server 2016 の可用性グループを設定するための基本的なクエリについては、GitHub に公開しておきましたのでこちらがご参考なれば幸いです。

SQL Server 2016 の AlwaysOn 可用性グループ構築のベースクエリ
SQL Server 2016 の 分散可用性グループ構築のベースクエリ

Read the rest of this entry »

Written by Masayuki.Ozawa

6月 5th, 2016 at 12:37 pm

Posted in SQL Server

Tagged with ,