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

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

正解:

説明

ボックス1:クラスター化されていないハッシュ(BUCKET_COUNT = 10000000)
すべてのインデックスキー列で正確に等しいWHERE句を使用してクエリがインデックス付き列をテストする場合、ハッシュインデックスは非クラスタ化インデックスよりも望ましいです。 1,000万のバケットカウントを使用する必要があります。
ボックス2:SCHEMA_ONLY
耐久性:SCHEMA_AND_DATAの値は、テーブルが耐久性があることを示します。つまり、変更はディスクに保持され、再起動またはフェイルオーバー後も維持されます。 SCHEMA_AND_DATAはデフォルト値です。
SCHEMA_ONLYの値は、テーブルが非永続であることを示します。テーブルスキーマは保持されますが、データベースの再起動またはフェールオーバー時にデータの更新は保持されません。 DURABILITY = SCHEMA_ONLYは、MEMORY_OPTIMIZED = ONでのみ許可されます。
参照:https://msdn.microsoft.com/en-us/library/mt670614.aspx