Есть мега запрос, собираемых из двух частей, каждая часть из которых строиться на базе одной и той же выборки из таблицы item, но дальнейшая судьба этих выборок разная. Для этой выборки есть параметр передаваемый из вне. Но так как выборка поминается два раза, то знаков вопроса в теле запроса получается два, и передавать этот параметр понадобиться два раза
select item_id, sum(count) from (
select l.active as item_id, count(l.passive) as count
from item_link as l, item as i
where l.active=i.item_id and i.type_id=? and l.linktype_id='TOPIC' group by l.active
union
select item_id, 0 as count from item where type_id =?
) as s group by item_id;
Внимание вопрос, есть ли в PostgreSQL какой нибудь способ сначала поймать параметр, поименовать, (что то на абстрактном языке выглядящее как SET My_Cool_Param_Var=?) а потом его уже поименованным использовать дважды?
Вопрос второй: Как в оном же постгресе померить время исполнения запроса (не пиша перловый скрипт улавливающий time до и после), и как сделать так чтобы он каждый запрос исполнял на холодную, без предварительно закешированных значений?
select item_id, sum(count) from (
select l.active as item_id, count(l.passive) as count
from item_link as l, item as i
where l.active=i.item_id and i.type_id=? and l.linktype_id='TOPIC' group by l.active
union
select item_id, 0 as count from item where type_id =?
) as s group by item_id;
Внимание вопрос, есть ли в PostgreSQL какой нибудь способ сначала поймать параметр, поименовать, (что то на абстрактном языке выглядящее как SET My_Cool_Param_Var=?) а потом его уже поименованным использовать дважды?
Вопрос второй: Как в оном же постгресе померить время исполнения запроса (не пиша перловый скрипт улавливающий time до и после), и как сделать так чтобы он каждый запрос исполнял на холодную, без предварительно закешированных значений?
no subject
Date: 2009-10-02 08:11 am (UTC)2а EXPLAIN ...
2б никак
no subject
Date: 2009-10-02 03:57 pm (UTC)2. Нужно смотреть actual time первой строки? а cost это в чем мериется?
no subject
Date: 2009-10-02 04:43 pm (UTC)2. EXPLAIN выдает тебе план. Если он хороший (нет SEQ SCAN-ов по большой таблице), то счастья от этого запроса тебе больше не будет, надо его переписать. cost - что-то внутреннее.
no subject
Date: 2009-10-02 04:44 pm (UTC)no subject
Date: 2009-10-02 05:34 pm (UTC)no subject
Date: 2009-10-02 08:12 pm (UTC)no subject
Date: 2009-10-02 08:25 pm (UTC)