データベース (データストア) 内で AI に関連する機能の利用が様々なデータベース時で実施することができるようになっています。
私が確認した範囲でのデータベース (またデータベースに関連するサービス) になりますが、どのように AI の機能を利用することができるのかをまとめておきたいと思います。
SQL Server の情報をメインに Microsoft 製品の勉強内容を日々投稿
データベース (データストア) 内で AI に関連する機能の利用が様々なデータベース時で実施することができるようになっています。
私が確認した範囲でのデータベース (またデータベースに関連するサービス) になりますが、どのように AI の機能を利用することができるのかをまとめておきたいと思います。
Azure では、Marketplace から SQL Server インストール済みの VM イメージが公開されており、Azure VM で SQL Server を使用する場合は、このイメージで展開して PAYG で利用するのが一般的かと思います。
イメージは英語版を使用して構築されているため、日本語化する場合には、当ブログで書いた SQL Server on Azure VM (インストール済みイメージ) の日本語化 (2021/1 版) の方法や、SQL Server Support Blog で公開されている次の記事の対応を行う必要があります。
基本的な作業としては、次の流れとなるのではないでしょうか。
基本的な作業の流れとしてはこのようになりますが、この手順だけでは、VM の展開時に指定した SQL Server 構成の設定はクリアされた状態となってしまっています。
展開時に指定した内容と同等の設定で IaaS Agent を導入するためには、New-AzSqlVM で様々なオプションを指定して再導入をする必要があるのですが、オプションを一つ一つ設定するのは手間がかかるため、今回はその設定を Bicep で実施してしまおうというのが今回の趣旨となります。
JDBC で接続をする際のコネクションプールで使用するライブラリとして HikariCP があります。
HikariCP を使用して SQL Server に接続をする際の挙動について、いくつか調査する必要があったのでその時に確認した内容を残しておきたいと思います。
Build 2024 が開催されています。
キーノートについては次の情報から確認できます。
SQL Server についてはアップデートはなかったのですが、Azure SQL Database についてはアップデートがアナウンスされていますのでまとめておきたいと思います。
SQL Server ベースの環境に対しての CI/CD で活用できるツールとして SqlPackage があります。
Visual Studio Code の Dev Container (開発コンテナー) 上に SqlPackage の実行環境を作成しようかなと思って試してみました。
SqlPackage に問題がある場合は DacFx のリポジトリ から Issue で報告ができます。
前回の Update: SQL Server / SQL Database Update (2024/01~2024/03/03)
前回の投稿以降の Update をまとめておきたいと思います。
SQL Server 2019 以降のクエリストアでは、カスタムキャプチャの設定を行うことができるようになりました。これにより、クエリのキャプチャモードを「ALL」「AUTO」以外に「CUSTOM」で設定することができるようになります。
「CUSTOM」を使用した場合、キャプチャされるクエリの条件を従来より柔軟に設定することができます。
「CUSTOM」を設定した場合の設定観点について少しふれておきたいと思います。
クエリストアの活用については次のドキュメントが参考になります。
SSMS は接続情報として入力した内容が保存されており、接続を行おうとした場合に再利用することができます。
自サーバー上の SQL Server にのみ接続をしているのであれば、この情報が増えるということはあまりないですが、クライアントからいくつかのサーバーに接続している場合にはこの情報が増えていき、今は接続が不要になったサーバーの情報も残った状態となっていることがあります。
接続の情報は SSMS の構成ファイルである 「UserSettings.xml」に記録が行われており、この XML から接続情報を削除することで、表示が行われなくなります。
ファイルは「%USERPROFILE%\AppData\Roaming\Microsoft\SQL Server Management Studio」に SSMS のバージョンごと (18.0 / 19.0 / 20.0 等のディレクトリ) に保存されています。
不要となった情報は
することでクリアすることができます。
XML の階層としては「SqlStudio > SSMS > ConnectionOptions > ServerTyes > Element」配下に保存されています。
UserSettings.xml は情報量が多い XML ですので、メモ帳で修正するよりは、Visual Studio Code で XML を編集して、不要となったサーバー情報の Element をブロック単位で削除したほうが効率が良いかと。
SQL Server では フィルター選択されたインデックス (フィルター化インデックス) というインデックスを作成することができます。
このインデックスはインデックスの作成を行う際に、以下のクエリのように、インデックス作成時に WHERE 句を指定することで、特定の範囲のデータのみが含まれたインデックスを作成することができます。
CREATE NONCLUSTERED INDEX [NCIX_accesslog2_01] ON [frontdoor].[accesslog2] ( [time] ASC ) WHERE ([time]>='2020-01-01' AND [time]<'2021-01-01')
フィルター選択されたインデックスは、特定のデータ範囲のみがインデックスに含まれますので次のようなメリットがあります。
特定のデータ範囲の検索向けに作成するインデックスとして便利な機能となるのですが、作成したインデックスが使用されるかどうかについては考慮が必要な点がありますので、本投稿で触れておきたいと思います。
フィルター選択されたインデックスの詳細な情報については次のドキュメントが参考となります。
ストアドプロシージャを明示的にリコンパイルさせる方法として ストアド プロシージャの再コンパイル に記載されている sp_recompile を使用するという方法があります。
ストアドプロシージャはコンパイル時に指定されたパラメーターによって実行プランが生成されるため、コンパイル時に指定されたパラメーターが大多数の実行に対してマイノリティな設定の場合、頻繁に実行するクエリに対しては効率の悪い実行プランが生成されることがあります。
このような場合は、ストアドプロシージャをリコンパイルさせることで新しい実行プランを生成することがあります。
このリコンパイルを同時実行性の低下をできるだけ抑えて実行するにはどのような方法が考えられるでしょうか。