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