SQL Database では先行して実装されていた高速データベース復旧 (Accelerated Database Recovery : ADR) が、SQL Server では、2019 CTP 2.3 から使用可能となりました。
昨年の 10 月ぐらいからドキュメントは公開されていたのですが、情報を調べられていなかったので、今回の機会に調べてみました。
公式の情報としては次の内容となります。
SQL Server 2019 CTP 2.3 で実装された高速データベース復旧で何が可能になるのか?
SQL Server 2019 CTP 2.3 がリリースされました
マンチェスターで開催されている SQLBits 2019 のキーノートで SQL Server 2019 CTP 2.3 のリリースがアナウンスされ、モジュールや情報が公開されています。
Windows 版のダウンロードは こちら から実施することができ、Linux / Docker のリポジトリについても 2.3 がリリースされているようです。
SQL Server 2019 CTP 2.3 で追加された機能については、次のリンクから確認できます。
公式情報としてもいくつかのアナウンスが出ています。
SQL Server 2019 の新機能の ハイブリッドバッファープールを試してみる
SQL Server 2019 では新機能として、ハイブリッド バッファー プール (Hybrid Buffer Pool) という機能が新しく追加されます。
ドキュメントベースではなんとなく動作を理解できていたのですが、実際の動作を確認できていなかったので、軽くではありますが動作を試してみました。
Read the rest of this entry »
2019/3 の丸わかり 1 日セミナーの申し込みが開始されています
毎月、品川の Microsoft 様で開催されている SQL Server 丸わかり 1 日セミナーの 2019/3 開催の申し込みが開始されています。
3 月は、2019年3月5日(火) 13:00-17:30 で開催となっています。
SQL Server の達人になる! 丸わかり1日セミナー SQL Server 2019 とデータベースマイグレーションの最新情報をお届け! [セミナー] 東京開催
可能な限り、最新の情報をお届けできるようにしておりますので、最新情報をキャッチアップされたい方は、ぜひご参加くださいませ。
DMV の情報を定期的に取得して時系列データを作成する
簡単な PowerShell のスクリプトですが Collect-QueryInfo というツールを公開しました。
このツールを使用すると、定期的に DMV の情報を SQL Server のデータベースに格納することができます。
これによりどのような情報の解析が可能となるかを見ていきたいと思います。
情報の取得元の SQL Server のバージョンは SQL Server 2012 以降となっています。
Read the rest of this entry »
SQL Server でステートメントレベルでキャッシュから実行プランを取得
SQL Server でプランキャッシュから実行プランを取得する場合、「sys.dm_exec_query_plan」を用いて、クエリの実行プランの取得を行うことが一般的ではないでしょうか。
このテーブル値関数ではプランハンドルを渡すことで、プランキャッシュから実行プランを取得することができます。
この時、取得される実行プランは「バッチ全体」のプランとなっています。
Read the rest of this entry »
拡張イベントと DMV を活用したセッション情報の取得
SQL Server のクエリの動作確認を実施していて、
- 自クエリが使用した CPU 時間等の取得
- 発生した待ち事象の取得
- 取得されたロック情報の取得
を確認したいと考えたことはないでしょうか?
拡張イベント (xEvent) と、DMV を活用することで、これらの情報を取得することができます。
SQL Server 2012 以降であればこの仕組みを使用することができるはずです。
「本番環境での利用」は一切考慮しておらず、「開発環境でクエリの動作を確認すること」を目的としていますので、実行する環境には注意してください。
Read the rest of this entry »
SQL Server IaaS Agent 拡張機能が日本語版の SQL Server に対してもサポートされるようになりました
Azure の仮想マシンで SQL Server を利用する際に、管理タスクを自動化することができる「SQL Server IaaS Agent 拡張機能」が、SQL Server インストール済みイメージに対して、日本語版の SQL Server をインストールした場合にもサポートされるようになりました。
Azure 仮想マシン上に作成した SQL Server の日本語化手順(Windows OS 版 SQL Server 2017 対応手順)
ただし、SQL Server Agent 拡張機能 (Resource Manager) による Azure Virtual Machines での管理タスクの自動化 に記載されているように SQL Server インストール済みイメージを使用した場合のみサポートされる状況には変わりがなさそうですので、この点は注意が必要かと。
注意
SQL Server IaaS Agent 拡張機能は、SQL Server VM ギャラリー イメージ (従量課金制またはライセンス持ち込み) でのみサポートされます。 SQL Server を OS のみの Windows Server 仮想マシンに手動でインストールする場合や、カスタマイズされた SQL Server VM VHD をデプロイする場合、この拡張機能はサポートされません。 そのような場合は、PowerShell を使用して拡張機能を手動でインストールおよび管理できる可能性がありますが、Azure Portal には SQL Server の構成設定が表示されません。 ただし、代わりに SQL Server VM ギャラリー イメージをインストールしてカスタマイズすることを強くお勧めします
SQL Server IaaS Agent 拡張機能は、以下の 2 種類のサービスで構成されています。
![]()
これらのサービスが SQL Server に対してアクセスできるようにする必要があるのですが、一番手っ取り早いのは SQL Server IaaS Agent 拡張機能を再インストールすることかと思います。
アンインストールについては、ポータルの拡張機能から実施することができますし、PowerShell でも削除することができます。
![]()
Remove-AzureRmVMSqlServerExtension -ResourceGroupName "<リソースグループ名>" -VMName "<VM 名>" -Name "SqlIaasExtension"
インストールについてはポータルからは実施することができませんので、PowerShell でインストールする必要があります。
Set-AzureRmVMSqlServerExtension -ResourceGroupName "<リソースグループ名>" -VMName "<VM 名>" -Name "SqlIaasExtension" -Version "2.0" -Location "<リージョン>"
Azure のゲストエージェント経由でインストールが行われ、IaaS Agent は Local System のサービスとして動作するため、SQL Server に対して接続が可能となっており、SQL Server にアクセスし、NT Service\SQLIaaSExtensionQuery のログインの作成などが実施されています。
(「NT Service\SQLIaaSExtensionQuery」は「sysadmin」のログインとなっています)
インストールが完了すると、ポータルの仮想マシンのブレード内に「SQL Server の構成」が表示され、様々な設定を行うことができるようになります。
![]()
IaaS Agent は、SQL Server の管理の利便性を向上させることができますので、日本語版の SQL Server のインストールを実施した場合もサポートされるようになったのはうれしいですね。
Azure での SQL Server 仮想マシンのライセンス モデルを変更する方法 を実施するためにも IaaS Agent が必要となりますので、このライセンス変更を日本語版の SQL Server を使った場合に実施できるようになったことも大きな改善点ではないでしょうか。
2019/2 の丸わかり 1 日セミナーの申し込みが始まっています
毎月開催している丸わかり 1 日セミナーの 2019/2 の申し込みが始まっていました。
申し込みは こちら から。
4 セッションのうち、3 セッションは私が担当させていただき、次の内容についてお話をさせていただきます。
- SQL Server 2019
- Managed Instance
- SQL Server マイグレーション
公開されている最新情報をお持ち帰りいただくことをゴールとしているので、前日に公開された情報なども、可能な範囲でではありますが、口頭で補足させていただいたり、参加いただいた方には私のセッション資料は DL できるようにしており、その中で補足ができるようにはしております。
4 時間という長めの時間ではありますが、この機会に最新の情報を、ぜひお持ち帰りください m(_ _)m
SQL Server でコネクションプールによる接続となっていることを確認してみる
定期的に SQL Server にクエリを実行するアプリを作っていたところ、コネクションプール利用を誤っていて、TIME_WAIT の接続を大量に残してしまうということをやらかしてしまいました orz
コネクションプールの管理はアプリケーション側になると思いますが、SQL Server 観点でコネクションプールによる接続かどうかを確認する方法もありますので今回はその方法を紹介したいと思います。
Read the rest of this entry »