0

env: oracle 9 以下の SQL ステートメントで非常にゆっくりと実行します。原因またはデバッグのヒントを教えてください。どうもありがとう 。

INSERT INTO tmp_table (col1,col2,col3,col4,col5,col6,col7,col8,col9)
select * from my_view where col1 = 1;

どこまでテストしたか: select サブステートメントを実行すると、エンドレス実行中に 1 つのレコードが返されるまでに 3 秒かかりましたが、ステートメント全体を実行すると結果セットは返されませんでした。

4

1 に答える 1

0

最初の行だけでなく最後の行がすばやく返されるという意味で、クエリがすばやく実行されているように見えますが、insert ステートメントで使用すると実行が遅くなる場合、通常は次のように考えられます。

  1. 以前は first_rows ゴールが使用されていた場所で all_rows ゴールが適切であるとオプティマイザーが信じるようになったために、実行計画が変更されました。実行計画の変更を確認してください。
  2. 挿入の結果として実行される何らかのアクション。ターゲット表での遅いトリガーまたはマテリアライズド・ビューのロギングが原因である可能性があります。これは、「create table ... as select ..」を実行する場合には当てはまりません。
于 2013-06-06T09:55:19.620 に答える