2012-02-19 8 views
1

私はリフレッシュ機能を持っています。与えられたデータの各行をデータベースと比較する必要があります。存在しない場合は新しいデータを挿入し、それ以外の場合はスキップします。SQLの効率性。テーブルの再構築または各行の比較

しかし、データ全体を再構築するほうがはるかに効率的になるのだろうかと疑問に思っていましたか?行ごとに比較するのではなく、テーブル全体を削除してすべてのデータを再度挿入するだけですか?

どちらがもっと効率的ですか?

+2

テストしましたか? xが高速かyかが問われる場合は、ベンチマークするだけです。 –

+0

これは、行数、行のサイズ、クラスタリング・キーの幅、および存在する索引の数とタイプによって異なります。だからベンチマーク。 –

答えて

1

大きな変更を加えると、表の再構築が最も効率的になります。ただし、truncate tableを使用している場合に限ります。 「xからの削除」はどこではなく、より遅くなる可能性があります。

転倒ポイントがどこであるかを調べる唯一の方法は、測定することです。

テーブルが外部キーによって参照されていない場合にのみ、テーブルを切り捨てることができます。したがって、テーブルを切り捨てる前に、テーブルを削除/無効にする必要があります。

関連する問題