2

私はETLの経験があまりありませんが、私の質問に対する答えも見つかりませんでした. 現在、単純なデータ ウェアハウス ("ほとんどのテーブルからほとんどの列をコピーする" のようにシンプルで、OLAP スタイルではない) の作成を検討していますが、いくつかの理由で SQL Server (2008) に傾いているようです。

SQL Serverに関しては、SSISはこの種のタスクのツールのようですが、データをロードするときにソースデータベースキャッシュにどのように影響するかについては何も見つかりません. 私たちのインストールのいくつかは、使用スタイルキャッシュを持つことになると、パフォーマンスに関して非常に敏感です.

しかし、SSIS が "select *" 風のクエリを実行し、キャッシュが変更された場合、それらのクエリから再構築されるまで、ユーザーのパフォーマンスが許容できないレベルまで低下する可能性があります。

私の質問は、SSIS (または回避する方法はありますか) は、SQL Server データベースからデータをロードするときにデータベース キャッシュに影響しますか?

問題の一部は、ソース データベースが Oracle または SQL Server データベースの両方である可能性があることです。そのため、Oracle のキャッシュに影響を与える部分を回避する方法があれば、それも適切な入力になります。(Attunity コネクタが適していると思いますか?)

(いくつかの追加情報:プレーンファイルも検討しましたが、おそらくSSIS転送よりもエクスポートとインポートに時間がかかりますか?また、変更データのキャプチャも検討するものだと思います。それがこの質問に関連している場合、考えられる問題/利点を自由に含めてください。)

その他の関連する提案も大歓迎です!

ありがとう!

4

2 に答える 2

3

SQL Server側への取り組み:

まず、SSISは、バッファプールまたはプランキャッシュを回避するために特別なことは何もしません。
簡単なテスト(非本番インスタンスで!):

  1. 次のように、単一の接続マネージャーと、テーブルを指す1つのOLEDBソースを含む単一のデータフローを使用して新しいSSISパッケージを作成します。 パッケージ

  2. SSMSからバッファプールをクリアします。DBCC DROPCLEANBUFFERS

  3. このページの上部にある栄光のdm_os_buffer_descriptorsクエリを使用して、キャッシュがクリアされていることを確認します。 結果1

  4. パッケージを実行します

  5. 手順(2)からクエリを再実行し、テーブルのデータページ(この例ではBOM_PIECE)がキャッシュにロードされていることに注意してください。 結果2

ほとんどのSSISコンポーネントでは独自のクエリを提供できるため、バッファプールを回避する方法がある場合(これが可能かどうかはわかりませんが、それについて詳しく知っている人に任せます)、それをクエリに挿入します。Table or viewしたがって、上記の例では、OLE DBソースで選択する代わりに、を選択するSQL commandSQL command from variable、コマンドに動的テキストが必要な場合を選択します。

最後に、キャッシュの負荷を排除したい理由を想像できますが、これを実行してもよろしいです?SQL Serverはメモリの管理にかなり優れており、実行しているのはメモリ負荷をディスクI / O負荷と交換することです。これは、(ユースケースによっては)他のユーザーに悪影響を与える可能性があります。 この質問には、SQLServerのキャッシュに関する説明があります。

于 2012-04-12T14:09:32.080 に答える
0

Oracleからのデータの読み取りに関するAttunityに関するこの記事を読んでください

「SQL Server データベースからデータをロードするときにデータベース キャッシュに影響を与える」とはどういう意味ですか。SQL Server はデータをキャッシュするのではなく、実行プランをキャッシュします。SSIS を使用しているという事実は、サーバーに影響を与えません (もちろん、データを読み取るオーバーヘッドを除きます)。適切なトランザクション分離レベルを使用してください。

また、SSIS コンポーネントの高速読み込みプロパティについてもお読みください。

変更データ キャプチャについては、SSIS をどのように置き換えることができるかわかりません。CDC を使用してロードする行を選択できますが、ロードは行われません。

于 2012-04-12T13:32:46.250 に答える