Tools and Documents for fault analysis in SQL Server-based environments
Tools and Documents for fault analysis in SQL Server-based environments.
SQL Server / Azure SQL Update (2023/11: PASS 2023, Ignite 2023)
本日、PASS Data Community SUMMIT 2023 / Ignite 2023 が開催され、SQL Server / Azure SQL の様々な Update が発表されましたのでまとめておこうと思います。
発表の全体については、次の情報から参照することができます。
Ignite 2023
- What’s new in SQL Server and Azure SQL: 2023 Year in Review
- Power what’s next with limitless relational databases from Azure
- Ignite 2023 Book of News
PASS Data Community SUMMIT 2023
- PASS Summit 2023 ? Microsoft Keynote ? Limitless growth, limitless opportunities: Data and innovation in an AI world
- PASS Summit 2023 ? Redgate Keynote ? The New Database Landscape ? Revealing Shifts and Charting the Next Horizon
- PASS Summit 2023 ? Community Keynote ? AIOps and ChatGPT ? Prepare to Ride the Next Wave
クエリストアで取得されるロックを確認する
クエリストアにより情報が取得される仕組みについては クエリ処理 で解説が行われています。
基本的な仕組みとしてはこのドキュメントで解説されている次の図となります。
クエリ実行実のいくつかのタイミングでクエリストアの情報にアクセスがされるのですが、処理のタイミングによってはクエリストアに対してロックの取得が行われます。
実行されているワークロードによりますが、クエリストアに対して取得されるロックが同時実行性に影響を与え、クエリストアに関係するロックの解析が必要となるケースがあります。
Azure SQL Managed Instance で 2022 年 11 月の機能ウェーブが展開できるサブスクリプションが増えているようです
Azure SQL Managed Instance の 2022 年 11 月の機能ウェーブに登録する で公開されていますが、Managed Instance では、2022 年 11 月の機能ウェーブという機能強化が行われている環境を使用することができます。
Azure では、Microsoft Azure プランの詳細 で公開されているような様々なプランが提供されており、公開当初は「Dev/Test サブスクリプション」(0023P) のような開発向けのサブスクリプションでのみ使用することができる機能でした。
(2022 年 11 月の機能ウェーブでは、どのような Azure オファーとサブスクリプションの種類が登録されますか? で利用可能なサブスクリプションが記載されています)
現在は、展開可能なサブスクリプションが増えているようで、0023P 以外でも展開ができるようになっているようです。
私が使用できるサブスクリプションとしては、Azure スポンサープラン (0036P) / 従量課金制 (0003P) / MSDN (0063P) があるのですが、以前はこれらのサブスクリプションでは 2022 年 11 月の機能ウェーブを展開することはできませんでした。
現状、利用可能なサブスクリプションは明記されていないのですが、投稿時点では上記のサブスクリプションでも展開することができるようになっており、直近で展開可能なサブスクリプションが直近で増えたようです。
実際に 0036P のサブスクリプションで Managed Instance を展開したところ 30 分程度で展開することができ、展開後のインスタンスで、インスタンスの停止を行うことができたので、2022 年 11 月の機能ウェーブに対応した環境となっていました。
私の手元では常時起動している Managed Instance がないため、検証ができていないのですが、既存のインスタンスを登録する で既存インスタンスを機能ウェーブに登録する方法が公開されていますので、現在展開済みのインスタンスについても登録ができるようになっているかもしれませんね。
SQL Database の PITR の進捗状況について (2023/11 時点)
SQL Database で PITR の進捗状況を確認する方法として、次の DMV を確認するという方法があります。
この DMV では「percent_complete」という項目が提供されており、この値から操作の進行状況を取得することができます。
当初は「0 / 50 / 100」の 3 段階で進行状況を示していたのですが、昨年、Monitor Database Restore progress at more granular level のような機能改善が行われ、「0 / 1-99 / 100」というように操作の進行状況に合わせた値の表示が行われるようになったというアナウンスがありました。
SQL Server 2022 の blocked_report の出力内容の強化
SQL Server ではブロッキング (ロック競合) 情報を取得する方法として Blocked Process Report イベント クラス の情報を拡張イベントで取得するという手法があります。
SQL Server 2022 では、この情報に出力される内容が強化されていることに先日気づきました。
Azure からの AKS ハイブリッドクラスター展開についてのメモ
AKS ハイブリッドデプロイオプションの要素の一つとして「Azure からの AKS ハイブリッドクラスター展開 (プロビジョニング)」 があります。
この展開方法を使用する際にいくつかの確認点がありましたのでメモを。
TP-Link ER605 (v1) を使用して Azure とオンプレミスのハブアンドスポークのネットワークを構成する際のメモ
先人の知恵を借りて自宅に Azure の S2S VPN の検証環境を固定 IPで作成してみる で投稿しましたが、検証目的で Azure と VPN 接続をできるように TP-Link の ER605 を持っています。(過去からの TP-Link の機器についての批評はいろいろありますが、ファームを最新化して、常時起動の機器としてではなく、ネットワーク系の検証を行う場合だけ取り出して使用しています)
これを使用して Azure にハブネットワークを VNET ベースで作成し、Azure / オンプレミスをスポークとして接続した際に調べた内容をメモとして。
ENABLE_PARALLEL_PLAN_PREFERENCE ヒントを使用した場合に確認しておきたいポイント
SQL Server では「ENABLE_PARALLEL_PLAN_PREFERENCE」という、クエリの並列化のコストを満たしていない状態でも、並列化の指示を出すための ヒント句 がアンドキュメントなクエリヒントとして提供されています。
このクエリヒントを使用すると、シングルスレッドで実行されているクエリを並列化することができる可能性があるのですが、並列化された際に確認をしておきたいポイントがあります。
Azure SQL Database と Azure SQL Managed Instance のブロッキング検出について
SQL Server ベースの環境で、ロック競合に伴うブロッキングの情報を取得する際には、blocked process threshold と Blocked Process Report を使用するのが一般的な取得方法となります。
Azure SQL は変更可能な設定が制限されていますが、Azure SQL Databsae (SQLDB) と Azure SQL Managed Instance (MI) では、どのような設定ができるのかをまとめておきたいと思います。
SQL Server / SQL Database Update (2023/08 中旬~9 末)
時間が取れず、直近の SQL Server ベースの環境のアップデートをまとめられていませんでしたので、SQL Server / SQL Database Update (2023/08 上旬) 以降に発表されたものをまとめておきたいと思います。
- Azure updates
- SQL Server
- Azure Arc Enabled SQL Server
- Azure Arc Enabled SQL Managed Instance
- Azure SQL Edge