Microsoft Developing SQL Databases (70-762日本語版) - 70-762日本語 Exam Practice Test

Customerという名前のメモリ最適化テーブルがあります。 テーブルは、ManageCustomerという名前のストアドプロシージャによってアクセスされます。
データベースはMicrosoft SQL Server 2014で作成されました。データベースをSQL Server 2016に移動するために、バックアップおよび復元操作が使用されました。
ストアドプロシージャのパフォーマンスの問題があります。
パフォーマンスの問題を解決し、テーブル統計が自動的に更新されるようにする必要があります。
ソリューションを開発するには、どの3つのTransact-SQLセグメントを使用する必要がありますか? 回答するには、適切なTransact-SQLセグメントをTransact-SQLセグメントのリストから回答エリアに移動し、正しい順序に並べます。
Correct Answer:

Explanation

Step 1: ALTER DATABASE CURRENT SET COMPATIBILITY_LEVEL
Sets certain database behaviors to be compatible with the specified version of SQL Server.
Syntax:
ALTER DATABASE database_name
SET COMPATIBILITY_LEVEL = { 150 | 140 | 130 | 120 | 110 | 100 | 90 }
Step 2: UPDATE STATISTICS Customers
UPDATE STATISTICS updates query optimization statistics on a table or indexed view.
Step 3: EXEC sp_recompile N' 'Manage_customer'
sp_recompile causes stored procedures, triggers, and user-defined functions to be recompiled the next time that they are run. It does this by dropping the existing plan from the procedure cache forcing a new plan to be created the next time that the procedure or trigger is run References:
https://docs.microsoft.com/en-us/sql/t-sql/statements/alter-database-transact-sql-compatibility-level
https://docs.microsoft.com/en-us/sql/t-sql/statements/update-statistics-transact-sql
注:この質問は、同じまたは類似の回答の選択肢を使用する一連の質問の一部です。回答の選択は、シリーズ内の複数の質問に対して正しい場合があります。このシリーズの他の質問とは無関係に、それぞれの質問。質問に記載されている情報と詳細は、その質問にのみ適用されます。
あなたは会社のデータベース開発者です。この会社には、複数の物理ディスクを持つサーバーがあります。ディスクはRAIDアレイの一部ではありません。サーバーは3つのMicrosoft SQL Serverインスタンスをホストします。オフピーク時に実行される多くのSQLジョブがあります。
SQL Serverインスタンスをリアルタイムで監視し、スループット、応答時間、および全体的なSQLパフォーマンスを最大化するためにサーバーを最適化する必要があります。
各インスタンスのパフォーマンスが、同じクエリプランとクエリプランに対して一貫していることを確認する必要があります。
あなたは何をするべきか?
Correct Answer: A
Explanation: (Only visible to PassTestking members)
あなたはUserEventsという名前のよく使われるデータベーステーブルをプロファイリングしています。 READ_COMMITED_SNAPSHOTデータベースオプションがOFFに設定されています。
トレース結果では、データベース内のロック数がメモリーまたは構成のしきい値を超えていなくても、1つのストアード・プロシージャーに対してロックのエスカレーションが発生したことがわかります。 以下の表にイベントの詳細を示します。

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

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
InvoiceとInvoiceDetailsという名前のテーブルでデータベースを管理します。 各請求書には複数のレコードがあります。
ユーザーは.NET Webアプリケーションを使用してInvoiceDetailsテーブルを更新します。 アプリケーションは両方のテーブルからレコードを取得し、インライン更新ステートメントを実行してテーブルを更新します。
アプリケーション内のレコードを更新すると、ユーザーのパフォーマンスが低下します。 ソリューションは以下の要件を満たす必要があります。
* ストアドプロシージャを使用する必要があります。
* インライン更新ステートメントを使用してはいけません
* テーブル値パラメータを使用する必要があります。
* すべてのレコードを更新するためにストアドプロシージャを呼び出す必要があります。
あなたはパフォーマンスを最適化する必要があります。
どの3つのアクションを順番に実行しますか? 答えるには、適切なアクションをアクションのリストから回答領域に移動して、正しい順序で並べます。
Correct Answer:

Explanation

Box 1: Create a user-defined table type...
Table-valued parameters are declared by using user-defined table types. You can use table-valued parameters to send multiple rows of data to a Transact-SQL statement or a routine, such as a stored procedure or function, without creating a temporary table or many parameters.
Box 2: ..read-only input parameter.
Table-valued parameters must be passed as input READONLY parameters to Transact-SQL routines.
Box 3:
Example
The following example uses Transact-SQL and shows you how to create a table-valued parameter type, declare a variable to reference it, fill the parameter list, and then pass the values to a stored procedure.
USE AdventureWorks2012;
/* Create a table type. */
CREATE TYPE LocationTableType AS TABLE
( LocationName VARCHAR(50)
, CostRate INT );
GO
/* Create a procedure to receive data for the table-valued parameter. */ CREATE PROCEDURE dbo. usp_InsertProductionLocation
@TVP LocationTableType READONLY
Etc.
/* Declare a variable that references the type. */
DECLARE @LocationTVP AS LocationTableType;
/* Add data to the table variable. */
INSERT INTO @LocationTVP (LocationName, CostRate)
SELECT Name, 0.00
FROM AdventureWorks2012.Person.StateProvince;
/* Pass the table variable data to a stored procedure. */
EXEC usp_InsertProductionLocation @LocationTVP;
GO
References:
https://docs.microsoft.com/en-us/sql/relational-databases/tables/use-table-valued-parameters-database-engine?vie
次の要件を持つテーブルがあります。
* OrderLinesという名前のテーブルの一部のレコードは、Orderという名前のテーブルに存在しません。
* OrderNumberという名前の列は、Orderテーブルの一意の値である必要があります。
* OrderLinesテーブルのOrderNumber列では、null値を使用できます。
* OrderLinesテーブルのOrderNumber列は、Orderテーブルで検証する必要があります。
* Orderテーブルのレコードと一致しないOrderLinesテーブルの新しいレコードを許可しないでください。
声明をどのように完成させるべきですか? 回答するには、回答領域のドロップダウンメニューから適切なtransact-SQLセグメントを選択します。
注:それぞれの正しい選択には1ポイントの価値があります。
Correct Answer:

Explanation

Box 1: PRIMARY KEY
Box 2: NOCHECK
Need NOCHECK as some records in the table named OrderLines do not exist in the table named Order.
Box 3: FOREIGN KEY
FOREIGN KEY allows inserting NULL values if there is no NOT NULL constraint defined on this key, but the PRIMARY KEY does not accept NULLs.
References:
https://www.sqlshack.com/commonly-used-sql-server-constraints-foreign-key-check-default/
注:この質問は、同じシナリオを提示する一連の質問の一部です。シリーズの各質問には、固有のソリューションが含まれています。ソリューションが指定された目標を満たしているかどうかを判断します。
dbReportingという名前のデータベースがあります。ユーザーは、データベースに対して多数の読み取り専用のアドホッククエリを実行します。アプリケーションとすべてのアドホッククエリは、デフォルトのデータベーストランザクション分離レベルを使用します。 READ_COMMITTED_SNAPSHOTデータベースオプションの値をONに設定します。
10個のテーブルを順番に更新し、単一のトランザクションで大量のレコードを変更するアプリケーションがあります。更新は互いに分離されています。
ユーザーから、バージョンに完全に格納されていることを示すエラーが報告されます。
エラーの発生数を減らす必要があります。
解決策:dbReportingデータベースの最大データベースサイズを増やします。
ソリューションは目標を達成していますか?
Correct Answer: B
注:この質問は、同じシナリオを提示する一連の質問の一部です。シリーズの各質問には固有の解決策が含まれています。解決策が記載されている目標を満たしているかどうかを判断します。
Employeesという名前のテーブルを含むデータベースがあります。このテーブルには、会社の従業員に関する情報が格納されています。
Employeesテーブルには、次の監査規則を実装する必要があります。
- データに加えられた変更をEmployeesテーブルに記録します。
- 監査業務によって記録されたデータをカスタマイズする。
解決方法:Employeesテーブルにチェック制約を実装します。
解決策は目標を満たしていますか?
Correct Answer: B
Explanation: (Only visible to PassTestking members)
注:この質問は、同じシナリオを提示する一連の質問の一部です。このシリーズの各質問には固有の解決策が含まれています。解決策が記載されている目標を満たしているかどうかを判断します。
あなたの会社は世界中の異なる地域に従業員を抱えています。
次の従業員の出席情報を格納するデータベーステーブルを作成する必要があります。
- 従業員ID
- 従業員が仕事のためにチェックインした日時
- 従業員が仕事をチェックアウトした日時
日付と時刻の情報はタイムゾーンに対応している必要があり、小数秒を格納してはいけません。
解決方法:次のTransact-SQLステートメントを実行します。

解決策は目標を満たしていますか?
Correct Answer: B
Explanation: (Only visible to PassTestking members)
データベース内のデータを常に更新するリアルタイムアプリケーションがいくつかあります。アプリケーションは毎秒400以上のトランザクションを実行し、センサーからの新しいメトリックを挿入および更新します。
センサーからのデータを表示するための新しいWebダッシュボードがリリースされました。エンジニアは、アプリケーションが更新のコミットに予想以上に時間がかかることを報告しています。
同時実行性を高め、コミットされていないデータの読み取りをサポートするには、ダッシュボードのクエリを変更する必要があります。
あなたは何をするべきか?
Correct Answer: B
Explanation: (Only visible to PassTestking members)
クラスター化された列ストアインデックスを持つデータウェアハウスファクトテーブルがあります。
合計300万行のデータを含む複数のCSVファイルがあります。
データをファクトテーブルにアップロードする必要があります。データをインポートするとき、ソリューションはデルタグループを回避する必要があります。
どのソリューションが最短時間で目標を達成しますか?
Correct Answer: A
Explanation: (Only visible to PassTestking members)