2017-10-19 24 views
0

SSMS経由で送信し、移行のスピードを向上させるために、何十億ものレコードがあります。結果セットをテーブルに保存しようとしています。私はすべてのデータが1つのテーブルにあるので、私のフロントエンドが遅くなることを考慮に入れています。私は基本的に様々なオプションを見ています。だから私は複数の物理的なテーブルを持つことを考えています。私はちょうど最後の5年間のデータが必要です。それは速くなります私は別の年のフィルタを持つ同じストアドプロシージャの5つの異なるバージョンを実行し、テーブルを作成します。私はSSISで並列性を達成できることを知っています。私の唯一の恐怖は、5つのストアドプロシージャがすべて並列に実行されているためです。テーブルをロックダウンしますか?SSISでパフォーマンスの問題を処理する

+0

「SSMS経由で」とはどういう意味ですか? SSISとSSMSは別のものです。明確にすることができますか?SSISを意味しますか?あなたはただテーブルをコピーしていますか?実際にデータを抽出するストアドプロシージャが必要ですか?どのくらいの頻度でこのデータを送信する必要がありますか?毎日?毎月?毎時?一度オフですか?ターゲットデータベースは同じサーバーか別のサーバーにありますか? SSISを使用する必要がありますか(BCPネイティブはより高速で簡単です)。 "私のフロントエンドは遅くなる"とはどういう意味ですか?フロントエンドアプリケーションでデータ転送中にパフォーマンスの問題が発生する可能性があることを理解していますか? –

+0

こんにちはニック、混乱して申し訳ありません。私が書いたとき、それは昨夜少し遅かった。私はSSISを意味しました。私はSSMSとSSISが異なっていることを知っています:)。私はすでに週に1回のデータ移行を行っているSSISパッケージを用意しています。 Sqlジョブを介してスケジュールされます。ソース・データベースとターゲット・データベースは、2つの異なるサーバー上にあります。私がアプリケーションを遅くすることは、移行プロセス中ではなく、移行が終了した後である。データを1つのテーブルにダンプすると、私のフロントエンドは何十億ものレコードを持つこの1つのテーブルを照会する必要があります。 – Tom

+0

アプリケーションにパフォーマンスの問題がある場合は、パフォーマンスチューニングを行います。すなわち、どの問合せが問題であるかを特定し、次に索引や分割などを適用して改善します。 1つのテーブルを多数に分割することは、ほとんど常に間違ったことです。フィルタリングされたインデックスを多数作成したり、テーブルのパーティション化を実装するだけで、非常によく似た効果を得ることができます。これにより、表の分割がエンド・ユーザーに透過的になります。 –

答えて

0

SQL Serverのテーブル分割スキームを調べることができます。 Yearカラムは、あなたのパーティショニング機能で使うには良いフィールドであるようです。

Table Partitioning in SQL Server

+0

年に基づいてメインテーブルを分割すると、SSISでどのように構成されますか – Tom

+0

以前はテーブルパーティションを完了していません。 periodendateフィールドはdatefieldであり、それがフィルタであるので年を抽出する必要があります。私は過去5年間のデータが必要で、各パーティーには1年が含まれていなければなりません。したがって、今年は店舗があるはずのテーブル、2016年のレコードのみを格納するテーブルなどが必要です。あなたはその部分を – Tom

+0

Googleのテーブルパーティション作成を手助けできますか?これはアプリケーションとSSISに対して透過的です。特別なことを行う必要はありません。それがポイントです。完全に透明です。特別なコードや手当を受ける必要はありません –

関連する問題