SQL Server のクエリ実行時に取得することができる実行プラン (実行計画) の中には、「コスト」という情報が出力されています。
代表的な項目としては、サブツリーの推定コストや、グラフィカルな実行プラン内のコストのコストの比率の情報となるのではないでしょうか?
本投稿では実行プラン内のコストがどのような情報を表しているものなのかの情報を確認していきたいと思います。
本投稿を書いた理由ですが「Nick’s Machine」という用語を思い出すためだったりしますが。
SQL Server の情報をメインに Microsoft 製品の勉強内容を日々投稿
SQL Server のクエリ実行時に取得することができる実行プラン (実行計画) の中には、「コスト」という情報が出力されています。
代表的な項目としては、サブツリーの推定コストや、グラフィカルな実行プラン内のコストのコストの比率の情報となるのではないでしょうか?
本投稿では実行プラン内のコストがどのような情報を表しているものなのかの情報を確認していきたいと思います。
本投稿を書いた理由ですが「Nick’s Machine」という用語を思い出すためだったりしますが。
本日、次の 2 つのアナウンスがありました。
Microsoft.Data.SqlClient 3.0 では、ユーザーが設定可能な再試行ロジックを利用することができるようになるようです。
非クラスター化インデックスのキー項目を変更した場合、どのようなオーバーヘッドが発生するかについてまとめておきたいと思います。
SQL Server / SQL Database で CPU 使用率が高い場合、CPU を使用しているクエリの特定を行い、CPU 負荷を低減させるという作業を行うことがあるかと思います。
SQL Server / SQL Database で CPU 使用率が高い状態とは、そもそもとしてどのような状態を指しているのでしょうか??
今回は情報を取得しやすい SQL Server で情報を取得していますが、基本的な考え方は、SQL Databse でも同様です。
また、クエリによる CPU の利用を考える際には、スケジューラーやスレッドの意識も重要となりますので、本投稿についてはそれらについても触れておきたいと思います。
Ignite 2021 でアナウンスのあった、SQL Database と Managed Instance のメンテナンスウィンドウ (Maintenance Windos) についてまとめておきたいと思います。
Azure の SQL Server ベースの PaaS の環境では、Synapse の専用 SQL プールがメンテナンススケジュールをサポートしていましたが、一般的な DB でもメンテナンス期間の指定ができるようになりました。
2021/3/3 のプレビュー時点での内容となりますので、今後変更される可能性はあります。
公式のアナウンス / ドキュメントについては、次の情報を参照してください。
アナウンス
docs
Ignite 全体のアナウンスについては以下の情報から確認することができます。
Data and AI に特化したアナウンスはこちらから。
SQL Server 関連のアナウンスはこちらから。
Ignite 直前に先月の更新情報をキャッチアップ。
SQL Server では、「待機事象 (Wait Stats)」の情報を確認することで、インスタンスで同時実行性を低下させる問題が発生しているかの確認をするという分析手法があります。
SQL Server でクエリ実行の処理 (タスク) を実行する際には、タスクは次の状態を遷移しながら処理が行われます。
この 3 種類の状態の中で「待機状態」に入っている時間が少なければ、他の処理により同実行性を低下させることなく、処理を実行することができていることになります。