質問編集履歴
4
質問本文を修正しました。
title
CHANGED
File without changes
|
body
CHANGED
@@ -43,7 +43,7 @@
|
|
43
43
|
-> XN Sort (cost=1000010812372.86..1000010812372.98 rows=48 width=65)
|
44
44
|
Sort Key: storecode, date
|
45
45
|
-> XN Seq Scan on stores (cost=0.00..10812371.52 rows=48 width=65)
|
46
|
-
Filter: (((storecode)::text = '
|
46
|
+
Filter: (((storecode)::text = 'A01'::text) AND (date <= '2021-05-11'::date))
|
47
47
|
-> XN Hash (cost=6.71..6.71 rows=671 width=59)
|
48
48
|
-> XN Seq Scan on categories (cost=0.00..6.71 rows=671 width=59)
|
49
49
|
-> XN Hash (cost=3872.85..3872.85 rows=387285 width=40)
|
3
質問本文を修正しました。
title
CHANGED
File without changes
|
body
CHANGED
@@ -16,7 +16,7 @@
|
|
16
16
|
WHERE (storecode = 'A01' AND date <= '2021-04-19')
|
17
17
|
OR (storecode = 'B02' AND date <= '2021-04-20')
|
18
18
|
OR ・・・・. OR ・・・・
|
19
|
-
AS
|
19
|
+
AS stores
|
20
20
|
LEFT OUTER JOIN categories ON stores.buildcode = categories.buildcode
|
21
21
|
LEFT OUTER JOIN meshcode ON (計算の為省略) = cities.meshcode
|
22
22
|
WHERE rank = 1
|
2
説明を追記しました。
title
CHANGED
@@ -1,1 +1,1 @@
|
|
1
|
-
|
1
|
+
SQL SELECTの実行速度が遅い場合の解決方法
|
body
CHANGED
@@ -1,13 +1,12 @@
|
|
1
1
|
RedShiftにてSELECTクエリの実行速度が遅く困っています。
|
2
2
|
SQLのチューニングの方法についてあまり詳しくなく、スピード改善の参考になる記事や
|
3
3
|
クエリ中の遅くなっていると予想される箇所などよろしければお伺いしたいです。
|
4
|
-
実行ログなど何も用意できておらず申し訳ございませんが、どうぞよろしくお願い致します。
|
5
4
|
|
6
5
|
---
|
7
6
|
|
8
7
|
問題が出ているのは以下の入力フォームで複数の値を同時に検索することができるSELECTです。
|
9
8
|
複数のテーブルを結合して、指定のIDかつ最新のものを1件取得するSQLになります。
|
10
|
-
phpでWHERE OR OR OR・・・で検索条件を繋いでおり。百件を超えると遅くなってしまいます。
|
9
|
+
phpでWHERE OR OR OR・・・で検索条件を繋いでおり。検索条件が百件を超えると遅くなってしまいます。
|
11
10
|
|
12
11
|
|
13
12
|
```SQL
|
1
説明を追記しました。
title
CHANGED
File without changes
|
body
CHANGED
@@ -24,4 +24,30 @@
|
|
24
24
|
```
|
25
25
|
|
26
26
|
上記SQLについては以前質問し、以下回答があったSQLになります。
|
27
|
-
[https://teratail.com/questions/334027](https://teratail.com/questions/334027)
|
27
|
+
[https://teratail.com/questions/334027](https://teratail.com/questions/334027)
|
28
|
+
|
29
|
+
|
30
|
+
実行計画は下記の通りになります。
|
31
|
+
見たことのないような桁になり検索が全く動きません。。。
|
32
|
+
|
33
|
+
``` XN Hash Left Join DS_DIST_OUTER (cost=1000010817222.31..999999999999999967336168804116691273849533185806555472917961779471295845921727862608739868455469056.00 rows=2 width=285)
|
34
|
+
Outer Dist Key: ((((((floor((("outer".lat * 60::double precision) / 40::double precision)))::text || (floor(("outer".lng - 100::double precision)))::text) || (floor(((("outer".lat * 60::double precisi)::text)
|
35
|
+
Hash Cond: ("outer"."?column10?" = ("inner".meshcode)::text)
|
36
|
+
-> XN Hash Left Join DS_DIST_ALL_NONE (cost=1000010812381.25..1000010812383.59 rows=1 width=245)
|
37
|
+
Hash Cond: (("outer".buildcode)::text = ("inner".buildcode)::text)
|
38
|
+
-> XN Subquery Scan l (cost=1000010812372.86..1000010812375.18 rows=1 width=207)
|
39
|
+
Filter: (rank = 1)
|
40
|
+
-> XN Unique (cost=1000010812372.86..1000010812374.78 rows=32 width=65)
|
41
|
+
-> XN Window (cost=1000010812372.86..1000010812373.94 rows=48 width=65)
|
42
|
+
Partition: storecode
|
43
|
+
Order: date
|
44
|
+
-> XN Sort (cost=1000010812372.86..1000010812372.98 rows=48 width=65)
|
45
|
+
Sort Key: storecode, date
|
46
|
+
-> XN Seq Scan on stores (cost=0.00..10812371.52 rows=48 width=65)
|
47
|
+
Filter: (((storecode)::text = '00:00:00:00:00:00'::text) AND (date <= '2021-05-11'::date))
|
48
|
+
-> XN Hash (cost=6.71..6.71 rows=671 width=59)
|
49
|
+
-> XN Seq Scan on categories (cost=0.00..6.71 rows=671 width=59)
|
50
|
+
-> XN Hash (cost=3872.85..3872.85 rows=387285 width=40)
|
51
|
+
-> XN Seq Scan on cities (cost=0.00..3872.85 rows=387285 width=40)
|
52
|
+
|
53
|
+
```
|