説明/参照:
Explanation:
AUTOモードでは、SELECTステートメントの指定方法に基づいたヒューリスティックを使用して、結果のXMLにネストを生成します。生成されるXMLの形状を最小限に制御できます。入れ子になったFOR XMLクエリは、AUTOモードヒューリスティックによって生成されたXMLシェイプを超えるXML階層を生成するように記述することができます。
テストレット1
コホワイナリー
概要
概要
あなたはCoho Wineryという名前の会社のデータベース開発者です。 Coho Wineryはロンドンにオフィスを構えています。
Coho Wineryには、顧客および小売業者からの注文書を処理するためのアプリケーションがあります。
10カ国。
アプリケーションは、Webフロントエンドを使用してインターネットからの注文を処理します。 Webフロントエンドは、Salesという名前のデータベースに注文を追加します。 Salesデータベースは、Server1という名前のサーバーによって管理されます。
Salesデータベースの空のコピーが、ロンドンオフィスのServer2という名前のサーバーに作成されます。データベースには、ヨーロッパの顧客向けの販売データが保存されます。
新しいバージョンのアプリケーションが開発されています。新しいバージョンでは、既存のウェブフロントエンドを使用するか、XMLファイルをロードすることで注文が行われます。
週に1回、購入注文とオフショア施設からの注文の注文詳細を含む2つのファイルを受け取ります。
オフショア施設の注文を販売データベースにコピーするには、usp_ImportOdersストアドプロシージャとusp_ImportOrderDetailsストアドプロシージャを実行します。
Salesデータベースには、2,000万行を超えるOrdersという名前のテーブルが含まれています。
データベース定義
データベースとテーブル
次のスクリプトを使用して、データベースとそのテーブルを作成します。

ストアドプロシージャ
次は、データベースで使用されるストアドプロシージャの定義です。


インデックス
次のインデックスは、Salesデータベースの一部です。

データのインポート
XMLファイルには、各注文のアイテムのリストが含まれます。各小売業者は独自のXMLスキーマを持ち、さまざまなタイプのエンコーディングを使用できます。各XMLスキーマは、デフォルトの名前空間を使用します。デフォルトの名前空間は一意であるとは限りません。
テスト目的で、顧客からXSDファイルを受け取ります。
テストの目的で、ValidateOrderという名前のXMLスキーマコレクションも作成します。 ValidateOrderには、すべての小売業者のスキーマが含まれています。
新しいバージョンのアプリケーションでは、XMLファイルを検証し、データを解析し、元のXMLファイルとともに解析されたデータをデータベースに格納する必要があります。元のXMLファイルは、データを失うことなく格納する必要があります。
報告された問題
パフォーマンスの問題
usp_GetOrdersAndItemsストアドプロシージャでは、次の点に注意してください。
ストアドプロシージャの完了に時間がかかります。

Ordersテーブルの行の2%未満がusp_GetOrdersAndItemsによって取得されます。

ストアドプロシージャが実行されると、フルテーブルスキャンが実行されます。

使用されるディスク容量とデータを挿入するために必要な時間は非常に長くなります。

usp_GetOrdersByProductストアドプロシージャは、ストアドプロシージャの実行時にテーブルスキャンを使用することがわかります。
ページ分割の問題
Ordersテーブルを更新すると、IX_Orders_ShipDateインデックスのページ分割が過剰になります。
要件
サイトの要件
北米にいるユーザーは、北米とヨーロッパの顧客の販売データを1つのレポートで表示できる必要があります。ソリューションは、オフィス間のWANリンク上のトラフィック量を最小限に抑える必要があります。
一括挿入要件
usp_ImportOrderDetailsストアドプロシージャの完了には10分以上かかります。ストアドプロシージャは毎日実行されます。ストアドプロシージャが失敗した場合は、ストアドプロシージャが最後の正常な行セットから再起動するようにする必要があります。
インデックスの監視要件
Salesデータベースでのインデックスの使用状況を継続的に監視する必要があります。サーバーが再始動すると、モニターされたデータを維持する必要があります。監視ソリューションは、メモリリソースと処理リソースの使用を最小限に抑える必要があります。