Mozart Hasse escreveu:
> Olá,
>
> Por acaso o Postgres tem o equivalente a este comando do SQL Server? Ele se
> aplica à conexão e indica qual a prioridade do processo corrente caso ele se
> envolva num deadlock. Eu preciso *muito* ter o controle sobre isso para poder
> rodar alguns processos de baixa prioridade sem *nunca* comprometer
> transações de processos críticos.
> Respostas antecipadas:
> * Não, tentar rodar de novo a transação no processo crítico é desastroso,
> tanto em desempenho quanto em esforço de programação.
> * Não, eu não posso evitar completamente o deadlock entre esses dois
> processos (baixa x alta prioridade). Já sacrifiquei tudo o que poderia de
> paralelismo fazendo os processos de alta prioridade não causarem deadlocks
> entre si.
> * Não, eu não vou esquartejar minhas transações em pedaços menores tão
> cedo, se é que algum dia eu vou fazer isso só por um capricho do Postgres.
>
> Atenciosamente,
>
> Mozart Hasse
>
>   
Mozart,

Sei que não é a resposta esperada, mas a verdade a vezes doí, deadlock é 
problema de lógica da aplicação. Você pode ter milhares de transações em 
paralelo e não ter deadlock, assim como ter somente dois processos e 
gerar deadlock. Para resolver problemas deadlock não é necessário 
sacrificar paralelismo e sim rever a lógica de aquisição de locks da 
aplicação.
Uma dica simples é adquirir os locks nos objetos sempre na mesma ordem.

Para defender o postgresql posso ter informar que por exemplo o bancos 
de dados bam-bam do mercado (Oracle) não tem comando similar a este e 
isto não é um problema.

Leandro.

"Esta mensagem do SERVIÇO FEDERAL DE PROCESSAMENTO DE DADOS (SERPRO), empresa 
pública federal regida pelo disposto na Lei Federal nº 5.615, é enviada 
exclusivamente a seu destinatário e pode conter informações confidenciais, 
protegidas por sigilo profissional. Sua utilização desautorizada é ilegal e 
sujeita o infrator às penas da lei. Se você a recebeu indevidamente, queira, 
por gentileza, reenviá-la ao emitente, esclarecendo o equívoco."

"This message from SERVIÇO FEDERAL DE PROCESSAMENTO DE DADOS (SERPRO) -- a 
government company established under Brazilian law (5.615/70) -- is directed 
exclusively to its addressee and may contain confidential data, protected under 
professional secrecy rules. Its unauthorized use is illegal and may subject the 
transgressor to the law's penalties. If you're not the addressee, please send 
it back, elucidating the failure."
_______________________________________________
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a