[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