Fabio Henrique, > Eu tambem rodo script enormes, nao grandes iguais ao seus, com 1 milhao > de linhas, mas em torno de 100 mil linhas com varios inserts em cada > linha. (...) Para rodar esses > scripts eu utilizo o PGadmin que, com certeza, nao foi feito para rodar > scripts deste tamanho.
Concordo plenamente! > Se eu nao me engano, ele faz justamente isso q vc > qr, ele vai inserindo as linhas e dando commit ate onde der erro, nao > precisando vc ter q rodar o script novamente. Uma outra alternativa > seria para cada linha vc inserir um 'BEGIN;' no inicio e um 'COMMIT;' no > final. Pelo que usei, não faz não. Quando tem um monte de comandos separados por ';', ele considera tudo parte da mesma transação, o que é um desastre nesse caso. Isso me obriga a rodar um pedaço de cada vez, porque: 1. Se *der* erro de integridade referencial, eu perdi o tempo que ele ficou rodando antes do erro (e o rollback que eu não pedi para ele fazer). Depois, tenho de achar o bendito comando dentro do script (nem sempre é fácil quando o script é enorme), rodar tudo até antes do comando que deu erro, apagar o trecho já executado, corrigir o comando e executar dali em diante. 2. Se *não der* erro de integridade referencial, preciso rodar um trechinho de cada vez para não estourar o limite de LOCKs do servidor (o chato é que ele leva um tempão para descobrir que o limite foi atingido). Não, eu não quero aumentar esse valor porque o valor padrão é perfeitamente aceitável para uso normal, e não quero ficar parando, reconfigurando e reiniciando serviço toda a vez que quiser rodar um inocente script numa estação. Valeu, Mozart Hasse _______________________________________________ pgbr-geral mailing list [email protected] https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
