[SP-pm] Duvida: usar arquivo TXT ou tabela com campo array

Renato Santos renato.cron at gmail.com
Fri Jul 30 11:58:48 PDT 2010


my god!
acho q vou parar de estudar jogos e vou virar DBA, amei essa do WITH!

(obs; tenho 18 anos, e nao sai do 3 ano ainda...)

2010/7/30 Eden Cardim <edencardim at gmail.com>

> >>>>> "Renato" == Renato Santos <renato.cron at gmail.com> writes:
>
>    Renato> Como eu usaria o Exists?  Ah, vou tentar explicar para que
>    Renato> criem os indexs.
>
>
>    Renato> Algo como: CREATE TEMP TABLE tmp_ciclos AS SELECT ciclo FROM
>    Renato> tb_ciclo_inicio GROUP BY ciclo ORDER BY ciclo DESC limit 10;
>
>
>    Renato> SELECT a.cod_cn, a.ciclo FROM tb_ciclo_inicio a INNER JOIN
>    Renato> tmp_ciclos b ON (a.ciclo = b.ciclo) ORDER BY cod_cn, ciclo
>
>
> Cuidado, você precisa de um lock na tabela pra garantir resultados
> consistentes. Alguma consulta pode mudar a ordenação da tabela antes que
> a segunda consulta execute, e aí você vai obter os valores errados.
>
> Essa é uma consulta bem chatinha de implementar mesmo, eu mudaria um
> pouco a estratégia:
>
> WITH cutoff AS
> ( SELECT min(ciclo) AS val
>    FROM tb_ciclo_inicio
>    ORDER BY ciclo DESC LIMIT 10
> )
> SELECT tci.cod_cn, tci.ciclo
> FROM tb_ciclo_inicio tci
> WHERE tci.ciclo <= (SELECT val FROM cutoff);
>
> A cláusula WITH cria a tabela temporária automaticamente e como só tem 1
> registro na tabela, não tem como acontecer scan. Sem o join vai
> acontecer só um scan bem menor na tabela principal que com um índice
> deve virar um index scan, que geralmente é rápido o suficiente, além
> disso, tudo isso vai ocorrer dentro de uma única transação. P.S.: eu não
> testei a consulta acima, pode ser que tenha algum erro de sintaxe.
> _______________________________________________
> SaoPaulo-pm mailing list
> SaoPaulo-pm at pm.org
> http://mail.pm.org/mailman/listinfo/saopaulo-pm
>



-- 
Renato Santos
http://www.renatocron.com/blog/
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.pm.org/pipermail/saopaulo-pm/attachments/20100730/5212ccf8/attachment.html>


More information about the SaoPaulo-pm mailing list