- PR -

膨れ上がるtempdbに対処する方法?

1
投稿者投稿内容
きのこ
ぬし
会議室デビュー日: 2004/09/01
投稿数: 256
投稿日時: 2006-11-02 04:42

いつもお世話になってます。
現在、
約 1300万レコード の 履歴詳細データと、 
約 160万レコード の 履歴ヘッダーの2テーブルを結合させて
最終的に1300万レコードの巨大なテーブルを作成するSSISパッケージを
dtsxで作成しました。
これを、インテグレーションサービスでSSISにインポートして
MSDBに登録したあと、走らせると、
tempdbがとてつもなく巨大になります。(100GBをかんたんの超えます)
このJOB自体は週次のタスクので
他のJOBの中間で起動する流れにあるのですが
そこで質問があるのですが
 
その前後でtempdbを初期化できればしたいのですがこれは可能なのでしょうか?
もちろん、JIBの単位を分割してしまって
スケジュールのステップで
スケジュールを動かすSQL Agent,
および SSISを動かすSQL Integration, を動かしたまま、
SQL Serverサービスだけを再起動してしまってもいいもしれませんがきちんと
うごくかわかりませんのでできればSQLでこれができればいいとおもってます。
圧縮をこころみましたがほとんど大きさがかわりませんでした。

この巨大な作業をするSSISのDTSXは
古いテーブルの
1.TRUNCATE、
2.データのロード、
3.インデックスの作成、
4.出来上がったテーブルにさらにUPDATE

と4つの処理をしてますので、
できればSQLコマンドでその合間にtempdbを小さくしてしまう〔初期値に戻してしまう)のが理想的なのですが。
(パッケージ4つに分割して、スケジュールで
  わざわざSQLサーバーを再起動はさせたくないので)

またSSISでなくファイルとして登録してはしらせたほうが、
そういった負荷は減るのでしょうか?

なにかヒントありましたらどうかご教授ください。

1

スキルアップ/キャリアアップ(JOB@IT)