70-762日本語 無料問題集「Microsoft Developing SQL Databases (70-762日本語版)」
注:この質問は、同じシナリオを提示する一連の質問の一部です。シリーズの各質問には固有の解決策が含まれています。解決策が記載されている目標を満たしているかどうかを判断します。
Employeesという名前のテーブルを含むデータベースがあります。このテーブルには、会社の従業員に関する情報が格納されています。
次のビジネスルールを実装して実施する必要があります。
- [給与]列で受け入れられる値を制限します。
- 15,000ドル未満、300,000ドルを超える給与が入力されないようにします。
- 論理式を使用して有効な値を決定してください。
- DELETE文を実行するときにデータの整合性を検証しないでください。
解決策:テーブルにチェック制約を実装します。
解決策は目標を満たしていますか?
Employeesという名前のテーブルを含むデータベースがあります。このテーブルには、会社の従業員に関する情報が格納されています。
次のビジネスルールを実装して実施する必要があります。
- [給与]列で受け入れられる値を制限します。
- 15,000ドル未満、300,000ドルを超える給与が入力されないようにします。
- 論理式を使用して有効な値を決定してください。
- DELETE文を実行するときにデータの整合性を検証しないでください。
解決策:テーブルにチェック制約を実装します。
解決策は目標を満たしていますか?
正解:B
解答を投票する
解説: (JPNTest メンバーにのみ表示されます)
注:この質問は、同じシナリオを提示する一連の質問の一部です。このシリーズの各質問には固有の解決策が含まれています。解決策が記載されている目標を満たしているかどうかを判断します。
ストアドプロシージャを使用する新しいアプリケーションを開発しています。ストアドプロシージャは、数千のレコードを単一のバッチとしてEmployeesテーブルに挿入します。
ユーザーは、ストアドプロシージャが更新されてからアプリケーションの応答時間が悪化したと報告します。 Microsoft SQL Serverインスタンスのディスク関連のパフォーマンスカウンターを調べて、ディスクパフォーマンスの問題を含むいくつかの高い値を観察します。
待機統計を調べて、異常に高いWRITELOG値を観察します。
アプリケーションの応答時間を改善する必要があります。
解決策:データベースに接続するときに暗黙のトランザクションを使用するようにアプリケーションを更新します。
解決策は目標を満たしていますか?
ストアドプロシージャを使用する新しいアプリケーションを開発しています。ストアドプロシージャは、数千のレコードを単一のバッチとしてEmployeesテーブルに挿入します。
ユーザーは、ストアドプロシージャが更新されてからアプリケーションの応答時間が悪化したと報告します。 Microsoft SQL Serverインスタンスのディスク関連のパフォーマンスカウンターを調べて、ディスクパフォーマンスの問題を含むいくつかの高い値を観察します。
待機統計を調べて、異常に高いWRITELOG値を観察します。
アプリケーションの応答時間を改善する必要があります。
解決策:データベースに接続するときに暗黙のトランザクションを使用するようにアプリケーションを更新します。
解決策は目標を満たしていますか?
正解:A
解答を投票する
解説: (JPNTest メンバーにのみ表示されます)
あなたはUserEventsという名前のよく使われるデータベーステーブルをプロファイリングしています。 READ_COMMITED_SNAPSHOTデータベースオプションがOFFに設定されています。
トレース結果では、データベース内のロック数がメモリーまたは構成のしきい値を超えていなくても、1つのストアード・プロシージャーに対してロックのエスカレーションが発生したことがわかります。 以下の表にイベントの詳細を示します。

ロックのエスカレーションを回避するために、uspDeleteEventsストアード・プロシージャーを変更する必要があります。
ストアドプロシージャをどのように変更しますか。 回答するには、回答領域で適切なTransact-SQLセグメントを選択します。

トレース結果では、データベース内のロック数がメモリーまたは構成のしきい値を超えていなくても、1つのストアード・プロシージャーに対してロックのエスカレーションが発生したことがわかります。 以下の表にイベントの詳細を示します。

ロックのエスカレーションを回避するために、uspDeleteEventsストアード・プロシージャーを変更する必要があります。
ストアドプロシージャをどのように変更しますか。 回答するには、回答領域で適切なTransact-SQLセグメントを選択します。

正解:

Explanation

Delete up to 4000 rows at a time. Keep doing it until all rows have been deleted.
Note that @@ROWCOUNT returns the number of rows affected by the last statement.
References: https://msdn.microsoft.com/en-us/library/ms187316.aspx
ケーススタディ
バックグラウンド
Employeeという名前のテーブルを含むHR1という名前のデータベースがあります。
定期的に変化する合計を含む、読み取り専用の履歴レポートがいくつかあります。 レポートは複数のクエリを使用して給与計算費用を見積もります。 クエリは同時に実行されます。 ユーザーは、給与見積もりレポートが常に実行されるとは限らないと報告しています。 データベースを監視して、レポートの実行を妨げる問題を特定する必要があります。
他のアプリケーションをサポートするデータベースサーバーにアプリケーションを配置することを計画しています。 データベースに必要なストレージの量を最小限に抑える必要があります。
従業員テーブル
次のTransact-SQLステートメントを使用して、Employeeテーブルを作成、設定、設定します。

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

4つのインデックスには大量のディスク容量が必要であることがわかります。 インデックスが使用しているディスク容量を減らす必要があります。
既存のインデックスを置き換えるために単一のインデックスを作成する必要があります。
ソリューションを開発するためにどの3つのTransact-SQLセグメントを使用するべきですか? 回答するには、適切なTransact-SQLセグメントをTransact-SQLセグメントのリストから回答領域に移動し、正しい順序で配置します。
注:複数の順序の回答選択が正しいです。 あなたが選択した正しい注文のいずれかに対するクレジットを受け取ります。

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

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

4つのインデックスには大量のディスク容量が必要であることがわかります。 インデックスが使用しているディスク容量を減らす必要があります。
既存のインデックスを置き換えるために単一のインデックスを作成する必要があります。
ソリューションを開発するためにどの3つのTransact-SQLセグメントを使用するべきですか? 回答するには、適切なTransact-SQLセグメントをTransact-SQLセグメントのリストから回答領域に移動し、正しい順序で配置します。
注:複数の順序の回答選択が正しいです。 あなたが選択した正しい注文のいずれかに対するクレジットを受け取ります。

正解:

Explanation

Scenario: You observe that the four indexes require a large amount of disk space. You must reduce the amount of disk space that the indexes are using.
Current indexes:

注:この質問は同じシナリオを使用する一連の質問の一部です。 あなたの便宜のために、シナリオは各質問で繰り返されます。 各質問はそれぞれ異なる目標と答えの選択を提示しますが、シナリオの本文はこのシリーズの各質問でまったく同じです。
BlogCategory、BlogEntry、ProductReview、Product、およびSalesPersonの各テーブルを含むデータベースがあります。 テーブルは、次のTransact SQLステートメントを使用して作成されました。

以下の要件を満たすようにProductReviewテーブルを変更する必要があります。
* テーブルはProductテーブルのProductID列を参照する必要があります
* ProductReviewテーブル内の既存のレコードはProductテーブルで検証してはいけません。
* レコードがProductReviewテーブルによって参照されている場合、Productテーブル内のレコードの削除は許可されません。
* Productテーブル内のレコードへの変更はProductReviewテーブルに伝播する必要があります。
次のデータベーステーブルもあります:Order、ProductTypes、およびSalesHistory、これらのテーブルのtransactions-SQLステートメントは使用できません。
以下の要件を満たすようにOrdersテーブルを変更する必要があります。
* テーブルにINSERT権限を付与せずにテーブルに新しい行を作成します。
* 注文が完了したかどうかを注文を出した販売員に通知してください。
SalesHistoryテーブルに次の制約を追加する必要があります。
* フィールドをレコード識別子として使用できるようにするSaleID列の制約
* ProductTypesテーブルのProduct列を参照するためにProductID列を使用する定数
* 列にNULL値を持つ1行を許可するCategoryID列に対する制約
* SalePrice列を4人を超える財務部門ユーザーの値に制限する制約は、SalesYTD列の値が特定のしきい値を超える営業担当者のSalesHistoryテーブルからデータを取得できる必要があります。
SalesOrderという名前のメモリ最適化テーブルを作成する予定です。 テーブルは以下の要件を満たす必要があります。
* テーブルには1000万のユニークな受注がなければなりません。
* テーブルは、I / O操作を最小限に抑えるためにチェックポイントを使用しなければならず、トランザクションロギングを使用してはいけません。
* データ損失は許容範囲内です。
完全等価操作を使用してWhere句を使用するSalesOrderテーブルに対するクエリのパフォーマンスを最適化する必要があります。
ProductReviewテーブルの参照整合性を有効にする必要があります。
関連するTransact-SQLステートメントをどのように完成させるべきですか? 答える? 回答領域で適切なTransact-SQLセグメントを選択します。

BlogCategory、BlogEntry、ProductReview、Product、およびSalesPersonの各テーブルを含むデータベースがあります。 テーブルは、次のTransact SQLステートメントを使用して作成されました。

以下の要件を満たすようにProductReviewテーブルを変更する必要があります。
* テーブルはProductテーブルのProductID列を参照する必要があります
* ProductReviewテーブル内の既存のレコードはProductテーブルで検証してはいけません。
* レコードがProductReviewテーブルによって参照されている場合、Productテーブル内のレコードの削除は許可されません。
* Productテーブル内のレコードへの変更はProductReviewテーブルに伝播する必要があります。
次のデータベーステーブルもあります:Order、ProductTypes、およびSalesHistory、これらのテーブルのtransactions-SQLステートメントは使用できません。
以下の要件を満たすようにOrdersテーブルを変更する必要があります。
* テーブルにINSERT権限を付与せずにテーブルに新しい行を作成します。
* 注文が完了したかどうかを注文を出した販売員に通知してください。
SalesHistoryテーブルに次の制約を追加する必要があります。
* フィールドをレコード識別子として使用できるようにするSaleID列の制約
* ProductTypesテーブルのProduct列を参照するためにProductID列を使用する定数
* 列にNULL値を持つ1行を許可するCategoryID列に対する制約
* SalePrice列を4人を超える財務部門ユーザーの値に制限する制約は、SalesYTD列の値が特定のしきい値を超える営業担当者のSalesHistoryテーブルからデータを取得できる必要があります。
SalesOrderという名前のメモリ最適化テーブルを作成する予定です。 テーブルは以下の要件を満たす必要があります。
* テーブルには1000万のユニークな受注がなければなりません。
* テーブルは、I / O操作を最小限に抑えるためにチェックポイントを使用しなければならず、トランザクションロギングを使用してはいけません。
* データ損失は許容範囲内です。
完全等価操作を使用してWhere句を使用するSalesOrderテーブルに対するクエリのパフォーマンスを最適化する必要があります。
ProductReviewテーブルの参照整合性を有効にする必要があります。
関連するTransact-SQLステートメントをどのように完成させるべきですか? 答える? 回答領域で適切なTransact-SQLセグメントを選択します。

正解:

Explanation

Box 1: WITH NOCHECK
We should use WITH NOCHECK as existing records in the ProductReview table must not be validated with the Product table.
Box 2: ON DELETE NO ACTION ON DELETE NO CASCADE
Deletes should not be allowed, so we use ON DELETE NO ACTION.
Updates should be allowed, so we use ON DELETE NO CASCADE
NO ACTION: the Database Engine raises an error, and the update action on the row in the parent table is rolled back.
CASCADE: corresponding rows are updated in the referencing table when that row is updated in the parent table.
Note: ON DELETE { NO ACTION | CASCADE | SET NULL | SET DEFAULT }
Specifies what action happens to rows in the table that is altered, if those rows have a referential relationship and the referenced row is deleted from the parent table. The default is NO ACTION.
ON UPDATE { NO ACTION | CASCADE | SET NULL | SET DEFAULT }
Specifies what action happens to rows in the table altered when those rows have a referential relationship and the referenced row is updated in the parent table. The default is NO ACTION.
Note: You must modify the ProductReview Table to meet the following requirements:
* The table must reference the ProductID column in the Product table
* Existing records in the ProductReview table must not be validated with the Product table.
* Deleting records in the Product table must not be allowed if records are referenced by the ProductReview table.
* Changes to records in the Product table must propagate to the ProductReview table.
References: https://msdn.microsoft.com/en-us/library/ms190273.aspx
https://msdn.microsoft.com/en-us/library/ms188066.aspx
注:この質問は、同じシナリオを提示する一連の質問の一部です。シリーズの各質問には、指定された目標を達成する可能性のある独自のソリューションが含まれています。一部の質問セットには複数の正しい解決策がある場合がありますが、他の質問セットには正しい解決策がない場合があります。
このセクションの質問に回答した後は、その質問に戻ることはできません。その結果、これらの質問はレビュー画面に表示されません。
次の2つのソースからデータを収集する必要があります。
*オペレーティングシステムのパフォーマンスカウンター
* Microsoft SQL Serverイベント
1つのツールを使用して、2つのデータセットを並べて分析する必要があります。
解決策:動的管理ビューとSQL Serverプロファイラーを使用して、パフォーマンスデータを収集します。 SQL Server Management Studio(SSMS)を使用してデータを分析します。
これは目標を達成していますか?
このセクションの質問に回答した後は、その質問に戻ることはできません。その結果、これらの質問はレビュー画面に表示されません。
次の2つのソースからデータを収集する必要があります。
*オペレーティングシステムのパフォーマンスカウンター
* Microsoft SQL Serverイベント
1つのツールを使用して、2つのデータセットを並べて分析する必要があります。
解決策:動的管理ビューとSQL Serverプロファイラーを使用して、パフォーマンスデータを収集します。 SQL Server Management Studio(SSMS)を使用してデータを分析します。
これは目標を達成していますか?
正解:B
解答を投票する
注:この質問は、同じシナリオを提示する一連の質問の一部です。シリーズの各質問には固有の解決策が含まれています。解決策が記載されている目標を満たしているかどうかを判断します。
Sales-Ordersという名前のテーブルを含むDB1という名前のデータベースがあります。
User1という名前のユーザーに、販売スキーマに対する選択権限を付与します。
Transact-SQLステートメントでスキーマ名を指定しなくても、User1がsales .orders表からデータを選択できるようにする必要があります。
解決方法:売上からデータを選択するストアドプロシージャをsalesスキーマに作成します。注文表解決策は目標を満たしていますか?
Sales-Ordersという名前のテーブルを含むDB1という名前のデータベースがあります。
User1という名前のユーザーに、販売スキーマに対する選択権限を付与します。
Transact-SQLステートメントでスキーマ名を指定しなくても、User1がsales .orders表からデータを選択できるようにする必要があります。
解決方法:売上からデータを選択するストアドプロシージャをsalesスキーマに作成します。注文表解決策は目標を満たしていますか?
正解:B
解答を投票する
注:この質問は、同じまたは類似の回答の選択肢を使用する一連の質問の一部です。回答の選択は、シリーズ内の複数の質問に対して正しい場合があります。各質問はシリーズの他の質問から独立しています。質問に記載されている情報と詳細は、その質問にのみ適用されます。
あなたは顧客の売上を追跡するためのアプリケーションを開発しています。
次の要件を満たすデータベースオブジェクトを作成する必要があります。
* テーブルデータが変更されたときに起動します。
* データ変更前後の表の状態を評価し、その違いに基づいて対処します。
* 悪意のあるまたは不正確なテーブルデータ操作を防ぎます。
* 試みられたデータ変更を取り消すことによって参照整合性に違反する変更を防ぎます。
* Microsoft .NET Frameworkで作成され、Microsoft SQL Serverに配置されているアセンブリにパッケージされたマネージコードを実行します。
何を作るべきですか?
あなたは顧客の売上を追跡するためのアプリケーションを開発しています。
次の要件を満たすデータベースオブジェクトを作成する必要があります。
* テーブルデータが変更されたときに起動します。
* データ変更前後の表の状態を評価し、その違いに基づいて対処します。
* 悪意のあるまたは不正確なテーブルデータ操作を防ぎます。
* 試みられたデータ変更を取り消すことによって参照整合性に違反する変更を防ぎます。
* Microsoft .NET Frameworkで作成され、Microsoft SQL Serverに配置されているアセンブリにパッケージされたマネージコードを実行します。
何を作るべきですか?
正解:C
解答を投票する
解説: (JPNTest メンバーにのみ表示されます)
注:この質問は、同じシナリオを提示する一連の質問の一部です。シリーズの各質問には、固有のソリューションが含まれています。ソリューションが指定された目標を満たしているかどうかを判断します。
dbReportingという名前のデータベースがあります。ユーザーは、データベースに対して多数の読み取り専用のアドホッククエリを実行します。アプリケーションとすべてのアドホッククエリは、デフォルトのデータベーストランザクション分離レベルを使用します。 READ_COMMITTED_SNAPSHOTデータベースオプションの値をONに設定します。
10個のテーブルを順番に更新し、単一のトランザクションで大量のレコードを変更するアプリケーションがあります。更新は互いに分離されています。
ユーザーから、バージョンに完全に格納されていることを示すエラーが報告されます。
エラーの発生数を減らす必要があります。
解決策:dbReportingデータベースの最大データベースサイズを増やします。
ソリューションは目標を達成していますか?
dbReportingという名前のデータベースがあります。ユーザーは、データベースに対して多数の読み取り専用のアドホッククエリを実行します。アプリケーションとすべてのアドホッククエリは、デフォルトのデータベーストランザクション分離レベルを使用します。 READ_COMMITTED_SNAPSHOTデータベースオプションの値をONに設定します。
10個のテーブルを順番に更新し、単一のトランザクションで大量のレコードを変更するアプリケーションがあります。更新は互いに分離されています。
ユーザーから、バージョンに完全に格納されていることを示すエラーが報告されます。
エラーの発生数を減らす必要があります。
解決策:dbReportingデータベースの最大データベースサイズを増やします。
ソリューションは目標を達成していますか?
正解:A
解答を投票する
Microsoft Azure SQL Databaseインスタンスを管理します。
User 1に、dboスキーマ内のすべてのオブジェクトに対するSELECT権限とEXECUTE権限を付与します。
User1が次の情報を表示するのを許可するストアドプロシージャを作成する必要があります。
* データベースへの各接続の詳細
* すべてのアクティブなユーザー接続と内部タスクのリスト
User1のストアドプロシージャを作成し、User1がエラーなしでストアドプロシージャを実行できることを確認する必要があります。
Transact-SQLステートメントをどのように完成させるべきですか? 回答するには、適切なTransact-SQLセグメントを正しい場所にドラッグします。 各Transact-SQLセグメントは、1回、複数回、またはまったく使用しないことができます。 コンテンツを表示するには、ペイン間の分割バーをドラッグするか、スクロールする必要があります。
注:回答の選択肢の複数の組み合わせが正しいです。 あなたが選択した正しい組み合わせのいずれかのためのクレジットを受け取ります。

User 1に、dboスキーマ内のすべてのオブジェクトに対するSELECT権限とEXECUTE権限を付与します。
User1が次の情報を表示するのを許可するストアドプロシージャを作成する必要があります。
* データベースへの各接続の詳細
* すべてのアクティブなユーザー接続と内部タスクのリスト
User1のストアドプロシージャを作成し、User1がエラーなしでストアドプロシージャを実行できることを確認する必要があります。
Transact-SQLステートメントをどのように完成させるべきですか? 回答するには、適切なTransact-SQLセグメントを正しい場所にドラッグします。 各Transact-SQLセグメントは、1回、複数回、またはまったく使用しないことができます。 コンテンツを表示するには、ペイン間の分割バーをドラッグするか、スクロールする必要があります。
注:回答の選択肢の複数の組み合わせが正しいです。 あなたが選択した正しい組み合わせのいずれかのためのクレジットを受け取ります。

正解:

Explanation

Box 1: Sys.dm_exec_connections
Sys.dm_exec_connections returns information about the connections established to this instance of SQL Server and the details of each connection. Returns server wide connection information for SQL Server.
Returns current database connection information for SQL Database.
Box 2: sys.dm_exec_sessions
sys.dm_exec_sessions returns one row per authenticated session on SQL Server. sys.dm_exec_sessions is a server-scope view that shows information about all active user connections and internal tasks.
Box 3: GRANT VIEW DATABASE STATE To User1
SQL Database: Requires VIEW DATABASE STATE to see all connections to the current database. VIEW DATABASE STATE cannot be granted in the master database.
注:この質問は、同じシナリオを提示する一連の質問の一部です。シリーズの各質問には固有の解決策が含まれています。解決策が記載されている目標を満たしているかどうかを判断します。
クラスタ化インデックスと非クラスタ化インデックスを持つテーブルがあります。インデックスはテーブルとは異なる列を使用します。ノンクラスタードインデックスを使用するQuery1という名前のクエリがあります。
ユーザーは、Query1が結果を報告するのに長い時間がかかることを報告します。 Query1を実行し、インデックスシーク操作について次の統計を確認します。

パフォーマンスの問題を解決する必要があります。
解決方法:ノンクラスタードインデックスを削除します。
解決策は目標を満たしていますか?
クラスタ化インデックスと非クラスタ化インデックスを持つテーブルがあります。インデックスはテーブルとは異なる列を使用します。ノンクラスタードインデックスを使用するQuery1という名前のクエリがあります。
ユーザーは、Query1が結果を報告するのに長い時間がかかることを報告します。 Query1を実行し、インデックスシーク操作について次の統計を確認します。

パフォーマンスの問題を解決する必要があります。
解決方法:ノンクラスタードインデックスを削除します。
解決策は目標を満たしていますか?
正解:A
解答を投票する