演習 - Azure SQL Database を検証する

完了

SQL Server Management Studio (SSMS) で Azure SQL がどのように表示されるかを確認したので、デプロイを確認できます。

デプロイを検証する

SQL のインスタンスをデプロイした後は、通常、クエリを実行してデプロイを検証します。 Azure SQL では、これらのクエリの一部が SQL Server と異なります。 この手順では、何が SQL Server を変更したか、変更の内容、および新機能について説明します。

この演習では、システム関数、動的管理ビュー (DMV)、および SSMS でのデプロイ後に使用できるカタログ ビューに対する一般的なクエリについて説明します。 SQL Server と動作が同じもの、異なるもの、Azure SQL に新しく追加されたものを確認します。

  1. SSMS で Azure SQL Database 論理サーバーに接続します (まだ接続していない場合)。

  2. AdventureWorks データベースを右クリックし、[新しいクエリ] を選択します。

  3. よく知られているシステム関数 @@VERSION を実行して、デプロイしたバージョンを確認します。

    SELECT @@VERSION
    

    SELECT @@VERSION 関数の結果のスクリーンショット。

    結果は、SQL Server とは少し異なります。 これがバージョン番号が存在しない Azure SQL であることがわかります。 Azure SQL Database には、SQL Server の最新リリースと一致する最新の変更が含まれています。 ただし、システム関数 @@VERSION を使用することは、SQL Server の "クエリを実行" できることを確認するための一般的な方法です。

  4. 返される数値に基づいて、Azure SQL のデプロイの特定の種類を決定します。

    • 1: 個人用またはデスクトップエンジン
    • 2:Standard
    • 3:Enterprise
    • 4: エクスプレス
    • 5:SQL Database
    • 6:SQL Data Warehouse
    • 8: SQL Managed Instance

    予想される結果になるかどうかを確認するには、次の T-SQL コマンドを実行します。

    SELECT SERVERPROPERTY('EngineEdition');
    

    Azure SQL デプロイの結果のスクリーンショット。

    結果は 5 になります。SQL Managed Instance や SQL Server Enterprise ではなく Azure SQL Database を展開したので、これは当然の結果です。 Azure 仮想マシンでの SQL Server に対する特別な番号はありません。 この番号は、仮想マシンにインストールしたエディションに対応します。 Personal または Desktop Engine は、SQL Server では使用されなくなった以前のエディションです。

  5. カタログ ビューの sys.databasessys.objects を調べます。 通常は、これらのビューを調べて、システム データベースのインストールと状態、およびデータベース内のシステム オブジェクトを確認します。

    SELECT * FROM sys.databases;
    SELECT * FROM sys.objects;
    

    sys.databases と sys.objects の結果のスクリーンショット。

    最初の結果セットには、システム データベースの msdbtempdbmodel が記載されていません。 master とユーザー データベースのみが一覧表示されます。 論理サーバー内の master データベースは、SQL Server にインストールされている物理 master データベースと同じではありません。 Azure SQL Managed Instance では、他の SQL Server インスタンスと同じ通常のシステム データベースのセットが表示されます。

    ただし、sys.objects は通常の SQL Server インスタンスに似ています。 その事実は、サンプル AdventureWorksLT データベースのシステム テーブル、内部テーブル、ユーザー オブジェクトに当てはまります。

  6. すべてのスケジューラーがオンラインになっていて、2 仮想コア モデルでデプロイしたことを考慮して、予想される利用可能な CPU が検出されていることを確認します。

    SELECT * FROM sys.dm_os_schedulers where STATUS = 'VISIBLE ONLINE';
    

    sys.dm_os_schedulers の結果のスクリーンショット。

    2 つの VISIBLE ONLINE スケジューラが表示されるのは、SQL データベースが展開されている SQL Server インスタンスで 2 つの仮想コアが使用可能な場合に想定されることです。

  7. SQL Server のデプロイでは、通常、sys.dm_process_memory などの DMV を調べて、CPU、メモリ、worker の制限を確認できます。 ユーザーはデータベースをサポートするホストの詳細を公開したり制御したりしないため、この DMV は Azure SQL Database ではサポートされません。 DMV sys.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;
    

    リソース ガバナンスの制限を示す結果のスクリーンショット。

  8. SQL Server のデプロイを確認する一般的な方法は、アクティブな要求の一覧を調べることです。 SQL Server と同様に、sys.dm_exec_requests を使用して、現在実行中の SQL 要求を表示できます。

    SELECT * FROM sys.dm_exec_requests;
    

    dm_exec_requests を示す結果のスクリーンショット。

    Azure SQL Database に sys.dm_exec_requests を使用することは、SQL Server または SQL Managed Instance での使用とは異なります。 この DMV では、バックグラウンド タスク、または master と表示されるデータベース コンテキストを持たないバックグラウンド タスクなど、データベースに関連するアクティブな要求のみが表示されます。 この動作は、Azure SQL Database の展開の性質によるものです。