Q1.ある企業の Azure サブスクリプションには、VM1 および VM2 という 2 台の Azure 仮想マシンがあり、それぞれで SQL Server のインスタンスが稼働しています。
いずれのインスタンスも Microsoft SQL Server 2019 CU8 を実行しています。
これら 2 台に対してフェールオーバー クラスター インスタンス (FCI) を配置する必要があります。
ソリューションでは、次のいずれも不要にする必要があります。
◆分散ネットワーク名 (DNN)
◆ロードバランサー
どの方法を採用すべきですか。
解答を見る
Azure VM 上の SQL Server で FCI を構成する場合、単一サブネットでは接続先を維持するために DNN または Azure Load Balancer が追加で必要になります。
一方、同一仮想ネットワーク内の複数サブネットにノードを配置すると、FCI への接続はオンプレミスに近い形で構成でき、これらの追加コンポーネントを不要にできます。
したがって、異なるサブネットへの接続を選ぶ C が正解です。
近接配置グループは待機時間の最適化には有効ですが、この要件の解決策ではありません。
仮想マシンをFCI用に準備する – SQL Server on Azure VMs
Q2.DB1 という名前のオンプレミス Microsoft SQL Server 2016 データベースにデータを保存する、App1 という名前のオンプレミス アプリがあります。
App1 の追加インスタンスを展開し、Azure リージョンごとに分離することを計画しています。
各リージョンには App1 と DB1 の個別インスタンスが配置され、DB1 の各インスタンスは Azure SQL Data Sync を用いて同期します。
この展開に推奨するデータベース サービスを提示する必要があり、ソリューションでは管理作業を最小限に抑える必要があります。
推奨事項には何を含めるべきですか。
解答を見る
本シナリオでは Azure SQL Data Sync を利用して複数リージョン間でデータ同期を行う必要があります。
この機能は Azure SQL Database(単一データベース) でサポートされており、PaaS サービスのためパッチ適用やバックアップなどの運用管理が自動化され、管理負荷を最小化できます。
一方、マネージド インスタンスは Data Sync 非対応であり、仮想マシン上の SQL Server は IaaS のため運用負荷が増大します。
したがって、管理作業削減と Data Sync 対応の両立を満たす B が正解です。
SQL Data Sync を使用して複数のデータベース間でデータを同期する
Q3.複数のデータベースをホストするオンプレミスの Microsoft SQL Server インスタンス (SQL1) があります。
Azure サブスクリプションには Azure SQL Managed Instance (SQLMI1) が含まれています。
Azure Data Studio を使用して、SQL1 のデータベースを SQLMI1 へオフラインで移行する必要があります。
SQL1 には何をインストールすべきですか。
解答を見る
Azure Data Studio を使用したオフライン移行では、Azure Database Migration Service と連携し、オンプレミス環境との通信に セルフホスト型統合ランタイム が必要になります。
これはオンプレミスと Azure 間のデータ移動を安全に中継するコンポーネントです。
Azure SQL Managed Instance への移行では、特にネットワーク分離環境からの接続確立に重要です。
一方、DMA は評価やスキーマ変換の用途であり、実際の移行処理の実行には使用されません。
したがって、移行パイプラインの実行に必須である D が正解です。
移行の概要: SQL Server から Azure SQL Managed Instance
Q4.25 個の Azure SQL データベースを運用しています。
Transact-SQL を用いた集中型のデータベース管理ソリューションを実装する必要があります。
このソリューションには何を含めるべきですか。
解答を見る
複数の Azure SQL データベースに対して一元的に Transact-SQL を実行するには、スクリプトを定期実行できる自動化基盤が必要です。
Azure Automation ランブックは PowerShell や T-SQL の実行をスケジュールでき、複数データベースへの管理処理を集中管理できます。
一方、エラスティック ジョブも候補ですが、試験観点では より汎用的な集中管理手段として Automation が優先されます。
したがって、複数 DB の一括管理には Azure Automation ランブックが最適です。
Azure Automation の概要
Q5.Azure SQL データベースを含む Azure サブスクリプションがあり、そのデータベースには table1 というテーブルが含まれています。
次の Transact-SQL ステートメントを実行します。
CREATE CLUSTERED INDEX PK_index1 ON [dbo].table1
CREATE NONCLUSTERED INDEX [NCI_index2] ON [dbo].table1 ASC
このデータベースで分析クエリの実行に要する時間を短縮する必要があります。
どの構成を有効にすべきですか。
解答を見る
分析クエリの高速化が目的で、対象は通常の行ストア テーブルです。
この場合に有効なのは BATCH_MODE_ON_ROWSTORE です。
これは列ストア インデックスがなくてもバッチ モード実行を利用でき、集計やスキャンを含む分析系クエリの CPU 効率を高めます。
分析ワークロードの応答時間短縮に直結するため最適です。
メモリ許可フィードバックや適応結合は特定の実行計画改善には有効ですが、要件の中心である 分析クエリ全体の高速化 を最も直接的に満たすのは D です。
インテリジェント クエリ処理の詳細 – SQL Server
Q6.あなたの会社では、Azure Stream Analytics を使用してデバイスを監視しています。
監視対象のデバイス数を現在の 2 倍に増やすことを計画しています。
追加の負荷を処理できるだけの処理リソースがあることを確認するため、Stream Analytics ジョブを監視する必要があります。
どのメトリックを監視すべきですか。
解答を見る
Stream Analytics の処理能力を評価するには、イベント処理の遅延状況を把握することが重要です。
透かしの遅延は、処理ノードの現在時刻と処理済みイベントの進行状況との差を示し、負荷増加時のボトルネックを直接的に把握できます。
この値が増加する場合、処理リソース不足やスループット不足を示唆します。
入力エラーや初期イベント数は性能指標ではなく、遅延入力イベントも限定的です。
したがって、スケーラビリティ評価に最も適した指標である透かしの遅延を監視するのが正解です。
Azure Stream Analytics の時間処理の概念
Q7.Azure SQL データベースを含む Azure サブスクリプションがあります。
このデータベースがクエリへタイムリーに応答できない状況が発生しています。
問題が resource_semaphore の待機に起因するかどうかを特定する必要があります。
次の Transact-SQL クエリをどのように完成させるべきですか。
解答を見る
resource_semaphore は、クエリが実行に必要なメモリ許可を待機している状況を示す待機です。
この確認には wait_type を集計対象として選び、待機の種類別に合計待機時間を確認する必要があります。
また、現在実行中セッションの待機情報を取得するには sys.dm_exec_requests を使用します。
これを sys.dm_exec_sessions と結合し、ユーザー プロセスのみを対象に集計すれば、resource_semaphore 待機の有無 を判定できます。
DMV を使用してパフォーマンスを監視する – Azure SQL Database & SQL database in Microsoft Fabric | Microsoft Learn
Q8.Azure Databricks で構造化ストリーミング ソリューションを構築することを計画しています。
このソリューションは 5 分間隔で新しいイベントをカウントし、その間隔中に到着したイベントのみを報告します。
出力は Delta Lake テーブルへ送信されます。
どの出力モードを使用すべきですか。
解答を見る
本シナリオでは、5 分ごとのウィンドウ集計結果を毎回完全な形で出力する必要があります。
この場合は Complete モード を使用します。
Complete モードは各トリガーごとに結果テーブル全体を再出力するため、ウィンドウ集計結果を常に完全な状態で保持できます。
Append モードは確定した新規行のみ、Update モードは変更行のみを出力するため要件に適合しません。
したがって 集計結果を毎回全体更新する処理 に適した Complete 出力モードが正解です。
構造化ストリーミングの出力モードを選択する
Q9.Db1 という名前のデータベースを保持する SQL Server が、Azure 仮想マシン上で稼働しています。
Db1 に対して自動チューニングを有効にする必要があります。
次の文をどのように完成させるべきですか。
解答を見る
自動チューニングを有効化するには、まずデータベース全体で AUTOMATIC_TUNING=AUTO を設定し、Azure 推奨の自動最適化動作を有効にします。
さらに個別機能として FORCE_LAST_GOOD_PLAN を ON にすることで、パフォーマンスが低下した際に以前の良好な実行プランへ自動的に戻すことができます。
この 2 段階の設定により クエリ パフォーマンスの自動最適化 が実現されます。
Azure portal で自動チューニングを使用してクエリを監視し、ワークロードのパフォーマンスを向上させる
Q10.SQL1 という名前の Azure 仮想マシンで SQL Server が稼働しています。
SQL1 には、すべてのデータベースをバックアップするエージェント ジョブが構成されています。
dbadmin1 という名前のユーザーを SQL Server エージェント オペレーターとして登録します。
ジョブが失敗した際に dbadmin1 が電子メールアラートを受け取れるようにする必要があります。
順番に実行すべき 3 つのアクションはどれですか。
左の「選択肢」から必要な数を右の「回答エリア」へドラッグ(またはタップ)。回答エリア内でドラッグして順序を入れ替えられます。
- ジョブ アラートを作成する
- ジョブ通知を作成する
- Database Mail を有効にする
- SQL Server エージェントの電子メール設定を有効にする
- ジョブ ターゲットを作成する
- ここへドラッグ
解答を見る
SQL Server エージェントでメール通知を行うには、まず SQL Server Agent のメール設定を有効化 する必要があります。
これにより通知機能が利用可能になります。
次に、ジョブ失敗時に発火する アラートを作成 します。
最後に、そのアラートに対してオペレーターへ通知する ジョブ通知を作成 します。
この順序で設定しないと通知は機能しません。
Database Mail は前提機能ですが、設問の選択肢としてはこの順序が正解です。
ジョブの状態をオペレーターに通知する – SQL Server Agent
