演習 - Azure SQL Database を検証する
SQL Server Management Studio (SSMS) で Azure SQL がどのように表示されるかを確認したので、デプロイを確認できます。
デプロイを検証する
SQL のインスタンスをデプロイした後は、通常、クエリを実行してデプロイを検証します。 Azure SQL では、これらのクエリの一部が SQL Server と異なります。 この手順では、何が SQL Server を変更したか、変更の内容、および新機能について説明します。
この演習では、システム関数、動的管理ビュー (DMV)、および SSMS でのデプロイ後に使用できるカタログ ビューに対する一般的なクエリについて説明します。 SQL Server と動作が同じもの、異なるもの、Azure SQL に新しく追加されたものを確認します。
SSMS で Azure SQL Database 論理サーバーに接続します (まだ接続していない場合)。
AdventureWorks
データベースを右クリックし、[新しいクエリ] を選択します。よく知られているシステム関数
@@VERSION
を実行して、デプロイしたバージョンを確認します。SELECT @@VERSION
結果は、SQL Server とは少し異なります。 これがバージョン番号が存在しない Azure SQL であることがわかります。 Azure SQL Database には、SQL Server の最新リリースと一致する最新の変更が含まれています。 ただし、システム関数
@@VERSION
を使用することは、SQL Server の "クエリを実行" できることを確認するための一般的な方法です。返される数値に基づいて、Azure SQL のデプロイの特定の種類を決定します。
- 1: 個人用またはデスクトップエンジン
- 2:Standard
- 3:Enterprise
- 4: エクスプレス
- 5:SQL Database
- 6:SQL Data Warehouse
- 8: SQL Managed Instance
予想される結果になるかどうかを確認するには、次の T-SQL コマンドを実行します。
SELECT SERVERPROPERTY('EngineEdition');
結果は 5 になります。SQL Managed Instance や SQL Server Enterprise ではなく Azure SQL Database を展開したので、これは当然の結果です。 Azure 仮想マシンでの SQL Server に対する特別な番号はありません。 この番号は、仮想マシンにインストールしたエディションに対応します。 Personal または Desktop Engine は、SQL Server では使用されなくなった以前のエディションです。
カタログ ビューの
sys.databases
とsys.objects
を調べます。 通常は、これらのビューを調べて、システム データベースのインストールと状態、およびデータベース内のシステム オブジェクトを確認します。SELECT * FROM sys.databases; SELECT * FROM sys.objects;
最初の結果セットには、システム データベースの
msdb
、tempdb
、model
が記載されていません。master
とユーザー データベースのみが一覧表示されます。 論理サーバー内のmaster
データベースは、SQL Server にインストールされている物理master
データベースと同じではありません。 Azure SQL Managed Instance では、他の SQL Server インスタンスと同じ通常のシステム データベースのセットが表示されます。ただし、
sys.objects
は通常の SQL Server インスタンスに似ています。 その事実は、サンプルAdventureWorksLT
データベースのシステム テーブル、内部テーブル、ユーザー オブジェクトに当てはまります。すべてのスケジューラーがオンラインになっていて、2 仮想コア モデルでデプロイしたことを考慮して、予想される利用可能な CPU が検出されていることを確認します。
SELECT * FROM sys.dm_os_schedulers where STATUS = 'VISIBLE ONLINE';
2 つの
VISIBLE ONLINE
スケジューラが表示されるのは、SQL データベースが展開されている SQL Server インスタンスで 2 つの仮想コアが使用可能な場合に想定されることです。SQL Server のデプロイでは、通常、
sys.dm_process_memory
などの DMV を調べて、CPU、メモリ、worker の制限を確認できます。 ユーザーはデータベースをサポートするホストの詳細を公開したり制御したりしないため、この DMV は Azure SQL Database ではサポートされません。 DMVsys.dm_user_db_resource_governance
を使用し、デプロイされている SQL データベースの容量と制限を確認できます。 Azure SQL Managed Instance でsys.dm_instance_resource_governance
を使用することもできます。次のクエリを実行し、結果を確認します。 結果を、実際の価格レベル、およびデプロイされているレベルについてドキュメントに記載されている制限と比較します。
slo_name
は、デプロイ オプション、サービス レベル、ハードウェア、およびコンピューティング量を示すサービス レベル目標 (SLO) です。 さらに、Azure SQL Database では他のリソース制限 (メモリなど) に Windows ジョブ オブジェクトが使用されるため、sys.dm_os_job_object
DMV を使用して、デプロイに使用できるリソースを確認することができます。SELECT * FROM sys.dm_user_db_resource_governance;
SQL Server のデプロイを確認する一般的な方法は、アクティブな要求の一覧を調べることです。 SQL Server と同様に、
sys.dm_exec_requests
を使用して、現在実行中の SQL 要求を表示できます。SELECT * FROM sys.dm_exec_requests;
Azure SQL Database に
sys.dm_exec_requests
を使用することは、SQL Server または SQL Managed Instance での使用とは異なります。 この DMV では、バックグラウンド タスク、またはmaster
と表示されるデータベース コンテキストを持たないバックグラウンド タスクなど、データベースに関連するアクティブな要求のみが表示されます。 この動作は、Azure SQL Database の展開の性質によるものです。