質問編集履歴

4

質問本文を修正しました。

2021/05/12 04:55

投稿

yowayowanitohei
yowayowanitohei

スコア31

test CHANGED
File without changes
test CHANGED
@@ -88,7 +88,7 @@
88
88
 
89
89
  -> XN Seq Scan on stores (cost=0.00..10812371.52 rows=48 width=65)
90
90
 
91
- Filter: (((storecode)::text = '00:00:00:00:00:00'::text) AND (date <= '2021-05-11'::date))
91
+ Filter: (((storecode)::text = 'A01'::text) AND (date <= '2021-05-11'::date))
92
92
 
93
93
  -> XN Hash (cost=6.71..6.71 rows=671 width=59)
94
94
 

3

質問本文を修正しました。

2021/05/12 04:55

投稿

yowayowanitohei
yowayowanitohei

スコア31

test CHANGED
File without changes
test CHANGED
@@ -34,7 +34,7 @@
34
34
 
35
35
           OR ・・・・. OR ・・・・
36
36
 
37
- AS storetable
37
+ AS stores
38
38
 
39
39
  LEFT OUTER JOIN categories ON stores.buildcode = categories.buildcode
40
40
 

2

説明を追記しました。

2021/05/12 04:53

投稿

yowayowanitohei
yowayowanitohei

スコア31

test CHANGED
@@ -1 +1 @@
1
- RedshiftにてSELECTの実行速度が遅い場合
1
+ SQL SELECTの実行速度が遅い場合の解決方法
test CHANGED
@@ -3,8 +3,6 @@
3
3
  SQLのチューニングの方法についてあまり詳しくなく、スピード改善の参考になる記事や
4
4
 
5
5
  クエリ中の遅くなっていると予想される箇所などよろしければお伺いしたいです。
6
-
7
- 実行ログなど何も用意できておらず申し訳ございませんが、どうぞよろしくお願い致します。
8
6
 
9
7
 
10
8
 
@@ -16,7 +14,7 @@
16
14
 
17
15
  複数のテーブルを結合して、指定のIDかつ最新のものを1件取得するSQLになります。
18
16
 
19
- phpでWHERE OR OR OR・・・で検索条件を繋いでおり。百件を超えると遅くなってしまいます。
17
+ phpでWHERE OR OR OR・・・で検索条件を繋いでおり。検索条件が百件を超えると遅くなってしまいます。
20
18
 
21
19
 
22
20
 

1

説明を追記しました。

2021/05/12 04:48

投稿

yowayowanitohei
yowayowanitohei

スコア31

test CHANGED
File without changes
test CHANGED
@@ -51,3 +51,55 @@
51
51
  上記SQLについては以前質問し、以下回答があったSQLになります。
52
52
 
53
53
  [https://teratail.com/questions/334027](https://teratail.com/questions/334027)
54
+
55
+
56
+
57
+
58
+
59
+ 実行計画は下記の通りになります。
60
+
61
+ 見たことのないような桁になり検索が全く動きません。。。
62
+
63
+
64
+
65
+ ``` XN Hash Left Join DS_DIST_OUTER (cost=1000010817222.31..999999999999999967336168804116691273849533185806555472917961779471295845921727862608739868455469056.00 rows=2 width=285)
66
+
67
+ 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)
68
+
69
+ Hash Cond: ("outer"."?column10?" = ("inner".meshcode)::text)
70
+
71
+ -> XN Hash Left Join DS_DIST_ALL_NONE (cost=1000010812381.25..1000010812383.59 rows=1 width=245)
72
+
73
+ Hash Cond: (("outer".buildcode)::text = ("inner".buildcode)::text)
74
+
75
+ -> XN Subquery Scan l (cost=1000010812372.86..1000010812375.18 rows=1 width=207)
76
+
77
+ Filter: (rank = 1)
78
+
79
+ -> XN Unique (cost=1000010812372.86..1000010812374.78 rows=32 width=65)
80
+
81
+ -> XN Window (cost=1000010812372.86..1000010812373.94 rows=48 width=65)
82
+
83
+ Partition: storecode
84
+
85
+ Order: date
86
+
87
+ -> XN Sort (cost=1000010812372.86..1000010812372.98 rows=48 width=65)
88
+
89
+ Sort Key: storecode, date
90
+
91
+ -> XN Seq Scan on stores (cost=0.00..10812371.52 rows=48 width=65)
92
+
93
+ Filter: (((storecode)::text = '00:00:00:00:00:00'::text) AND (date <= '2021-05-11'::date))
94
+
95
+ -> XN Hash (cost=6.71..6.71 rows=671 width=59)
96
+
97
+ -> XN Seq Scan on categories (cost=0.00..6.71 rows=671 width=59)
98
+
99
+ -> XN Hash (cost=3872.85..3872.85 rows=387285 width=40)
100
+
101
+ -> XN Seq Scan on cities (cost=0.00..3872.85 rows=387285 width=40)
102
+
103
+
104
+
105
+ ```