回答編集履歴
1
補足
answer
CHANGED
@@ -1,6 +1,17 @@
|
|
1
|
+
> ・UPDATE、MERGE、INSERTをする際もINDEXは効いているのでしょうか。
|
2
|
+
> ・UPDATE、MERGE、INSERTの際も処理速度は速くなるのでしょうか。
|
3
|
+
|
1
4
|
INDEXはWHERE条件やorder by やjoin group byなどで使用され、select だからとかupdateだからというのは関係がありません。
|
2
5
|
|
3
6
|
大量データを扱ってINSERTするなら、INSERT先のテーブルのINDEXは寧ろ(INDEXを作成するオーバーヘッドが)邪魔です。
|
4
7
|
|
5
8
|
直接関係しているかどうかですが、MERGEでのINSERTが値そのものならdual表を使用したものになっているかは気になります。
|
6
|
-
そもそも、データの状況によっては、MERGEを使用するより、INSERTとUPDATEを使い分ける方が高速な場合だってありますからね。
|
9
|
+
そもそも、データの状況によっては、MERGEを使用するより、INSERTとUPDATEを使い分ける方が高速な場合だってありますからね。
|
10
|
+
|
11
|
+
> ・INDEXを作成した後処理をコストを確認しても特にINDEX作成前と変化はありませんでしたが、
|
12
|
+
> ヒント句を使用して以下のようにするとINDEXが効きます。なぜですか?
|
13
|
+
|
14
|
+
統計情報が正しくなかったり、物理的な記憶域の特性やデータ特性を正しく表現できなかった場合、オプティマイザは正しい判断ができず、最適ではない実行計画を立ててしまいます。
|
15
|
+
そこへ最適なものを教えるというのがヒント句ですから。
|
16
|
+
|
17
|
+
[Oracleのオプティマイザとは何か?~ソースコードを書いているエンジニアが語る](https://blogs.oracle.com/oracle4engineer/oracle-v101)
|