Introducing Windows Server 2025! でアナウンスがありましたが、Insider Preview として公開されていた Windows Server v.Next の正式名称が Windows Server 2025 となったので関連する情報を確認しておきたいと思います。
ストアドプロシージャコンパイル時の同時実行性の低下について
SQL Server のストアドプロシージャでは次のようなタイミングでコンパイル / リコンパイルが発生します。
- 初回実行時
- 実行プランがキャッシュアウトされた後の初回実行
- 統計情報が更新された後の実行
上記のケースの中で「1.」「2.」については発生すると複数のセッションで同時実行性の低下につながるケースがあります。
どのような情報が出力されていると、「1.」「2.」のケースで同時実行性が低下している可能性があるのかをまとめておきたいと思います。
今回はストアドプロシージャを対象としており、アドホッククエリやパラメーター化クエリについてはこの動作とは異なってきます。
Windows Server で KB5034439 の適用がエラーとなった場合の対応
KB5034439 が Windows Server 2022 向けに提供されましたが、私の環境ではエラー (0x80070643: ERROR_INSTALL_FAILURE) となるものがありました。
本 KB の修正については、CVE 2024-20666 が元になる情報となっており、Windows Server OS については Windows Server 2022 が対象となります。
これらの環境のデフォルトの設定では回復パーティションの空き領域が 250MB 未満となるため、エラーが発生するようです。
KB5034439 でエラーが発生した際に実施が必要な作業としては KB 内のリンクに記載がされており、回復パーティションのサイズ変更が必要となります。
手元ですぐに確認できる環境が KB5034439 だったため、本投稿では Windows Server 2022 ベースの環境で確認をしていますが、前述のとおり CVE-2024-20666 の対応のため、クライアント OS となる Windows 10 21H2, 22H2 / Windows 11 21H2 も対象となっています。
- KB5034441: Windows 10 バージョン 21H2 および 22H2 用 Windows 回復環境の更新プログラム: 2024 年 1 月 9 日
- KB5034440: Windows 11 バージョン 21H2 の Windows Recovery Environment 更新プログラム: 2024 年 1 月 9 日
これらのクライアント OS でも回復パーティションのサイズによっては、KB の適用時にエラーが発生する可能性があるようです。
エラーが発生した場合、回復パーティションのサイズ変更 / 再作成が必要となるため、KB5028997: WinRE 更新プログラムをインストールするためにパーティションのサイズを手動で変更する手順 に記載されている に記載されている回復パーティションのサイズ変更の手順を実施する必要があります。
現状、適用対象外となる Windows RE が無効な環境でも KB を対象として認識してしまい、これは既知の不具合となっているので、本 KB の適用について、最終的に必要となる対応がどのようになるのかは少し静観となりそうです。
SQL Server 2022 以降で別名を設定する方法
SQL Server では別名を作成する機能があり、リンクサーバーで別のサーバーに接続を行う場合などにサーバー名のエイリアスを作成して使用することができます。
SQL Server 2019 までは、SQL Server 構成マネージャーで設定を行うことができました。
SQL Server 2022 の構成マネージャーでも同様の UI が提供されているのですが、新しい別名を作成することはできなくなっています。(新規に別名を作成しようとしても、サーバー名の入力等ができなくなっています)
SQL Server 2022 以降でも別名を使用することはできますが、作成方法が変わっていますので、本投稿で触れておきたいと思います。
ログ配布の復元時に「ユーザーデータベースを切断する」を有効にしても、排他アクセスが取れなくなるケースがあることの原因について
SQL Server の ログ配布 のリストア時の設定として「バックアップの復元時にデータベースのユーザーを切断する」(disconnect_users=1) という設定があります。
この設定は、ログ配布でリストアをしているデータベースに対して「スタンバイ モード」を使用してリストアを行い読み取りが可能なデータベースに対して使用することができるオプションとなります。
読み取りが可能な状態でログ配布を使用している場合、ログをリストアする際にログ配布のプロセス (logship.exe) がデータベースを排他的に利用できない場合、リストアを行うことができないため上記のオプションを設定することでリストアの直前に既存の接続を切断することで、ログ配布が排他的にデータベースを設定することができます。
しかし、この設定を有効にしていてログ配布のプロセスが排他的にデータベースを利用することができず、「エラー: データベースは使用中なので、排他アクセスを獲得できませんでした。RESTORE LOG が異常終了しています。(.Net SqlClient Data Provider)」というエラーが発生するケースがあります。
本投稿では「バックアップの復元時にデータベースのユーザーを切断する」を有効にしていても、リストア時の上述の排他エラーが出る理由についてまとめておきたいと思います。
本事象は「スタンバイモード」を使用する場合に発生するものとなり、「復旧モード無し」にしている場合は、リストア状態のデータベースにアクセスすることはできないため、スタンバイモードを利用していない場合には発生しないはずです。
クエリストアの検証のためクエリストアをエラー状態にする方法
クエリストアの状態については sys.database_query_store_options で情報が公開されています。
操作モードの中には「ERROR」という状態があり、ERROR を解消するためには「sp_query_store_consistency_check」を実行する必要があります。
このストアドプロシージャの動作確認を実状態と合わせて行う場合には、クエリストアの状態を ERROR にする必要があります。
イレギュラーな操作となりますが、クエリストアを意図的に ERROR にすることは可能ですので、操作方法を残しておきたいと思います。
Azure SQL Managed Instance の Free Offer が使用できるようになりました (Public Preview)
Ignite 2023 で、近日提供予定のアップデートとして、Azure SQL Managed Instance の Free Offer についての情報が公開されました。
本日、提供についてのアナウンスがあり、Public Preview として使用することができるようになりました。
ドキュメントも公開されています。
Azure Stack HCI 23H2 プレビュー (25398.584) を展開する際のメモ
Ignite 2023 で Azure Stack HCI 23H2 のプレビューの発表が行われました。
22H2 までは、Azure Stack HCI の展開には、Windows Admin Center (WAC) を使用していましたが、23H2 では展開方法が大きく変わり、Azure Portal (または ARM テンプレート) を使用して展開を行うようになりました。
(Azure Stack HCI の展開時に、にリソースブリッジも同時に展開されるようになり、従来とは展開されるリソースも大きく変わっています)
展開方法については、Azure Stack HCI バージョン 23H2 デプロイの概要 (プレビュー) のドキュメントツリーに記載されていますが、ドキュメントでは把握できないよう / SR で確認できた内容がいくつかありますので、展開時の内容をメモとして残しておきたいと思います。
試行錯誤をしたのですが、単一サーバーの検証環境を展開できるところまでは確認ができました。
私の環境では、展開が完了するまで 2 時間近くかかりました。 ![]()
23H2 の展開の前提条件については Azure Stack HCI バージョン 23H2 (プレビュー) のデプロイの前提条件を確認する に記載されています。
今回、単一サーバーの 23H2 の検証環境を構築するに際しては、Intel NUC 9 Pro Kit NUC9VXQNX を 1 台用意し、物理ホストに対して シングルノードの Azure Stack HCI クラスターを展開することで検証環境の構築を実施しています。
Ignite 2023 で発表された Windows Server v.Next の情報について
先日開催された Ignite 2023 で LTSC 版の Windows Server の次期バージョンとなる、Windows server v.Next (2022 の後継バージョン) についての発表がありました。
最近情報を追い切れていなかったので、どの辺の情報を見ればよいのかをメモとして。
Azure Arc を使用した SQL Server のメトリック収集 (プレビュー機能)
Ignite / PASS で発表された Azure Arc 対応 SQL Server (Azure Arc Enabled SQL Server) の新機能となる、モニターによるメトリック収集 (パフォーマンスダッシュボード) について情報を残しておきたいと思います。