またはそれの任意の単一のもののPostgres 9.4 SQLクエリのタイムアウト
AND final IS NOT NULL
ORDER BY tmodified ASC
クエリが出てもっとして10分を実行している....と時間続けます。
上記の2行を削除すると、1ミリ秒以内に結果が返されます。
上記の2行を以下のクエリでどのように動作させるにはどうすればよいですか?
表のtable_h 36万件のレコードを持っており、このテーブル
column final is numeric(10,5)
column tmodified is bigint, Timestamp
に私はここで
のPostgres 9.4を使用して完全なクエリでいます。
SELECT DISTINCT t.cid, h.a, am.b, u2.c, u.d, h.e, ie.f, im.g FROM table_am as am
INNER JOIN table_t as t on (t.id = am.id AND t.type = am.type)
INNER JOIN table_h AS h on h.iid = t.id
INNER JOIN table_u AS u ON u.id = h.uid
INNER JOIN table_u AS u2 ON u2.id = h.lu
INNER JOIN table_im AS im ON im.asid = am.sid
INNER JOIN table_ie AS ie ON ie.uid = u.uid
INNER JOIN table_g AS g ON g.id = h.oldid
WHERE h.final >= 0
AND h.final IS NOT NULL
AND h.tmodified >= 1499903419
AND ie.p = im.p
AND h.sr IN ('x', 'y', 'z')
AND h.id = (SELECT id FROM table_h WHERE oldid = h.oldid AND final >= 0
AND final IS NOT NULL -- Issue is here and
ORDER BY tmodified ASC -- Issue is here
LIMIT 1)
AND h.id NOT IN (SELECT id FROM table_m WHERE tmodified > 1499903419)
3600万回3600万を何ですか?非常に大きな数字です。その相関サブクエリを取り除く必要があります。 –
どのようなアイデア、どのように改善するのですか? – Developer
クエリを書き直す必要があります。私の推測では、相関サブクエリを削除するだけで、クエリが完了できるようになります。 –