質問編集履歴
4
質問本文を修正しました。
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 = '0
|
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
質問本文を修正しました。
test
CHANGED
File without changes
|
test
CHANGED
@@ -34,7 +34,7 @@
|
|
34
34
|
|
35
35
|
OR ・・・・. OR ・・・・
|
36
36
|
|
37
|
-
AS store
|
37
|
+
AS stores
|
38
38
|
|
39
39
|
LEFT OUTER JOIN categories ON stores.buildcode = categories.buildcode
|
40
40
|
|
2
説明を追記しました。
test
CHANGED
@@ -1 +1 @@
|
|
1
|
-
|
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
説明を追記しました。
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
|
+
```
|