Tools and Documents for fault analysis in SQL Server-based environments
Tools and Documents for fault analysis in SQL Server-based environments.
Azure VM でリソース名と異なるホスト名で展開を行う
Azure のリソース名のルールとして、次のようなドキュメントが公開されています。
Azure Portal から VM を展開した場合、VM のリソース名が展開後の VM のホスト名として設定されますが、Windows ではコンピューター名の上限が 15 文字となっています。
はい。 コンピューター名は最大 15 文字の長さまで指定できます。 リソースの名前付けの詳細については、名前付け規則と制約事項に関する記事を参照してください。
1-15 (Windows)
1-64 (Linux)
下記の「注意」を参照。Azure 仮想マシンには、リソース名とホスト名の 2 つの異なる名前があります。 ポータルで仮想マシンを作成すると、両方の名前に同じ値が使用されます。 前の表に記載されている制限事項は、ホスト名に適用されます。 実際のリソース名の最大文字数は 64 文字です。
Windows の場合、15 文字の制限があるため、15 文字を超えるリソース名を設定した場合は 15 文字に省略されてホスト名が設定されます。
名前付け規則を定義する の案として次のような形式が提示されていますが、VM のリソース名でこのルールを適用した場合、15 文字の制限に達する可能性があるのではないでしょうか。
展開後に、ホスト名を表示および変更する の方法で変更することもできるのですが、本投稿では展開時に任意のホスト名を設定した状態で展開をしてみます。
az bicep install を実行すると SSL: CERTIFICATE_VERIFY_FAILED のエラーが発生した場合の対応
事象としては、az bicep install error #25471 となりますが、Bicep を使用するために「az bicep install」を実行すると、ネットワーク環境によっては次のようなエラーが発生することがあります。
Error while attempting to retrieve the latest Bicep version: HTTPSConnectionPool(host=’aka.ms’, port=443): Max retries exceeded with url: /BicepLatestRelease (Caused by SSLError(SSLCertVerificationError(1, ‘[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: self signed certificate in certificate chain (_ssl.c:1006)’))).
Bicep のインストールを実施する際には、最新の情報を「https://aka.ms/BicepLatestRelease」から取得しているのですが、プロキシなどが入っている環境ではこの情報を取得する際にエラーが発生するようです。
SQL Server / SQL Database Update (2024/03/04~2024/05/12)
前回の Update: SQL Server / SQL Database Update (2024/01~2024/03/03)
前回の投稿以降の Update をまとめておきたいと思います。
- Azure Updates
- Preview
- GA
- Azure SQL Blog
- SQL Server Blog
- SQL Server
- SQL Database
- Azure Arc
ADF / Synapse / Fabric のパイプラインのアクティビティのエラー時に SendGrid でメールを送信する
Azure Data Factory (ADF) / Synpase Analytics / Fabric でパイプラインを作成し、アクティビティの実行時にエラーとなったことを検知する方法についてまとめておきたいと思います。
ADF を使用して Fabric Data Warehouse にデータを投入する際に必要となる権限
ADF はデータセットとして Fabric として次のデータストアを使用することができます。
- Microsoft Fabric Lakehouse テーブル
- Microsoft Fabric Lakehouse ファイル
- Microsoft Fabric ウェアハウス
Fabric へのデータ投入は、Fabric 内のデータパイプラインだけでなく、Azure 内でパイプラインを作成することでデータの投入を行うこともできます。
Microsoft Fabric ウェアハウス (Data Warehouse) に ADF を使用してデータを投入する際に、必要となる権限についてまとめておきたいと思います。
なお、Data Warehouse へのデータ投入については「データのコピー」のアクティビティを使用しており、ステージングストレージが必要となります。
クエリストアのカスタムキャプチャの設定を行う場合の考慮点
SQL Server 2019 以降のクエリストアでは、カスタムキャプチャの設定を行うことができるようになりました。これにより、クエリのキャプチャモードを「ALL」「AUTO」以外に「CUSTOM」で設定することができるようになります。
「CUSTOM」を使用した場合、キャプチャされるクエリの条件を従来より柔軟に設定することができます。
「CUSTOM」を設定した場合の設定観点について少しふれておきたいと思います。
クエリストアの活用については次のドキュメントが参考になります。
SSMS の接続情報を整理する
SSMS は接続情報として入力した内容が保存されており、接続を行おうとした場合に再利用することができます。
自サーバー上の SQL Server にのみ接続をしているのであれば、この情報が増えるということはあまりないですが、クライアントからいくつかのサーバーに接続している場合にはこの情報が増えていき、今は接続が不要になったサーバーの情報も残った状態となっていることがあります。
接続の情報は SSMS の構成ファイルである 「UserSettings.xml」に記録が行われており、この XML から接続情報を削除することで、表示が行われなくなります。
ファイルは「%USERPROFILE%\AppData\Roaming\Microsoft\SQL Server Management Studio」に SSMS のバージョンごと (18.0 / 19.0 / 20.0 等のディレクトリ) に保存されています。
不要となった情報は
- SSMS を起動していない状態にする
- SSMS を起動していると、SSMS を閉じた場合に修正した情報が初期化されてしまう可能性があるため
- UserSettings.xml を直接編集し、不要となったサーバーの接続情報を削除
することでクリアすることができます。
XML の階層としては「SqlStudio > SSMS > ConnectionOptions > ServerTyes > Element」配下に保存されています。
UserSettings.xml は情報量が多い XML ですので、メモ帳で修正するよりは、Visual Studio Code で XML を編集して、不要となったサーバー情報の Element をブロック単位で削除したほうが効率が良いかと。
Microsoft Fabric の Synapse Data Warehouse の特性を把握するためのドキュメント
Microsoft Fabric の Synapse Data Warehouse は、OneLake に対して T-SQL のエンドポイントを提供し、T-SQL による既存データの参照 (SELECT) だけでなく、テーブルの作成 (CREATE TABLE) / 更新系 (INSERT / DELETE / UPDATE) を可能とする機能となっています。
Synase Analytics の Dedicated SQL Pool と Serverless SQL Pool と近しい機能がいくつか実装されています。(Data Warehouse に対してエラーが発生した際に「Synapse SQL」というメッセージが返ってくることがあるため、Data Warehouse でも Synapse の Serverless SQL プールの分散クエリのアーキテクチャは採用されているかと思いますが)
大きな変更点として実データを格納するデータストアとして、SQL Server ベースのデータベースではなく、Delta Lake が採用されているという点があるのではないでしょうか。
厳密には SQL Server のクエリエンジンを使用するため SQL Server ベースのデータベース相当のものも一部存在しているとは思いますが。
Fabric の Data Warehouse の特性を把握するために、一読しておく必要があるドキュメントとしてはどのようなものがあるかをまとめておきたい思います。
SQL Server のフィルター選択されたインデックスの利用について
SQL Server では フィルター選択されたインデックス (フィルター化インデックス) というインデックスを作成することができます。
このインデックスはインデックスの作成を行う際に、以下のクエリのように、インデックス作成時に WHERE 句を指定することで、特定の範囲のデータのみが含まれたインデックスを作成することができます。
CREATE NONCLUSTERED INDEX [NCIX_accesslog2_01] ON [frontdoor].[accesslog2] ( [time] ASC ) WHERE ([time]>='2020-01-01' AND [time]<'2021-01-01')
フィルター選択されたインデックスは、特定のデータ範囲のみがインデックスに含まれますので次のようなメリットがあります。
- インデックスで使用されるストレージサイズの削減
- フィルター外のデータを追加 / 変更する場合のインデックス更新コストの削減
- 該当データ範囲で Index Scan が発生した場合の、Scan コストの削減
特定のデータ範囲の検索向けに作成するインデックスとして便利な機能となるのですが、作成したインデックスが使用されるかどうかについては考慮が必要な点がありますので、本投稿で触れておきたいと思います。
フィルター選択されたインデックスの詳細な情報については次のドキュメントが参考となります。