070-762日本語 無料問題集「Microsoft Developing SQL Databases (070-762日本語版)」
バックグラウンド
Employeeという名前のテーブルを含むHR1という名前のデータベースがあります。
定期的に変化する合計を含む、読み取り専用の履歴レポートがいくつかあります。レポートは複数のクエリを使用して給与計算費用を見積もります。クエリは同時に実行されます。
ユーザーは、給与見積もりレポートが常に実行されるわけではないと報告しています。データベースを監視して、レポートの実行を妨げる問題を特定する必要があります。
他のアプリケーションをサポートするデータベースサーバーにアプリケーションを配置することを計画しています。
データベースに必要なストレージの量を最小限に抑える必要があります。
従業員テーブル
次のTransact-SQLステートメントを使用して、Employeeテーブルを作成、設定、設定します。

応用
Employeesテーブルを更新するアプリケーションがあります。アプリケーションは、次のストアドプロシージャを同時に非同期的に呼び出します。
* UspA:このストアード・プロシージャーはEmployeeStatus列のみを更新します。
* UspB:このストアード・プロシージャーはEmployeePayRate列のみを更新します。
アプリケーションはビューを使用してデータへのアクセスを制御します。ビューは以下の要件を満たす必要があります。
* ビューがアクセスするテーブル内のすべての列へのユーザーアクセスを許可します。
* ビューが返す行だけに更新を制限します。
示す

データベース環境のパフォーマンスを分析しています。レポートが生成されるときに長期間にわたってロックが保持されていることがわかります。
もっと早くレポートを生成する必要があります。データベースは追加のリソースを使用してはなりません。
あなたは何をするべきか?
Employeeという名前のテーブルを含むHR1という名前のデータベースがあります。
定期的に変化する合計を含む、読み取り専用の履歴レポートがいくつかあります。レポートは複数のクエリを使用して給与計算費用を見積もります。クエリは同時に実行されます。
ユーザーは、給与見積もりレポートが常に実行されるわけではないと報告しています。データベースを監視して、レポートの実行を妨げる問題を特定する必要があります。
他のアプリケーションをサポートするデータベースサーバーにアプリケーションを配置することを計画しています。
データベースに必要なストレージの量を最小限に抑える必要があります。
従業員テーブル
次のTransact-SQLステートメントを使用して、Employeeテーブルを作成、設定、設定します。

応用
Employeesテーブルを更新するアプリケーションがあります。アプリケーションは、次のストアドプロシージャを同時に非同期的に呼び出します。
* UspA:このストアード・プロシージャーはEmployeeStatus列のみを更新します。
* UspB:このストアード・プロシージャーはEmployeePayRate列のみを更新します。
アプリケーションはビューを使用してデータへのアクセスを制御します。ビューは以下の要件を満たす必要があります。
* ビューがアクセスするテーブル内のすべての列へのユーザーアクセスを許可します。
* ビューが返す行だけに更新を制限します。
示す

データベース環境のパフォーマンスを分析しています。レポートが生成されるときに長期間にわたってロックが保持されていることがわかります。
もっと早くレポートを生成する必要があります。データベースは追加のリソースを使用してはなりません。
あなたは何をするべきか?
正解:A
解答を投票する
解説: (JPNTest メンバーにのみ表示されます)
Microsoft Azure SQLデータベースを監視しています。
データベースで高いCPU消費が発生しています。
どのクエリが最も累積的なCPUを使用しているかを判断する必要があります。
Transact-SQLステートメントをどのように完成させるべきですか? 回答するには、適切なTransact-SQLセグメントを正しい場所にドラッグします。 各Transact-SQLセグメントは、1回、複数回、またはまったく使用しないことができます。
コンテンツを表示するには、ペイン間の分割バーをドラッグするか、スクロールする必要があります。

データベースで高いCPU消費が発生しています。
どのクエリが最も累積的なCPUを使用しているかを判断する必要があります。
Transact-SQLステートメントをどのように完成させるべきですか? 回答するには、適切なTransact-SQLセグメントを正しい場所にドラッグします。 各Transact-SQLセグメントは、1回、複数回、またはまったく使用しないことができます。
コンテンツを表示するには、ペイン間の分割バーをドラッグするか、スクロールする必要があります。

正解:

Explanation

Box 1: sys.dm_exec_query_stats
sys.dm_exec_query_stats returns aggregate performance statistics for cached query plans in SQL Server.
Box 2: highest_cpu_queries.total_worker_time DESC
Sort on total_worker_time column
Example: The following example returns information about the top five queries ranked by average CPU time.
This example aggregates the queries according to their query hash so that logically equivalent queries are grouped by their cumulative resource consumption.
USE AdventureWorks2012;
GO
SELECT TOP 5 query_stats.query_hash AS "Query Hash",
SUM(query_stats.total_worker_time) / SUM(query_stats.execution_count) AS "Avg CPU Time", MIN(query_stats.statement_text) AS "Statement Text" FROM (SELECT QS.*, SUBSTRING(ST.text, (QS.statement_start_offset/2) + 1, ((CASE statement_end_offset WHEN -1 THEN DATALENGTH(ST.text) ELSE QS.statement_end_offset END
- QS.statement_start_offset)/2) + 1) AS statement_text
FROM sys.dm_exec_query_stats AS QS
CROSS APPLY sys.dm_exec_sql_text(QS.sql_handle)as ST) as query_stats
GROUP BY query_stats.query_hash
ORDER BY 2 DESC;
References: https://msdn.microsoft.com/en-us/library/ms189741.aspx
ドラッグドロップ
これはケーススタディです。ケーススタディは個別に時間を計られません。それぞれのケースを完了するのに必要なだけ試験時間を使用できます。ただし、この試験には追加のケーススタディとセクションがある場合があります。この試験に含まれるすべての質問を指定された時間内に完了できるように、時間を管理する必要があります。
ケーススタディに含まれる質問に回答するには、ケーススタディで提供される情報を参照する必要があります。ケーススタディには、ケーススタディで説明されているシナリオに関する詳細情報を提供する展示やその他のリソースが含まれている場合があります。このケーススタディでは、各質問は他の質問から独立しています。
このケーススタディの最後に、レビュー画面が表示されます。この画面では、解答を確認して、試験の次のセクションに進む前に変更を加えることができます。新しいセクションを開始すると、このセクションに戻ることはできません。
ケーススタディを開始するには
このケーススタディの最初の質問を表示するには、[次へ]ボタンをクリックします。質問に答える前に、左側のペインのボタンを使用して、ケーススタディの内容を確認してください。これらのボタンをクリックすると、ビジネス要件などの情報が表示されます。既存の環境、および問題の記述。ケーススタディに[すべての情報]タブがある場合、表示される情報は後続のタブに表示される情報と同じであることに注意してください。質問に答える準備ができたら、[質問]ボタンをクリックして質問に戻ります。
バックグラウンド
Salesという名前のデータベースがあります。
Customerテーブルには、顧客が行った最後の注文の日付を格納する列が含まれています。
Leadsという名前のテーブルを作成する予定です。 Leadsテーブルには、約20,000レコードが含まれていると予想されます。
Leadsテーブルのストレージ要件を最小限に抑える必要があります。
テーブル

第3正規形に準拠するようにテーブルデザインを変更し始める必要があります。
各テーブルでどの列を削除する必要がありますか?答える?適切な列名を正しい場所にドラッグします。各列名は、1回使用することも、複数回使用することも、まったく使用しないこともあります。コンテンツを表示するには、ペイン間で分割バーをドラッグするか、スクロールする必要がある場合があります。

これはケーススタディです。ケーススタディは個別に時間を計られません。それぞれのケースを完了するのに必要なだけ試験時間を使用できます。ただし、この試験には追加のケーススタディとセクションがある場合があります。この試験に含まれるすべての質問を指定された時間内に完了できるように、時間を管理する必要があります。
ケーススタディに含まれる質問に回答するには、ケーススタディで提供される情報を参照する必要があります。ケーススタディには、ケーススタディで説明されているシナリオに関する詳細情報を提供する展示やその他のリソースが含まれている場合があります。このケーススタディでは、各質問は他の質問から独立しています。
このケーススタディの最後に、レビュー画面が表示されます。この画面では、解答を確認して、試験の次のセクションに進む前に変更を加えることができます。新しいセクションを開始すると、このセクションに戻ることはできません。
ケーススタディを開始するには
このケーススタディの最初の質問を表示するには、[次へ]ボタンをクリックします。質問に答える前に、左側のペインのボタンを使用して、ケーススタディの内容を確認してください。これらのボタンをクリックすると、ビジネス要件などの情報が表示されます。既存の環境、および問題の記述。ケーススタディに[すべての情報]タブがある場合、表示される情報は後続のタブに表示される情報と同じであることに注意してください。質問に答える準備ができたら、[質問]ボタンをクリックして質問に戻ります。
バックグラウンド
Salesという名前のデータベースがあります。
Customerテーブルには、顧客が行った最後の注文の日付を格納する列が含まれています。
Leadsという名前のテーブルを作成する予定です。 Leadsテーブルには、約20,000レコードが含まれていると予想されます。
Leadsテーブルのストレージ要件を最小限に抑える必要があります。
テーブル

第3正規形に準拠するようにテーブルデザインを変更し始める必要があります。
各テーブルでどの列を削除する必要がありますか?答える?適切な列名を正しい場所にドラッグします。各列名は、1回使用することも、複数回使用することも、まったく使用しないこともあります。コンテンツを表示するには、ペイン間で分割バーをドラッグするか、スクロールする必要がある場合があります。

正解:

Explanation

Box 1: SupplierName
SupplierName should be moved to a separate Supplier table.
Box 2: ProductName
ProductName is already defined in the Products table.
データベーステーブルが2つあります。 表1はパーティション表であり、表2は非パーティション表です。
ユーザーは、クエリが完了するまでに長い時間がかかると報告しています。 Microsoft SQL Serverプロファイラを使って、クエリを監視します。 Table 1とTable 2のロックのエスカレーションを観察します。
Table1のエスカレーションをパーティションレベルにロックし、Table2のすべてのロックのエスカレーションを防止する必要があります。
各テーブルに対してどのTransact-SQLステートメントを実行する必要がありますか。 回答するには、適切なTransact-SQLステートメントを正しいテーブルにドラッグします。 各コマンドは、1回、複数回、またはまったく使用しないことができます。 コンテンツを表示するには、ペイン間の分割バーをドラッグするか、スクロールする必要があります。

ユーザーは、クエリが完了するまでに長い時間がかかると報告しています。 Microsoft SQL Serverプロファイラを使って、クエリを監視します。 Table 1とTable 2のロックのエスカレーションを観察します。
Table1のエスカレーションをパーティションレベルにロックし、Table2のすべてのロックのエスカレーションを防止する必要があります。
各テーブルに対してどのTransact-SQLステートメントを実行する必要がありますか。 回答するには、適切なTransact-SQLステートメントを正しいテーブルにドラッグします。 各コマンドは、1回、複数回、またはまったく使用しないことができます。 コンテンツを表示するには、ペイン間の分割バーをドラッグするか、スクロールする必要があります。

正解:

Explanation

Since SQL Server 2008 you can also control how SQL Server performs the Lock Escalation - through the ALTER TABLE statement and the property LOCK_ESCALATION. There are 3 different options available:
Box 1: Table1, Auto
The default option is TABLE, means that SQL Server *always* performs the Lock Escalation to the table level -even when the table is partitioned. If you have your table partitioned, and you want to have a Partition Level Lock Escalation (because you have tested your data access pattern, and you don't cause deadlocks with it), then you can change the option to AUTO. AUTO means that the Lock Escalation is performed to the partition level, if the table is partitioned, and otherwise to the table level.
Box 2: Table 2, DISABLE
With the option DISABLE you can completely disable the Lock Escalation for that specific table.
For partitioned tables, use the LOCK_ESCALATION option of ALTER TABLE to escalate locks to the HoBT level instead of the table or to disable lock escalation.
References:
http://www.sqlpassion.at/archive/2014/02/25/lock-escalations/
Microsoft Azure SQLデータベースがあります。
クエリによっては実行に時間がかかるものがあります。
長期実行クエリによって、ユーザーがデータベース内のデータを更新できないようにするかどうかを識別する必要があります。
どのクエリを実行しますか? 回答するには、回答領域で適切なオプションを選択します。
注:それぞれ正しい選択は1ポイントの価値があります。

クエリによっては実行に時間がかかるものがあります。
長期実行クエリによって、ユーザーがデータベース内のデータを更新できないようにするかどうかを識別する必要があります。
どのクエリを実行しますか? 回答するには、回答領域で適切なオプションを選択します。
注:それぞれ正しい選択は1ポイントの価値があります。

正解:

Explanation

Box 1: sys.dm_tran_locks
sys.dm_tran_locks returns information about currently active lock manager resources in SQL Server 2017.
Each row represents a currently active request to the lock manager for a lock that has been granted or is waiting to be granted.
Box 2: sys.dm_os_waiting_tasks
sys.dm_tran_locks.lock_owner_address is the memory address of the internal data structure that is used to track this request. This column can be joined the with resource_address column in sys.dm_os_waiting_tasks.
References:
https://docs.microsoft.com/en-us/sql/relational-databases/system-dynamic-management-views/sys-dm-tran-locks
注:この質問は、同じシナリオを提示する一連の質問の一部です。シリーズの各質問には固有の解決策が含まれています。解決策が記載された目標を満たしているかどうかを判断します。
Customer、CustomerInfo、OrderHeader、およびOrderDetailsの各テーブルを順番に更新するストアドプロシージャを作成する必要があります。
ストアドプロシージャを確認する必要があります。
- 単一のトランザクション内で実行されます。
- OrderHeaderテーブルとOrderDetailテーブルへの更新のステータスに関係なく、CustomerテーブルとCustomerInfoテーブルへの更新をコミットします。
- 4つすべてのテーブルへの更新が成功すると、4つすべてのテーブルへの変更をコミットします。
解決方法:次のTransact-SQLセグメントを含むストアドプロシージャを作成します。

解決策は目標を満たしていますか?
Customer、CustomerInfo、OrderHeader、およびOrderDetailsの各テーブルを順番に更新するストアドプロシージャを作成する必要があります。
ストアドプロシージャを確認する必要があります。
- 単一のトランザクション内で実行されます。
- OrderHeaderテーブルとOrderDetailテーブルへの更新のステータスに関係なく、CustomerテーブルとCustomerInfoテーブルへの更新をコミットします。
- 4つすべてのテーブルへの更新が成功すると、4つすべてのテーブルへの変更をコミットします。
解決方法:次のTransact-SQLセグメントを含むストアドプロシージャを作成します。

解決策は目標を満たしていますか?
正解:A
解答を投票する
解説: (JPNTest メンバーにのみ表示されます)
Table1という名前のテーブルを使用するレポートアプリケーションがあります。 Table1への更新を実行するために、新しいバッチ更新プロセスを展開します。
環境は以下のプロパティーで構成されています。
* データベースはデフォルトの分離設定で設定されています。
* アプリケーションとプロセスはデフォルトのトランザクション処理を使用します。
アプリケーションが、プロセスによって使用されている行にアクセスできないことがわかります。
以下の要件があります。
* アプリケーションがプロセスによってブロックされていないことを確認してください。
* アプリケーションが一貫したデータビューを持つようにする
* アプリケーションがダーティデータを読み取らないようにしてください。
問題を解決し、最小限の管理作業で要件を満たす必要があります。
あなたは何をするべきか?
環境は以下のプロパティーで構成されています。
* データベースはデフォルトの分離設定で設定されています。
* アプリケーションとプロセスはデフォルトのトランザクション処理を使用します。
アプリケーションが、プロセスによって使用されている行にアクセスできないことがわかります。
以下の要件があります。
* アプリケーションがプロセスによってブロックされていないことを確認してください。
* アプリケーションが一貫したデータビューを持つようにする
* アプリケーションがダーティデータを読み取らないようにしてください。
問題を解決し、最小限の管理作業で要件を満たす必要があります。
あなたは何をするべきか?
正解:A
解答を投票する
解説: (JPNTest メンバーにのみ表示されます)
注:この質問は、同じシナリオを提示する一連の質問の一部です。このシリーズの各質問には固有の解決策が含まれています。解決策が記載されている目標を満たしているかどうかを判断します。
ストアドプロシージャを使用する新しいアプリケーションを開発しています。ストアドプロシージャは、数千のレコードを単一のバッチとしてEmployeesテーブルに挿入します。
ユーザーは、ストアドプロシージャが更新されてからアプリケーションの応答時間が悪化したと報告します。 Microsoft SQL Serverインスタンスのディスク関連のパフォーマンスカウンターを調べて、ディスクパフォーマンスの問題を含むいくつかの高い値を観察します。
待機統計を調べて、異常に高いWRITELOG値を観察します。
アプリケーションの応答時間を改善する必要があります。
解決方法:Employeesテーブルに一意のクラスタ化インデックスを追加します。
解決策は目標を満たしていますか?
ストアドプロシージャを使用する新しいアプリケーションを開発しています。ストアドプロシージャは、数千のレコードを単一のバッチとしてEmployeesテーブルに挿入します。
ユーザーは、ストアドプロシージャが更新されてからアプリケーションの応答時間が悪化したと報告します。 Microsoft SQL Serverインスタンスのディスク関連のパフォーマンスカウンターを調べて、ディスクパフォーマンスの問題を含むいくつかの高い値を観察します。
待機統計を調べて、異常に高いWRITELOG値を観察します。
アプリケーションの応答時間を改善する必要があります。
解決方法:Employeesテーブルに一意のクラスタ化インデックスを追加します。
解決策は目標を満たしていますか?
正解:B
解答を投票する
解説: (JPNTest メンバーにのみ表示されます)
注:この質問は、同じシナリオを提示する一連の質問の一部です。シリーズの各質問には固有の解決策が含まれています。解決策が記載されている目標を満たしているかどうかを判断します。
Employeesという名前のテーブルを含むデータベースがあります。このテーブルには、会社の従業員に関する情報が格納されています。
次のビジネスルールを実装して実施する必要があります。
- [給与]列で受け入れられる値を制限します。
- 15,000ドル未満、300,000ドルを超える給与が入力されないようにします。
- 論理式を使用して有効な値を決定してください。
- DELETE文を実行するときにデータの整合性を検証しないでください。
解決方法:テーブルにFOR UPDATEトリガを実装します。
解決策は目標を満たしていますか?
Employeesという名前のテーブルを含むデータベースがあります。このテーブルには、会社の従業員に関する情報が格納されています。
次のビジネスルールを実装して実施する必要があります。
- [給与]列で受け入れられる値を制限します。
- 15,000ドル未満、300,000ドルを超える給与が入力されないようにします。
- 論理式を使用して有効な値を決定してください。
- DELETE文を実行するときにデータの整合性を検証しないでください。
解決方法:テーブルにFOR UPDATEトリガを実装します。
解決策は目標を満たしていますか?
正解:A
解答を投票する
解説: (JPNTest メンバーにのみ表示されます)
次のTransact-SQLステートメントを実行して、FactSalesというデータベーステーブルを作成します。

ix_FactSales_EmployeeKeyインデックスを変更せずにインデックスを最適化する必要があります。
テーブルの列ストアインデックスを実装する必要があります。
Transact-SQLコードをどのように完成させるべきですか? 回答するには、回答領域で適切なTransact-SQLセグメントを選択します。
注:それぞれ正しい選択は1ポイントの価値があります。


ix_FactSales_EmployeeKeyインデックスを変更せずにインデックスを最適化する必要があります。
テーブルの列ストアインデックスを実装する必要があります。
Transact-SQLコードをどのように完成させるべきですか? 回答するには、回答領域で適切なTransact-SQLセグメントを選択します。
注:それぞれ正しい選択は1ポイントの価値があります。

正解:



