powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Медленно выполняется запрос
17 сообщений из 17, страница 1 из 1
Медленно выполняется запрос
    #39425023
Alewteena1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Помогите, плизз!
Пытаюсь оптимизировать запрос к бд, включает в себя много таблиц и функций, выполняется сейчас очень медленно,
может подскажите, чем можно было бы облегчить его...
Может все дело в том, что я не использую индексы, наследования, разбиения...
может не оптимальная структура или функции,, не знаю только, как повлияют на оптимизацию, уже много чего противоречивого прочитала((( не знаю что делать, я в этом не сильна, помогите добрые люди!

'PostgreSQL 9.4.9 on x86_64-unknown-linux-gnu, compiled by gcc (GCC) 4.4.7 20120313 (Red Hat 4.4.7-17), 64-bit'

Сам запрос:

SELECT
vc12.ngr AS ngr,
vc12.gname AS gname,
vc12.psid AS psid,
vc12.chid AS chid,
vc12.neid AS neid,
vc12.name_old AS name_old,
vc12.protected AS prot,
vc12.k AS k,
vc12.klm_w AS klm_a,
vc12.klm_z AS klm_z,
vc12.klm_p AS klm_p,
p0nc_a.chid as chid_p0nc_a,
p0nc_z.chid as chid_p0nc_z,
p0nc_p.chid as chid_p0nc_p
FROM
public.vc12_with_group as vc12
LEFT JOIN
public.unem_p0nc as p0nc_a
ON
vc12.neid=p0nc_a.neid AND
((p0nc_a.wttpid = vc12.awttpid AND vc12.klm_w=p0nc_a.klm_w) OR
(p0nc_a.zttpid = vc12.awttpid AND vc12.klm_w=p0nc_a.klm_z) OR
(p0nc_a.pttpid = vc12.awttpid AND vc12.klm_w=p0nc_a.klm_p))

LEFT JOIN
public.unem_p0nc as p0nc_z
ON
vc12.neid=p0nc_z.neid AND
((p0nc_z.wttpid = vc12.zttpid AND vc12.klm_z=p0nc_z.klm_w) OR
(p0nc_z.zttpid = vc12.zttpid AND vc12.klm_z=p0nc_z.klm_z) OR
(p0nc_z.pttpid = vc12.zttpid AND vc12.klm_z=p0nc_z.klm_p))

LEFT JOIN
public.unem_p0nc as p0nc_p
ON
vc12.neid=p0nc_p.neid AND
((p0nc_p.wttpid = vc12.apttpid AND vc12.klm_p=p0nc_p.klm_w) OR
(p0nc_p.zttpid = vc12.apttpid AND vc12.klm_p=p0nc_p.klm_z) OR
(p0nc_p.pttpid = vc12.apttpid AND vc12.klm_p=p0nc_p.klm_p))
ORDER BY ngr
...
Рейтинг: 0 / 0
Медленно выполняется запрос
    #39425025
Alewteena1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Alewteena1,

И Explain(analyze, buffers)
'Sort (cost=82229.23..82242.78 rows=5421 width=122) (actual time=56904.016..56968.317 rows=50230 loops=1)'
' Sort Key: vc12.ngr'
' Sort Method: external merge Disk: 4648kB'
' Buffers: shared hit=1872425, temp read=3884 written=4325'
' -> Hash Right Join (cost=60740.04..81893.01 rows=5421 width=122) (actual time=46678.012..56793.388 rows=50230 loops=1)'
' Hash Cond: (p0nc.neid = vc12.neid)'
' Join Filter: ((((portid_p0nc(p0nc.neid, p0nc.aendwork_slot, p0nc.aendwork_port, p0nc.aendwork_name)) = vc12.apttpid) AND ((vc12.klm_p)::numeric = (to_number("substring"("substring"(p0nc.aendwork_name, '. K\d\d\d[)].'::text), 4, 3), '999'::text)))) (...)'
' Rows Removed by Join Filter: 2234137'
' Buffers: shared hit=1872425, temp read=3298 written=3739'
' -> CTE Scan on p0nc (cost=930.62..12332.32 rows=14387 width=228) (actual time=2.340..8352.986 rows=14387 loops=1)'
' Buffers: shared hit=256434, temp written=445'
' CTE p0nc'
' -> Seq Scan on unem_channel unem_channel_3 (cost=0.00..930.62 rows=14387 width=272) (actual time=0.018..33.047 rows=14387 loops=1)'
' Filter: (layerrate = 'P0_nc'::text)'
' Rows Removed by Filter: 6383'
' Buffers: shared hit=671'
' -> Hash (cost=59741.65..59741.65 rows=5421 width=122) (actual time=46445.434..46445.434 rows=24063 loops=1)'
' Buckets: 1024 Batches: 4 (originally 1) Memory Usage: 1049kB'
' Buffers: shared hit=1615991, temp read=2670 written=2915'
' -> Hash Right Join (cost=38588.68..59741.65 rows=5421 width=122) (actual time=36524.030..46406.348 rows=24063 loops=1)'
' Hash Cond: (p0nc_1.neid = vc12.neid)'
' Join Filter: ((((portid_p0nc(p0nc_1.neid, p0nc_1.aendwork_slot, p0nc_1.aendwork_port, p0nc_1.aendwork_name)) = vc12.zttpid) AND ((vc12.klm_z)::numeric = (to_number("substring"("substring"(p0nc_1.aendwork_name, '. K\d\d\d[)].'::text), 4, (...)'
' Rows Removed by Join Filter: 2056537'
' Buffers: shared hit=1615991, temp read=2670 written=2672'
' -> CTE Scan on p0nc p0nc_1 (cost=930.62..12332.32 rows=14387 width=228) (actual time=2.182..8300.871 rows=14387 loops=1)'
' Buffers: shared hit=256434, temp written=445'
' CTE p0nc'
' -> Seq Scan on unem_channel unem_channel_2 (cost=0.00..930.62 rows=14387 width=272) (actual time=0.013..32.084 rows=14387 loops=1)'
' Filter: (layerrate = 'P0_nc'::text)'
' Rows Removed by Filter: 6383'
' Buffers: shared hit=671'
' -> Hash (cost=37590.29..37590.29 rows=5421 width=122) (actual time=36233.326..36233.326 rows=22313 loops=1)'
' Buckets: 1024 Batches: 4 (originally 1) Memory Usage: 1049kB'
' Buffers: shared hit=1359557, temp read=2004 written=1791'
' -> Hash Right Join (cost=16437.32..37590.29 rows=5421 width=122) (actual time=27471.561..36180.152 rows=22313 loops=1)'
' Hash Cond: (p0nc_2.neid = vc12.neid)'
' Join Filter: ((((portid_p0nc(p0nc_2.neid, p0nc_2.aendwork_slot, p0nc_2.aendwork_port, p0nc_2.aendwork_name)) = vc12.awttpid) AND ((vc12.klm_w)::numeric = (to_number("substring"("substring"(p0nc_2.aendwork_name, '. K\d\d\d[)] (...)'
' Rows Removed by Join Filter: 386122'
' Buffers: shared hit=1359557, temp read=2004 written=1567'
' -> CTE Scan on p0nc p0nc_2 (cost=930.62..12332.32 rows=14387 width=228) (actual time=2.152..8334.936 rows=14387 loops=1)'
' Buffers: shared hit=256434, temp written=445'
' CTE p0nc'
' -> Seq Scan on unem_channel unem_channel_1 (cost=0.00..930.62 rows=14387 width=272) (actual time=0.009..32.511 rows=14387 loops=1)'
' Filter: (layerrate = 'P0_nc'::text)'
' Rows Removed by Filter: 6383'
' Buffers: shared hit=671'
' -> Hash (cost=15438.93..15438.93 rows=5421 width=122) (actual time=27469.386..27469.386 rows=5457 loops=1)'
' Buckets: 1024 Batches: 1 Memory Usage: 682kB'
' Buffers: shared hit=1103123, temp read=2004 written=1122'
' -> Subquery Scan on vc12 (cost=12060.47..15438.93 rows=5421 width=122) (actual time=842.892..27452.504 rows=5457 loops=1)'
' Buffers: shared hit=1103123, temp read=2004 written=1122'
' -> Hash Right Join (cost=12060.47..15384.72 rows=5421 width=124) (actual time=842.888..27432.728 rows=5457 loops=1)'
' Hash Cond: (vc12_1.chid = g.chid)'
' Buffers: shared hit=1103123, temp read=2004 written=1122'
' -> Merge Left Join (cost=11760.68..12095.88 rows=5460 width=240) (actual time=796.938..1034.310 rows=5460 loops=1)'
' Merge Cond: ((vc12_1.neid = pz.neid) AND (vc12_1.zend_slot = pz.slot) AND (("substring"(vc12_1.zend_name, 1, 5)) = pz.unittype))'
' Join Filter: (CASE WHEN (("substring"(vc12_1.zend_name, 1, 5)) <> 'SYN4E'::text) THEN ("substring"(vc12_1.zend_name, 16, 1) = (pz.portnumber)::text) ELSE (("substring"(vc12_1.zend_name, ("position"(vc (...)'
' Rows Removed by Join Filter: 26163'
' Buffers: shared hit=2651, temp read=2004 written=1122'
' CTE vc12'
' -> Seq Scan on unem_channel (cost=0.00..930.62 rows=5460 width=272) (actual time=0.011..13.311 rows=5460 loops=1)'
' Filter: (layerrate = 'VC12'::text)'
' Rows Removed by Filter: 15310'
' Buffers: shared hit=671'
' -> Sort (cost=8423.16..8436.81 rows=5460 width=236) (actual time=698.378..709.820 rows=5460 loops=1)'
' Sort Key: vc12_1.neid, vc12_1.zend_slot, ("substring"(vc12_1.zend_name, 1, 5))'
' Sort Method: external sort Disk: 1200kB'
' Buffers: shared hit=1991, temp read=1401 written=944'
' -> Merge Left Join (cost=7133.04..7468.23 rows=5460 width=236) (actual time=475.428..659.877 rows=5460 loops=1)'
' Merge Cond: ((vc12_1.neid = pap.neid) AND (vc12_1.aendprot_slot = pap.slot) AND (("substring"(vc12_1.aendprot_name, 1, 5)) = pap.unittype))'
' Join Filter: (CASE WHEN (("substring"(vc12_1.aendprot_name, 1, 5)) <> 'SYN4E'::text) THEN ("substring"(vc12_1.aendprot_name, 16, 1) = (pap.portnumber)::text) ELSE (("substring"(vc12_1.aend (...)'
' Rows Removed by Join Filter: 3920'
' Buffers: shared hit=1991, temp read=1251 written=794'
' -> Sort (cost=4726.14..4739.79 rows=5460 width=232) (actual time=475.413..482.757 rows=5460 loops=1)'
' Sort Key: vc12_1.neid, vc12_1.aendprot_slot, ("substring"(vc12_1.aendprot_name, 1, 5))'
' Sort Method: external sort Disk: 1168kB'
' Buffers: shared hit=1331, temp read=1036 written=616'
' -> Merge Left Join (cost=3453.52..3788.72 rows=5460 width=232) (actual time=201.163..452.016 rows=5460 loops=1)'
' Merge Cond: ((vc12_1.neid = paw.neid) AND (vc12_1.aendwork_slot = paw.slot) AND (("substring"(vc12_1.aendwork_name, 1, 5)) = paw.unittype))'
' Join Filter: (CASE WHEN (("substring"(vc12_1.aendwork_name, 1, 5)) <> 'SYN4E'::text) THEN ("substring"(vc12_1.aendwork_name, 16, 1) = (paw.portnumber)::text) ELSE (("substring" (...)'
' Rows Removed by Join Filter: 34678'
' Buffers: shared hit=1331, temp read=890 written=470'
' -> Sort (cost=1046.62..1060.27 rows=5460 width=228) (actual time=84.453..91.632 rows=5460 loops=1)'
' Sort Key: vc12_1.neid, vc12_1.aendwork_slot, ("substring"(vc12_1.aendwork_name, 1, 5))'
' Sort Method: external merge Disk: 1168kB'
' Buffers: shared hit=671, temp read=147 written=292'
' -> CTE Scan on vc12 vc12_1 (cost=0.00..109.20 rows=5460 width=228) (actual time=0.022..37.800 rows=5460 loops=1)'
' Buffers: shared hit=671, temp written=145'
' -> Sort (cost=2406.90..2460.22 rows=21329 width=20) (actual time=116.431..187.605 rows=58369 loops=1)'
' Sort Key: paw.neid, paw.slot, paw.unittype'
' Sort Method: external sort Disk: 712kB'
' Buffers: shared hit=660, temp read=460 written=178'
' -> Seq Scan on ttp_ paw (cost=0.00..873.29 rows=21329 width=20) (actual time=0.012..32.646 rows=21329 loops=1)'
' Buffers: shared hit=660'
' -> Sort (cost=2406.90..2460.22 rows=21329 width=20) (actual time=97.414..124.426 rows=24210 loops=1)'
' Sort Key: pap.neid, pap.slot, pap.unittype'
' Sort Method: external sort Disk: 712kB'
' Buffers: shared hit=660, temp read=196 written=178'
' -> Seq Scan on ttp_ pap (cost=0.00..873.29 rows=21329 width=20) (actual time=0.013..27.214 rows=21329 loops=1)'
' Buffers: shared hit=660'
' -> Sort (cost=2406.90..2460.22 rows=21329 width=20) (actual time=98.317..159.141 rows=48002 loops=1)'
' Sort Key: pz.neid, pz.slot, pz.unittype'
' Sort Method: external sort Disk: 712kB'
' Buffers: shared hit=660, temp read=390 written=178'
' -> Seq Scan on ttp_ pz (cost=0.00..873.29 rows=21329 width=20) (actual time=0.014..27.704 rows=21329 loops=1)'
' Buffers: shared hit=660'
' -> Hash (cost=232.06..232.06 rows=5418 width=76) (actual time=42.053..42.053 rows=5457 loops=1)'
' Buckets: 1024 Batches: 1 Memory Usage: 614kB'
' Buffers: shared hit=78'
' -> Hash Join (cost=40.85..232.06 rows=5418 width=76) (actual time=4.533..31.001 rows=5457 loops=1)'
' Hash Cond: (g.neid = ne.neid)'
' Buffers: shared hit=78'
' -> Seq Scan on vc12_group g (cost=0.00..116.57 rows=5457 width=55) (actual time=0.010..7.967 rows=5457 loops=1)'
' Buffers: shared hit=62'
' -> Hash (cost=35.68..35.68 rows=413 width=25) (actual time=4.511..4.511 rows=413 loops=1)'
' Buckets: 1024 Batches: 1 Memory Usage: 24kB'
' Buffers: shared hit=16'
' -> Hash Join (cost=20.83..35.68 rows=413 width=25) (actual time=1.678..3.665 rows=413 loops=1)'
' Hash Cond: (ne.psindex = ps.psindex)'
' Buffers: shared hit=16'
' -> Seq Scan on ne_fo ne (cost=0.00..9.16 rows=416 width=8) (actual time=0.007..0.631 rows=416 loops=1)'
' Buffers: shared hit=5'
' -> Hash (cost=15.37..15.37 rows=437 width=25) (actual time=1.657..1.657 rows=437 loops=1)'
' Buckets: 1024 Batches: 1 Memory Usage: 26kB'
' Buffers: shared hit=11'
' -> Seq Scan on ps (cost=0.00..15.37 rows=437 width=25) (actual time=0.006..0.808 rows=437 loops=1)'
' Buffers: shared hit=11'
'Planning time: 6.931 ms'
'Execution time: 57027.445 ms'
...
Рейтинг: 0 / 0
Медленно выполняется запрос
    #39425094
ОКТОГЕН
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alewteena1,

Код: plaintext
' Sort Method: external merge Disk: 4648kB'

Надо в сессии увеличить work_mem до тех пор, пока не исчезнет.
Потом в НОРМАЛЬНОМ виде
скиньте сюда план запроса.
...
Рейтинг: 0 / 0
Медленно выполняется запрос
    #39425099
qwwq
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alewteena1Alewteena1,

И Explain(analyze, buffers)
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
...
  ->  Hash Right Join  (cost=60740.04..81893.01 rows=5421 width=122) (actual time=46678.012..56793.388 rows=50230 loops=1)
        Hash Cond: (p0nc.neid = vc12.neid)
        Join Filter: ((((portid_p0nc(p0nc.neid, p0nc.aendwork_slot, p0nc.aendwork_port, p0nc.aendwork_name)) = vc12.apttpid) AND ((vc12.klm_p)::numeric = (to_number("substring"("substring"(p0nc.aendwork_name, '. K\d\d\d[)].'::text), 4, 3), '999'::text))))  (...)
        Rows Removed by Join Filter: 2234137
        Buffers: shared hit=1872425, temp read=3298 written=3739
        ->  CTE Scan on p0nc  (cost=930.62..12332.32 rows=14387 width=228) (actual time=2.340..8352.986 rows=14387 loops=1)
              Buffers: shared hit=256434, temp written=445'
              CTE p0nc'
...
              ->  Hash Right Join  (cost=38588.68..59741.65 rows=5421 width=122) (actual time=36524.030..46406.348 rows=24063 loops=1)
                    Hash Cond: (p0nc_1.neid = vc12.neid)
                    Join Filter: ((((portid_p0nc(p0nc_1.neid, p0nc_1.aendwork_slot, p0nc_1.aendwork_port, p0nc_1.aendwork_name)) = vc12.zttpid) AND ((vc12.klm_z)::numeric = (to_number("substring"("substring"(p0nc_1.aendwork_name, '. K\d\d\d[)].'::text), 4, (...)
                    Rows Removed by Join Filter: 2056537
                    Buffers: shared hit=1615991, temp read=2670 written=2672
                    ->  CTE Scan on p0nc p0nc_1  (cost=930.62..12332.32 rows=14387 
...
Execution time: 57027.445 ms



покажите определения этих вьюх, на которые вы вяжетесь зачем--то гробовыми ф-ями, которые, могабыть, даже не совсем всегда имутабны .
...
Рейтинг: 0 / 0
Медленно выполняется запрос
    #39425100
Melkij
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Оформите explain с сохранением отступов. И DDL используемых таблиц.

Не думаю, что указанный запрос и приведённый explain - одно и то же. В explain явно cte виден, которого в запросе нет.
...
Рейтинг: 0 / 0
Медленно выполняется запрос
    #39425105
qwwq
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MelkijВ explain явно cte виден, которого в запросе нет.это вьюхи, думаецца.
какой--то умник напихал в них сте, вместо подзапросов. вызывая материализацию. нужно ли оно там именно как сте --хз
...
Рейтинг: 0 / 0
Медленно выполняется запрос
    #39425124
Alewteena1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
qwwq,покажите определения этих вьюх, на которые вы вяжетесь зачем--то гробовыми ф-ями, которые, могабыть, даже не совсем всегда имутабны .

vc12_with_group
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
CREATE OR REPLACE VIEW vc12_with_group AS 
 SELECT g.ngr,
    g.glabel_old AS gname_old,
    (('1'::text ||
        CASE
            WHEN g.k = 'TrW'::text THEN 'w'::text
            WHEN g.k = 'TrP'::text THEN 'p'::text
            ELSE '_'::text
        END) ||
        CASE
            WHEN beg_end_vc12(g.ngr) IS NULL THEN (to_char(g.ngr, 'FM0000'::text) || '_'::text) || 'XXXX>XXXX'::text
            ELSE beg_end_vc12(g.ngr)
        END) ||
        CASE
            WHEN g.k ~~* 'Tr%'::text THEN '_Transit'::text
            ELSE ''::text
        END AS gname,
    ps.nodeid AS psid,
    ps.name AS psname,
    g.chid,
    g.neid,
    g.label_old AS name_old,
    info1.protected,
    g.k1,
    g.k,
    g.aneid,
    info1.awttpid,
    info1.aendwork_ch AS klm_w,
    g.zneid,
    info1.zttpid,
    info1.aendwork_ch AS klm_z,
    g.pneid,
    info1.apttpid,
    info1.aendwork_ch AS klm_p
   FROM vc12_group g
     JOIN ne_fo ne USING (neid)
     JOIN ps ps USING (psindex)
     LEFT JOIN unem_vc12 info1 ON info1.chid = g.chid;



unem_p0nc
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
CREATE OR REPLACE VIEW unem_p0nc AS 
 WITH p0nc AS (
         SELECT *
           FROM unem_channel
          WHERE unem_channel.layerrate = 'P0_nc'::text
        )
 SELECT p0nc.chid,
    p0nc.neid,
    p0nc.protected,
    p0nc.label,
    portid_p0nc(p0nc.neid, p0nc.aendwork_slot, p0nc.aendwork_port, p0nc.aendwork_name) AS wttpid, --функция
    portid_p0nc(p0nc.neid, p0nc.zend_slot, p0nc.zend_port, p0nc.zend_name) AS zttpid,
    portid_p0nc(p0nc.neid, p0nc.aendprot_slot, p0nc.aendprot_port, p0nc.aendprot_name) AS pttpid,
    p0nc.aendwork_name,
    to_number("substring"("substring"(p0nc.aendwork_name, '. K\d\d\d[)].'::text), 4, 3), '999'::text) AS klm_w,
    p0nc.aendwork_ch,
    p0nc.aendwork_port,
    p0nc.aendwork_portid,
    p0nc.aendwork_slot,
    p0nc.aendwork_subslot,
    p0nc.aendprot_name,
    to_number("substring"("substring"(p0nc.aendprot_name, '. K\d\d\d[)].'::text), 4, 3), '999'::text) AS klm_p,
    p0nc.aendprot_ch,
    p0nc.aendprot_port,
    p0nc.aendprot_portid,
    p0nc.aendprot_slot,
    p0nc.aendprot_subslot,
    p0nc.zend_name,
    to_number("substring"("substring"(p0nc.zend_name, '. K\d\d\d[)].'::text), 4, 3), '999'::text) AS klm_z,
    p0nc.zend_ch,
    p0nc.zend_port,
    p0nc.zend_portid,
    p0nc.zend_slot,
    p0nc.zend_subslot
   FROM p0nc;



функция ищет в другой таблице соответствующий порт по нескольким признакам:
portid_p0nc
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
CREATE OR REPLACE FUNCTION portid_p0nc(
    neid integer,
    slot integer,
    port integer,
    name text)
  RETURNS integer AS
$BODY$SELECT ttpid
  FROM ttp_
WHERE 
neid=$1  AND
CASE WHEN SUBSTRING($4 FROM 1 FOR 5)='SYNAC' THEN 
	CASE WHEN $4 ILIKE '%SYN4E%' THEN portnumber=SUBSTRING($4 FROM (POSITION('STM' IN $4))+5 FOR 1)::integer AND slot=to_number(SUBSTRING($4 FROM (POSITION('SYN4E' IN $4))+7 FOR 2), '99') AND layerrate in (15,45)
	ELSE 
	     CASE WHEN $4 ILIKE '%SYNUF%' THEN slot=to_number(SUBSTRING($4 FROM (POSITION('SYNUF' IN $4)+7) FOR 2), '99') END
	END
     WHEN SUBSTRING($4 FROM 1 FOR 5)='SYN4E' AND $4 like '%STM%' THEN
	portnumber=SUBSTRING($4 FROM (POSITION('STM' IN $4))+5 FOR 1)::integer AND slot=$2 AND layerrate in (15,45)
     WHEN SUBSTRING($4 FROM 1 FOR 5)='TUPON' THEN
	slot=$2 AND layerrate =25
     WHEN SUBSTRING($4 FROM 1 FOR 5)='LAWA4' THEN
	slot=$2		
     WHEN SUBSTRING($4 FROM 1 FOR 5) not in ('SYNAC','LAWA4', 'SYN4E', 'TUPON') THEN
	slot=$2 AND portnumber=$3
END$BODY$
  LANGUAGE sql VOLATILE
  COST 100;


...
Рейтинг: 0 / 0
Медленно выполняется запрос
    #39425150
ОКТОГЕН
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alewteena1,

Что кажет
Код: plaintext
 SHOW work_mem;
?
...
Рейтинг: 0 / 0
Медленно выполняется запрос
    #39425399
Alewteena1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ОКТОГЕН,
'1048kB'
...
Рейтинг: 0 / 0
Медленно выполняется запрос
    #39425490
ОКТОГЕН
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alewteena1'1048kB'
Перед запросом выполните
Код: plaintext
SET work_mem = '12MB';
Увеличивайте значение до тех пор, пока из плана не иcчезнет "Disk"
Потом план сюда скиньте.
...
Рейтинг: 0 / 0
Медленно выполняется запрос
    #39425501
ОКТОГЕН
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: sql
1.
2.
3.
EXPLAIN (ANALYZE, BUFFERS)
SELECT 
<ваш запрос>
...
Рейтинг: 0 / 0
Медленно выполняется запрос
    #39425507
Фотография vyegorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alewteena1,

В представлении `unem_p0nc` замените
Код: sql
1.
2.
3.
4.
5.
6.
7.
WITH p0nc AS (
  SELECT *
    FROM unem_channel
   WHERE unem_channel.layerrate = 'P0_nc'::text
)
SELECT *    
  FROM p0nc;


на
Код: sql
1.
2.
3.
SELECT *    
  FROM unem_channel p0nc
 WHERE p0nc.layerrate = 'P0_nc'::text;
...
Рейтинг: 0 / 0
Медленно выполняется запрос
    #39425883
Alewteena1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
vyegorov,
значит все таки этот With тоже затормаживает выполнение?
...
Рейтинг: 0 / 0
Медленно выполняется запрос
    #39425903
Alewteena1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ОКТОГЕН,

Да, я увеличила SET work_mem = '12MB'
Убрала With, добавила индексы на поля, где выполняю выборку, сейчас тестирую правда немного другой запрос(его тоже пытаюсь оптимизировать), но у меня от этого ничего не изменилось в нем, по крайней мере по времени выполнения - до и после увеличения памяти на 12мб, выполняется 27 сек:
запрос:
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
SELECT g.ngr,
    g.glabel_old AS gname_old,
    (('1'::text ||
        CASE
            WHEN g.k = 'TrW'::text THEN 'w'::text
            WHEN g.k = 'TrP'::text THEN 'p'::text
            ELSE '_'::text
        END) ||
        CASE
            WHEN beg_end_vc12(g.ngr) IS NULL THEN (to_char(g.ngr, 'FM0000'::text) || '_'::text) || 'XXXX>XXXX'::text
            ELSE beg_end_vc12(g.ngr)
        END) ||
        CASE
            WHEN g.k ~~* 'Tr%'::text THEN '_Transit'::text
            ELSE ''::text
        END AS gname,
    ps.nodeid AS psid,
    ps.name AS psname,
    g.chid,
    g.neid,
    g.label_old AS name_old,
    info1.protected,
    g.k1,
    g.k,
    g.aneid,
    info1.awttpid,
    info1.aendwork_ch AS klm_w,
    g.zneid,
    info1.zttpid,
    info1.aendwork_ch AS klm_z,
    g.pneid,
    info1.apttpid,
    info1.aendwork_ch AS klm_p
   FROM vc12_group g
     JOIN ne_fo ne USING (neid)
     JOIN ps ps USING (psindex)
     LEFT JOIN unem_vc12 info1 ON info1.chid = g.chid;


Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
'Merge Left Join  (cost=10938.19..14102.62 rows=5418 width=100) (actual time=769.334..27218.885 rows=5457 loops=1)'
'  Merge Cond: ((vc12.neid = pz.neid) AND (vc12.zend_slot = pz.slot) AND (("substring"(vc12.zend_name, 1, 5)) = pz.unittype))'
'  Join Filter: (CASE WHEN (("substring"(vc12.zend_name, 1, 5)) <> 'SYN4E'::text) THEN ("substring"(vc12.zend_name, 16, 1) = (pz.portnumber)::text) ELSE (("substring"(vc12.zend_name, ("position"(vc12.zend_name, '('::text) + 6), 1) = (pz.portnumber)::text) A (...)'
'  Rows Removed by Join Filter: 26156'
'  Buffers: shared hit=1103874'
'  ->  Sort  (cost=8530.52..8544.06 rows=5418 width=157) (actual time=681.855..688.832 rows=5457 loops=1)'
'        Sort Key: vc12.neid, vc12.zend_slot, ("substring"(vc12.zend_name, 1, 5))'
'        Sort Method: quicksort  Memory: 1642kB'
'        Buffers: shared hit=2820'
'        ->  Merge Left Join  (cost=7861.17..8194.51 rows=5418 width=157) (actual time=428.454..658.853 rows=5457 loops=1)'
'              Merge Cond: ((vc12.neid = paw.neid) AND (vc12.aendwork_slot = paw.slot) AND (("substring"(vc12.aendwork_name, 1, 5)) = paw.unittype))'
'              Join Filter: (CASE WHEN (("substring"(vc12.aendwork_name, 1, 5)) <> 'SYN4E'::text) THEN ("substring"(vc12.aendwork_name, 16, 1) = (paw.portnumber)::text) ELSE (("substring"(vc12.aendwork_name, ("position"(vc12.aendwork_name, '('::text) + 6),  (...)'
'              Rows Removed by Join Filter: 34657'
'              Buffers: shared hit=2820'
'              ->  Sort  (cost=5453.49..5467.04 rows=5418 width=223) (actual time=337.535..343.054 rows=5457 loops=1)'
'                    Sort Key: vc12.neid, vc12.aendwork_slot, ("substring"(vc12.aendwork_name, 1, 5))'
'                    Sort Method: quicksort  Memory: 1810kB'
'                    Buffers: shared hit=2160'
'                    ->  Merge Left Join  (cost=4787.71..5117.48 rows=5418 width=223) (actual time=106.734..309.898 rows=5457 loops=1)'
'                          Merge Cond: ((vc12.neid = pap.neid) AND (vc12.aendprot_slot = pap.slot) AND (("substring"(vc12.aendprot_name, 1, 5)) = pap.unittype))'
'                          Join Filter: (CASE WHEN (("substring"(vc12.aendprot_name, 1, 5)) <> 'SYN4E'::text) THEN ("substring"(vc12.aendprot_name, 16, 1) = (pap.portnumber)::text) ELSE (("substring"(vc12.aendprot_name, ("position"(vc12.aendprot_name, '(':: (...)'
'                          Rows Removed by Join Filter: 3920'
'                          Buffers: shared hit=2160'
'                          ->  Sort  (cost=2380.03..2393.58 rows=5418 width=281) (actual time=106.716..114.067 rows=5457 loops=1)'
'                                Sort Key: vc12.neid, vc12.aendprot_slot, ("substring"(vc12.aendprot_name, 1, 5))'
'                                Sort Method: quicksort  Memory: 1845kB'
'                                Buffers: shared hit=1500'
'                                ->  Hash Join  (cost=225.63..2044.02 rows=5418 width=281) (actual time=24.752..84.046 rows=5457 loops=1)'
'                                      Hash Cond: (g.neid = ne.neid)'
'                                      Buffers: shared hit=1500'
'                                      ->  Hash Right Join  (cost=184.78..1928.53 rows=5457 width=260) (actual time=20.462..59.900 rows=5457 loops=1)'
'                                            Hash Cond: (vc12.chid = g.chid)'
'                                            Buffers: shared hit=1484'
'                                            ->  Seq Scan on unem_channel vc12  (cost=0.00..1681.62 rows=5460 width=209) (actual time=0.009..15.080 rows=5460 loops=1)'
'                                                  Filter: (layerrate = 'VC12'::text)'
'                                                  Rows Removed by Filter: 15310'
'                                                  Buffers: shared hit=1422'
'                                            ->  Hash  (cost=116.57..116.57 rows=5457 width=55) (actual time=20.438..20.438 rows=5457 loops=1)'
'                                                  Buckets: 1024  Batches: 1  Memory Usage: 499kB'
'                                                  Buffers: shared hit=62'
'                                                  ->  Seq Scan on vc12_group g  (cost=0.00..116.57 rows=5457 width=55) (actual time=0.007..9.693 rows=5457 loops=1)'
'                                                        Buffers: shared hit=62'
'                                      ->  Hash  (cost=35.68..35.68 rows=413 width=25) (actual time=4.276..4.276 rows=413 loops=1)'
'                                            Buckets: 1024  Batches: 1  Memory Usage: 24kB'
'                                            Buffers: shared hit=16'
'                                            ->  Hash Join  (cost=20.83..35.68 rows=413 width=25) (actual time=1.541..3.528 rows=413 loops=1)'
'                                                  Hash Cond: (ne.psindex = ps.psindex)'
'                                                  Buffers: shared hit=16'
'                                                  ->  Seq Scan on ne_fo ne  (cost=0.00..9.16 rows=416 width=8) (actual time=0.008..0.636 rows=416 loops=1)'
'                                                        Buffers: shared hit=5'
'                                                  ->  Hash  (cost=15.37..15.37 rows=437 width=25) (actual time=1.520..1.520 rows=437 loops=1)'
'                                                        Buckets: 1024  Batches: 1  Memory Usage: 26kB'
'                                                        Buffers: shared hit=11'
'                                                        ->  Seq Scan on ps  (cost=0.00..15.37 rows=437 width=25) (actual time=0.006..0.756 rows=437 loops=1)'
'                                                              Buffers: shared hit=11'
'                          ->  Sort  (cost=2406.90..2460.22 rows=21329 width=20) (actual time=103.080..132.460 rows=24210 loops=1)'
'                                Sort Key: pap.neid, pap.slot, pap.unittype'
'                                Sort Method: quicksort  Memory: 2428kB'
'                                Buffers: shared hit=660'
'                                ->  Seq Scan on ttp_ pap  (cost=0.00..873.29 rows=21329 width=20) (actual time=0.012..35.272 rows=21329 loops=1)'
'                                      Buffers: shared hit=660'
'              ->  Sort  (cost=2406.90..2460.22 rows=21329 width=20) (actual time=90.638..150.883 rows=58345 loops=1)'
'                    Sort Key: paw.neid, paw.slot, paw.unittype'
'                    Sort Method: quicksort  Memory: 2428kB'
'                    Buffers: shared hit=660'
'                    ->  Seq Scan on ttp_ paw  (cost=0.00..873.29 rows=21329 width=20) (actual time=0.014..30.152 rows=21329 loops=1)'
'                          Buffers: shared hit=660'
'  ->  Sort  (cost=2406.90..2460.22 rows=21329 width=20) (actual time=79.700..130.953 rows=47994 loops=1)'
'        Sort Key: pz.neid, pz.slot, pz.unittype'
'        Sort Method: quicksort  Memory: 2428kB'
'        Buffers: shared hit=660'
'        ->  Seq Scan on ttp_ pz  (cost=0.00..873.29 rows=21329 width=20) (actual time=0.013..26.941 rows=21329 loops=1)'
'              Buffers: shared hit=660'
'Planning time: 75.681 ms'
'Execution time: 27230.201 ms'



вьюшка unem_vc12:
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
-- View: unem_vc12

 SELECT vc12.chid,
    vc12.neid,
    vc12.protected,
    vc12.label,
    vc12.aendwork_name,
    paw.ttpid AS awttpid,
    pz.ttpid AS zttpid,
    pap.ttpid AS apttpid,
    vc12.aendwork_ch,
    vc12.aendwork_port,
    vc12.aendwork_portid,
    vc12.aendwork_slot,
    vc12.aendwork_subslot,
    vc12.aendprot_name,
    vc12.aendprot_ch,
    vc12.aendprot_port,
    vc12.aendprot_portid,
    vc12.aendprot_slot,
    vc12.aendprot_subslot,
    vc12.zend_name,
    vc12.zend_ch,
    vc12.zend_port,
    vc12.zend_portid,
    vc12.zend_slot,
    vc12.zend_subslot
   FROM unem_channel vc12
     LEFT JOIN ttp_ paw ON vc12.neid = paw.neid AND (
        CASE
            WHEN "substring"(vc12.aendwork_name, 1, 5) <> 'SYN4E'::text THEN "substring"(vc12.aendwork_name, 16, 1) = paw.portnumber::text
            ELSE "substring"(vc12.aendwork_name, "position"(vc12.aendwork_name, '('::text) + 6, 1) = paw.portnumber::text AND (paw.layerrate = ANY (ARRAY[15, 45]))
        END OR
        CASE
            WHEN "substring"(vc12.aendwork_name, 1, 5) = 'SYNUF'::text THEN true
            ELSE false
        END) AND vc12.aendwork_slot = paw.slot AND "substring"(vc12.aendwork_name, 1, 5) = paw.unittype
     LEFT JOIN ttp_ pap ON vc12.neid = pap.neid AND (
        CASE
            WHEN "substring"(vc12.aendprot_name, 1, 5) <> 'SYN4E'::text THEN "substring"(vc12.aendprot_name, 16, 1) = pap.portnumber::text
            ELSE "substring"(vc12.aendprot_name, "position"(vc12.aendprot_name, '('::text) + 6, 1) = pap.portnumber::text AND (pap.layerrate = ANY (ARRAY[15, 45]))
        END OR
        CASE
            WHEN "substring"(vc12.aendprot_name, 1, 5) = 'SYNUF'::text THEN true
            ELSE false
        END) AND vc12.aendprot_slot = pap.slot AND "substring"(vc12.aendprot_name, 1, 5) = pap.unittype
     LEFT JOIN ttp_ pz ON vc12.neid = pz.neid AND (
        CASE
            WHEN "substring"(vc12.zend_name, 1, 5) <> 'SYN4E'::text THEN "substring"(vc12.zend_name, 16, 1) = pz.portnumber::text
            ELSE "substring"(vc12.zend_name, "position"(vc12.zend_name, '('::text) + 6, 1) = pz.portnumber::text AND (pz.layerrate = ANY (ARRAY[15, 45]))
        END OR
        CASE
            WHEN "substring"(vc12.zend_name, 1, 5) = 'SYNUF'::text THEN true
            ELSE false
        END) AND vc12.zend_slot = pz.slot AND "substring"(vc12.zend_name, 1, 5) = pz.unittype
  WHERE vc12.layerrate = 'VC12'::text;



Понимаю только, что я что-то кардинально неправильно делаю(((
...
Рейтинг: 0 / 0
Медленно выполняется запрос
    #39425920
Alewteena1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Alewteena1,
таблицы
ttp_:
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
Имя	ttp_	
OID	97731875	
Владелец	postgres	
Табличное пространство	pg_default	
ACL		
Тип данных		
Первичный ключ	ttpid	
Строк (приблизительно)	21329	
Коэффициент заполнения		
Строк (сосчитано)	не сосчитано	
Наследует таблицы	Нет	
Число наследованных таблиц	0	
Нежурналируемая?	Нет	
Имеет OIDы?	Нет	
Системная таблица?	Нет	
Комментарий


Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
110.
111.
112.
113.
114.
115.
116.
117.
118.
119.
120.
121.
122.
123.
-- Table: ttp_

-- DROP TABLE ttp_;

CREATE TABLE ttp_
(
  ttpid integer NOT NULL,
  neid integer,
  slot smallint,
  subslot smallint,
  portnumber smallint,
  portttpid smallint,
  unittype text,
  label text,
  layerrate smallint,
  nbof64k smallint,
  hascasprocessing smallint,
  supportcasinlastts smallint,
  ttpporttype smallint,
  sector smallint,
  mode smallint,
  needprotectionwithsamechannel smallint,
  canprotectinsncpi smallint,
  revertiveprotectionsupported smallint,
  isactive smallint,
  connectiontype smallint,
  connectedchannelsmustmatch smallint,
  additionalinfo text,
  allocatedbandwidth integer,
  totalbandwidth integer,
  configstate text,
  adminstate text,
  sfpserialtransceivertype text,
  sfpvendorname text,
  sfpvendorpn text,
  sfprevisionlevel text,
  sfplaserwavelength text,
  qlinput text,
  qloutput text,
  samode text,
  sa4bit smallint,
  sa5bit smallint,
  sa6bit smallint,
  sa7bit smallint,
  sa8bit smallint,
  timingsource1 text,
  canbeused1 smallint,
  timingsource2 text,
  canbeused2 smallint,
  timingsource3 text,
  canbeused3 smallint,
  timingsource4 text,
  canbeused4 smallint,
  timingsource5 text,
  canbeused5 smallint,
  timingsource6 text,
  canbeused6 smallint,
  timingsource7 text,
  canbeused7 smallint,
  CONSTRAINT ttp__pkey PRIMARY KEY (ttpid),
  CONSTRAINT nettp FOREIGN KEY (neid)
      REFERENCES ne_fo (neid) MATCH FULL
      ON UPDATE NO ACTION ON DELETE NO ACTION
)
WITH (
  OIDS=FALSE
);
ALTER TABLE ttp_
  OWNER TO postgres;

-- Index: fki_nettp

-- DROP INDEX fki_nettp;

CREATE INDEX fki_nettp
  ON ttp_
  USING btree
  (neid);

-- Index: layerratettp_ix

-- DROP INDEX layerratettp_ix;

CREATE INDEX layerratettp_ix
  ON ttp_
  USING btree
  (layerrate);

-- Index: port_ix

-- DROP INDEX port_ix;

CREATE INDEX port_ix
  ON ttp_
  USING btree
  (portnumber);

-- Index: slot_ix

-- DROP INDEX slot_ix;

CREATE INDEX slot_ix
  ON ttp_
  USING btree
  (slot);

-- Index: ttpid_ix

-- DROP INDEX ttpid_ix;

CREATE INDEX ttpid_ix
  ON ttp_
  USING btree
  (ttpid);

-- Index: unit_ix

-- DROP INDEX unit_ix;

CREATE INDEX unit_ix
  ON ttp_
  USING btree
  (unittype COLLATE pg_catalog."default");


unem_channel
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
Имя	unem_channel	
OID	97731713	
Владелец	postgres	
Табличное пространство	pg_default	
ACL		
Тип данных		
Первичный ключ	chid	
Строк (приблизительно)	20770	
Коэффициент заполнения		
Строк (сосчитано)	не сосчитано	
Наследует таблицы	Нет	
Число наследованных таблиц	0	
Нежурналируемая?	Нет	
Имеет OIDы?	Нет	
Системная таблица?	Нет	
Комментарий


Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
-- Table: unem_channel

-- DROP TABLE unem_channel;

CREATE TABLE unem_channel
(
  chid integer NOT NULL,
  neid integer,
  layerrate text,
  label text,
  protected text,
  aendwork_name text,
  aendwork_ch integer,
  aendwork_port integer,
  aendwork_portid integer,
  aendwork_slot integer,
  aendwork_subslot integer,
  aendprot_name text,
  aendprot_ch integer,
  aendprot_port integer,
  aendprot_portid integer,
  aendprot_slot integer,
  aendprot_subslot integer,
  zend_name text,
  zend_ch integer,
  zend_port integer,
  zend_portid integer,
  zend_slot integer,
  zend_subslot integer,
  wttpid integer,
  pttpid integer,
  zttpid integer,
  klm_w integer,
  klm_p integer,
  klm_z integer,
  card_w1 text,
  card_w2 text,
  card_w3 text,
  card_p1 text,
  card_p2 text,
  card_p3 text,
  card_z1 text,
  card_z2 text,
  card_z3 text,
  CONSTRAINT unem_channel_pkey PRIMARY KEY (chid),
  CONSTRAINT neid FOREIGN KEY (neid)
      REFERENCES ne_fo (neid) MATCH SIMPLE
      ON UPDATE NO ACTION ON DELETE NO ACTION
)
WITH (
  OIDS=FALSE
);
ALTER TABLE unem_channel
  OWNER TO postgres;

CREATE INDEX chid_ix
  ON unem_channel
  USING btree
  (chid);

CREATE INDEX fki_neid
  ON unem_channel
  USING btree
  (neid);


CREATE INDEX layerrate_ix
  ON unem_channel
  USING btree
  (layerrate COLLATE pg_catalog."default");

...
Рейтинг: 0 / 0
Медленно выполняется запрос
    #39425948
Фотография vyegorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alewteena1,

Вы выбираете всё из таблиц своим запросом. Чем больше сами таблицы, тем больше запрос будет исполняться, что логично.
...
Рейтинг: 0 / 0
Медленно выполняется запрос
    #39425966
ora601
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vyegorovAlewteena1,

Вы выбираете всё из таблиц своим запросом. Чем больше сами таблицы, тем больше запрос будет исполняться, что логично.

Ну там таблицы до 47к строк.

Странно то что на последнем этапе (merge left) при мердж 47к ttp_ pz и 5.4к строк по подзапросу > 1млн lio (отсюда и время 769.334..27218.885) - или кардиналити не то, но это достаточно долго для таких объемов, ну и откуда там столько lio не тоже вопрос (часто используемая таблица?)
...
Рейтинг: 0 / 0
17 сообщений из 17, страница 1 из 1
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Медленно выполняется запрос
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]