Procedure impede conexão enquanto está sendo executada
Olá família DevMedia tudo bem?
Bom, seguinte.. Tenho uma procedure q atualiza 2 tabelas uma pai e outra filho. O processo demora em torno de 50 min pra ser executado. Porém enquanto esse processo está em execução ninguém consegue acessar o banco de dados. Alguém sabe o que pode ser e uma possível forma de como resolver esse problema?
Muito obrigado a todos de verdade!
Bom, seguinte.. Tenho uma procedure q atualiza 2 tabelas uma pai e outra filho. O processo demora em torno de 50 min pra ser executado. Porém enquanto esse processo está em execução ninguém consegue acessar o banco de dados. Alguém sabe o que pode ser e uma possível forma de como resolver esse problema?
Muito obrigado a todos de verdade!
Lucas Oliveira
Curtidas 0
Respostas
Claudia Nogueira
20/09/2012
Qual o componente de conexão com o banco de dados?
Tenho um software feito em Delphi com firebird e utilizo os da paleta InterBase, e no componente IBTransaction uso read_committed=1 e isso de bloquear o acesso ao BD não ocorre. Tenho servidor de aplicação rodando em segundo plano e não influencia o uso do sistema tanto na mesma máquina do servidor de aplicação quanto nos demais terminais.
Tenho um software feito em Delphi com firebird e utilizo os da paleta InterBase, e no componente IBTransaction uso read_committed=1 e isso de bloquear o acesso ao BD não ocorre. Tenho servidor de aplicação rodando em segundo plano e não influencia o uso do sistema tanto na mesma máquina do servidor de aplicação quanto nos demais terminais.
GOSTEI 0
Lucas Oliveira
20/09/2012
Então Claudiadnh eu uso o ZeosLib. Inicio uma transação e executo a procedure. Mas mesmo sendo outro componente será q isso influencia? A final de contas ta só executando uma procedure no banco, o componente não seria só pra mandar o "sql" pra la? Eu n entendo mto internamente o funcionamento de Banco viu, por isso qqr coisa por favor me desculpa
GOSTEI 0
Claudia Nogueira
20/09/2012
O tipo de bloqueio e o nível de isolamento configurado no componente responsável pela transação influenciam diretamente no acesso ao banco de dados enquanto outra operação estiver sendo executada.
Provavelmente o tipo de bloqueio ou nível de isolamento está fazendo com que fique esperando um commit ou um rollback por parte da operação da procedure.
Nunca usei esse componente, mas tem nele alguma coisa referente a wait, nowait, read_committed, snapshot with table stability e etc.
Nesse link fala um pouco sobre isso: http://pt.scribd.com/doc/61272876/Tutorial-Zeos-Especial-Em-Portugues-BR
Provavelmente o tipo de bloqueio ou nível de isolamento está fazendo com que fique esperando um commit ou um rollback por parte da operação da procedure.
Nunca usei esse componente, mas tem nele alguma coisa referente a wait, nowait, read_committed, snapshot with table stability e etc.
Nesse link fala um pouco sobre isso: http://pt.scribd.com/doc/61272876/Tutorial-Zeos-Especial-Em-Portugues-BR
GOSTEI 0
Lucas Oliveira
20/09/2012
O tipo de bloqueio e o nível de isolamento configurado no componente responsável pela transação influenciam diretamente no acesso ao banco de dados enquanto outra operação estiver sendo executada.
Provavelmente o tipo de bloqueio ou nível de isolamento está fazendo com que fique esperando um commit ou um rollback por parte da operação da procedure.
Nunca usei esse componente, mas tem nele alguma coisa referente a wait, nowait, read_committed, snapshot with table stability e etc.
Nesse link fala um pouco sobre isso: http://pt.scribd.com/doc/61272876/Tutorial-Zeos-Especial-Em-Portugues-BR
Provavelmente o tipo de bloqueio ou nível de isolamento está fazendo com que fique esperando um commit ou um rollback por parte da operação da procedure.
Nunca usei esse componente, mas tem nele alguma coisa referente a wait, nowait, read_committed, snapshot with table stability e etc.
Nesse link fala um pouco sobre isso: http://pt.scribd.com/doc/61272876/Tutorial-Zeos-Especial-Em-Portugues-BR
Nossa Claudia Brigadão msm! Ainda não resolveu o problema mas me deu uma boa luz. Conversei c meu chefe e ele me explicou melhor o problema. Analisei o código e acho q entendi. Ele conecta sim no banco. O problema eh q durante esse processo de atualização da tabela pai e filho. Os clientes ficam tetando acessa-las e o banco está no meio do processo. Então como eu percorro todos os registros ele deve ta travando esses registros pra não ter leitura suja. To testando as formas de conexão do Zeos (nesse artigo q você postou). Caso não funcione mesmo assim vou tentar com o IB e vamos ver no que da né? De qualquer forma Brigadão pela ajuda até aqui viu Claudia!! Brigadão msm.
GOSTEI 0