Caro Euler e demais membros:

Fiz um bocado de testes medindo os tempos e fiz um constatação boa e outra
ruim.

A boa é que basicamente não houve diferença em deletar o mestre e deixar o
banco fazer o resto e eliminar os detalhes e depois eliminar o mestre.

A ruim é que fiz um programa gerar 15 mestres com 500 detalhes cada um e o
tempo que ele levou para fazer isto foi praticamente o mesmo que um delete
no mestre consumiu para eliminar este registro mestre e seus 500 registros
detalhe correspondentes. O problema é que não consigo entender porque o
PostgreSQL é tão eficiente em inserir e/ou tão ineficiente para excluir.

A um ou dois e-mails atras o Euler pediu informações sobre as tabelas e sua
estrutura a coisa é basicamente a seguinte:

NotaFiscal (1, N) NotaItem
NotaFiscal (1, N) Parcelas
NotaFiscal (1, N) AliquotasICMS

NotaFiscal (125 campos, 220.000 registros, 15 constraints, 26 índices)
NotaItem (58 campos, 621.000 registros, 6 constraints, 10 índices)
Parcela (56 campos, 177.000 registros, 12 constraints, 33 índices)
NotaAliquotas (11 campos, 11.000 registros, 4 constraints, 2 índices)

Sugestões serão bem vindas,

Sergio Medeiros Santi
Trabin Software & Consulting
+55 0xx 53 3227 4157  /  9982 9009

----- Original Message ----- 
From: "Euler Taveira de Oliveira" <[EMAIL PROTECTED]>
To: <[email protected]>; <[EMAIL PROTECTED]>
Sent: Monday, January 30, 2006 5:57 PM
Subject: Re: [PostgreSQL-Brasil] Exclusão muito lenta


> --- Sergio Medeiros Santi <[EMAIL PROTECTED]> escreveu:
>
> > Bem acabei concluindo que o SO faz uma boa diferença, mas acredito
> > que deve
> > ser possível otimizar a exclusão no Windows, portanto continuo a
> > procura de
> > sugestões.
> >
> Faça o seguinte para medir os tempos de execução:
>
> [EMAIL PROTECTED]:~# psql -U pgsql sistemas
> Bem-vindo ao psql 8.0.3, o terminal iterativo do PostgreSQL.
>
> Digite:  \copyright para mostrar termos de distribuição
>          \h para ajuda com comandos SQL
>          \? para ajuda com comandos do psql
>          \g ou terminar com ponto-e-vírgula para executar a consulta
>          \q para sair
>
> sistemas=# \timing
> Tempo de execução está habilitado.
> sistemas=# vacuum full analyze;
> VACUUM
> Tempo: 1876,957 ms
> sistemas=# select * from stp.ufs;
>  id_uf | sg_uf |        nm_uf
> -------+-------+---------------------
>      1 | AC    | Acre
>      2 | AL    | Alagoas
>      3 | AP    | Amapá
>      4 | AM    | Amazonas
>      5 | BA    | Bahia
>      6 | CE    | Ceará
>      7 | DF    | Distrito Federal
>      8 | ES    | Espírito Santo
>      9 | GO    | Goiás
>     10 | MA    | Maranhão
>     11 | MT    | Mato Grosso
>     12 | MS    | Mato Grosso do Sul
>     13 | MG    | Minas Gerais
>     14 | PR    | Paraná
>     15 | PB    | Paraíba
>     16 | PA    | Pará
>     17 | PE    | Pernambuco
>     18 | PI    | Piauí
>     19 | RN    | Rio Grande do Norte
>     20 | RS    | Rio Grande do Sul
>     21 | RJ    | Rio de Janeiro
>     22 | RO    | Rondônia
>     23 | RR    | Roraima
>     27 | TO    | Tocantins
>     24 | SC    | Santa Catarina
>     25 | SE    | Sergipe
>     26 | SP    | São Paulo
> (27 registros)
>
> Tempo: 2,371 ms
> sistemas=#
>
>
> Tente executar estes procedimentos com e sem triggers, ou seja,
> utilizando CASCADE ou não. Não esqueça de fazer um VACUUM antes das
> operações.
>
>
> Euler Taveira de Oliveira
> euler[at]yahoo_com_br
>
>
>
>
>
>
>
>
> _______________________________________________________
> Yahoo! doce lar. Faça do Yahoo! sua homepage.
> http://br.yahoo.com/homepageset.html
>
>
>


_______________________________________________
Grupo de Usuários do PostgreSQL no Brasil
http://www.postgresql.org.br

Responder a