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
