SQL Server ベースのデータベースエンジンで統計情報の自動更新が発生した際の情報を取得するための方法についてまとめておきたいと思います。
Archive for the ‘SQL Database’ tag
Database Watcher のデータストアに Free ADX を設定する (2025/01 版)
本投稿と同様の事象が発生した場合の 2025/01/27 時点の暫定対応方法です。SR で確認中のため今後、本投稿の対応は不要となる可能性があります。
Azure SQL のワークロード監視をする機能として、Database Watcher があります。
Database Watcher では、Azure Data Explorer (ADX) ベースの環境をデータストアとして使用し、Azure SQL の各種状態を保存します。
データベース ウォッチャーの価格 に記載されていますが、Database Watcher 自体は無償で利用でき、Free Azure Data Explorer (ADX) Cluster を使用した場合、ADX には 機能の比較 に記載されている制限がありますが、データストアについても無償で使用することが可能です。
以前は Azure Portal から Free ADX Cluster を使用する設定ができていたのですが、私の環境では設定することができず、他の方法で設定する必要があったのでその際の作業内容を残しておきます。
Data Migration Assistant (DMA) の後継機能
今まで、SQL Server のバージョンアップ / SQL Server ベースの環境間の移行に使用することができるツールとして、Data Migration Assistant (DMA) というツールが提供されていました。
しかし、2024/06/29 にドキュメントの更新が行われ、DMA は非推奨の機能となりました。
データベースの移行については Azure Data Studio の SQL Migration 拡張機能 で代替することが可能なのですが、データベースの評価については Azure Data Studio (ADS) の機能は DMA よりリッチな機能となっておらず、この部分を代替する機能が提供されていない状態となっていました。
SQL Server / SQL Database で設定可能な権限を把握する
SQL Server /SQL Database のような SQL Server ベースのデータベースエンジンで、設定可能な権限を確認する際には、権限 (データベース エンジン) / 権限の階層 (データベース エンジン) に記載されている Database Engine Permissions Poster を確認するのが定番の方法となるかと思います。
しかし、この情報は SQL Server 2017 ベースの情報となっており、数世代前の SQL Server の情報となります。
現在の SQL Server ベースの環境でもこの情報は有益ではあるのですが、最新バージョンで増えた権限については確認することはできません。
lock_aquired / lock_released の拡張イベントログで KEY ロックの対象を確認してみる
SQL Server で取得されたロックの情報を確認する方法として lock_aquired / lock_released イベントを拡張イベントで取得する方法があります。
取得されているロックを確認する方法としては sys.dm_tran_locks を参照する方法もあります。
この DMV から情報を取得した場合は、次の画像のように、resource_description から、どのロックリソース (%%lockres%%) のキーに対してロックが取得されているのかを確認することができます。
しかし、DMV の参照はトレースとして情報を時系列で取得することは難しく、ロックのような短時間で取得される内容が細かに変わっていくような特性のある情報については DMV を連続でダンプしても解析することは難しいです。
本投稿を各モチベーションとなったのは「キーに対してどのような順序でロックが取得されているか」を確認したかったのですが、このような情報については DMV で取得することは難しく、拡張イベントのようなイベント駆動のトレースの情報を取得する必要があります。
しかし拡張イベントで「取得されるロック」の情報を確認した場合 、上述の DMV のような resource_description のような可視性の高い情報が無く、次の画像のように、「resource_x」「associated_object_id」を使用して、情報を確認する必要があります。
これらの情報を使用して「どのキーに対してロックが取得されたのか?」を確認する方法を考えてみました。
sp_invoke_external_rest_endpoint で text-embedding-3-large のモデルを使用する
SQL Database で T-SQL で Vector データ型用の埋め込みを作成する際には、sp_invoke_external_rest_endpoint で Azure Open AI の 埋め込みのモデル を使用して、ベクトルデータを作成するという方法があります。
SQL Database の Vector データ型 の次元の最大数は「1998」となっており、これを変更することはできません。
Azure Open AI の埋め込みのモデルとしては、次のモデルを使用することができます。
- text-embedding-ada-002
- text-embedding-3-small
- text-embedding-3-large
ada / embedding-3-small であれば、1536 の次元となるため、Vector データ型にはそのまま登録することができるのですが、text-embedding-3-large については、単純に呼び出しただけでは 3072 の次元となるため、Vector データ型に登録することができません。
Ignite 2024 で発表された SQL Server / SQL Database のアナウンス
本日から Ignite 2024 が開催されています。
発表内容については Book of News で公開されていますが、Ignite 2024 付近公開された SQL Server / SQL Database の発表についてまとめておきたいと思います。
SQL Database のベクターサポートについて情報をまとめておく
PASS 2024 で Exciting Announcement: Public Preview of Native Vector Support in Azure SQL Database! として SQL Database のベクターサポートの Public Preview がアナウンスされました。
MI については、今後数か月で Public Preview が公開されるということで、Azure の SQL Server ベースの環境でベクターサポートの一般公開の作業が進められています。
EAP 時点の情報とは多少異なっている内容がありますので、現時点の情報をまとめておきたいと思います。
SQL Server 2025 でもベクターサポートが入りますので、今後の SQL Server でも活用できる知識となるのかと。
PASS Data Community Summit 2024 開催のタイミングで発表された SQL Server / SQL Database Update
本日から PASS Data Comunity Summit 2024 のメインセッションが開始しておりますが、開催日に合わせて SQL Server / SQL Database の Update がアナウンスされています。
来年の PASS の開催日についても発表されましたね。来年も 11 月の開催となるようです。
Azure SQL Database の監査ログについて
Azure SQL Database の監査ログについて、いろいろと情報を整理しておく必要があったので。
監査ログについては、次のドキュメントツリーから情報を確認することができます。