回答編集履歴

4

修正

2017/10/10 09:17

投稿

sazi
sazi

スコア25195

test CHANGED
@@ -20,6 +20,6 @@
20
20
 
21
21
  手っ取り早くは、「その他条件」となっているところをコメントアウトして、実行計画を確認してみることです。
22
22
 
23
- それで、性能が改善されるようであれば、SQLを組み直したり、インデックスを追加するなどの手当てが必要なります。
23
+ それで、性能が改善されるようであれば、SQLを組み直したり、インデックスを追加するなどの手当てが必要なります。
24
24
 
25
25
  それ以外では、自己結合が多いので、Lead() over()などを使用することで改善されるかもしれません。

3

追記

2017/10/10 09:17

投稿

sazi
sazi

スコア25195

test CHANGED
@@ -11,3 +11,15 @@
11
11
  多分インデックスに無い項目に対する条件となっていると思われますので、
12
12
 
13
13
  その条件も明らかにしてもらえますか。
14
+
15
+
16
+
17
+ 追記
18
+
19
+ ---
20
+
21
+ 手っ取り早くは、「その他条件」となっているところをコメントアウトして、実行計画を確認してみることです。
22
+
23
+ それで、性能が改善されるようであれば、SQLを組み直したり、インデックスを追加するなどの手当てが必要いなります。
24
+
25
+ それ以外では、自己結合が多いので、Lead() over()などを使用することで改善されるかもしれません。

2

修正

2017/10/10 06:30

投稿

sazi
sazi

スコア25195

test CHANGED
@@ -2,6 +2,12 @@
2
2
 
3
3
  ---
4
4
 
5
- テーブルDに対して「その他条件」として割愛されています。
5
+ テーブルA,Dに対して「その他条件」として割愛されています。
6
6
 
7
- テーブルDに対してトが掛かっているの、その条件も明らかにしてもらえますか。
7
+ テーブルDに対してインデックは使用されていますが、ROWID実テーブルを参照してますので、
8
+
9
+ その部分でコストが掛かっていると思われます。
10
+
11
+ 多分インデックスに無い項目に対する条件となっていると思われますので、
12
+
13
+ その条件も明らかにしてもらえますか。

1

修正

2017/10/10 04:12

投稿

sazi
sazi

スコア25195

test CHANGED
@@ -1,37 +1,7 @@
1
- 多分、t15の部分がネックだと思われます。
1
+ 修正
2
2
 
3
+ ---
3
4
 
5
+ テーブルDに対して「その他条件」として割愛されています。
4
6
 
5
- その部分を以下に変更したらどうなりますか?
6
-
7
-
8
-
9
- ```SQL
10
-
11
- SELECT
12
-
13
- t11.pk1,
14
-
15
- t11.pk2,
16
-
17
- t11.pk3,
18
-
19
- t11.pk4
20
-
21
- FROM
22
-
23
- テーブルA t11
24
-
25
- WHERE
26
-
27
- t11.pk1 = 'XX' AND
28
-
29
- t11.pk2 = 'YY' AND
30
-
31
- t11.pk3 = (
32
-
33
- select max(pk3) from テーブルA where pk1=t11.pk1 and pk2=t11.pk2
7
+ テーブルDに対してコストが掛かっているので、その条件も明らかにしてもらえますか。
34
-
35
- )
36
-
37
- ```