どのようにOracle 10gのレコードの効率の1つ以上を削除するには?

( '1'、 '2'、 '3')のt_a.idのt_aからの削除

または

t_aから削除

3

3 答え

delete from t_a where t_a.id in ('1', '2', '3')

delete from t_a where t_a.id = '1';
delete from t_a where t_a.id = '2';
delete from t_a where t_a.id = '3';

id列のインデックスがある場合、効率はほぼ同じになります。

インデックスのID列を持っていない場合は、最初はt_aテーブルの単一フルスキャンを行い、2番目の方法は 3 フルスキャン。

理想のために:テーブルt_a索引が整理されていれば最高の効率が得られます:

CREATE TABLE t_a
(
  id    NUMBER,
  col2  VARCHAR2(10), 
  CONSTRAINT id_pk
  PRIMARY KEY
  (id)
)
ORGANIZATION INDEX;

注意して使用してください(最初に文書化されています)。

1
追加された
delete from t_a where t_a.id in ('1', '2', '3')
1
追加された
より速い方法はありますか?
追加された 著者 Qi Zhao,

あなたのポイントは何ですか?この2つの方法を比較して、ルール内のデータをより速く削除する方法がありますか?

0
追加された