Ir para conteúdo
Seja Membro VIP - Remova Banners de Propagandas, Tenha Liberado Qualquer Download, Além de Acessos em Áreas Exclusivas!! ×
Quer acesso a todas as Áreas do Fórum, até aquelas só para membros VIPs? Também quer poder baixar qualquer ARQUIVO? ×
AVISO AOS MEMBROS:

Fizemos uma atualização em 18/06/2023, e a forma de acesso ao Fórum mudou. Não mais está sendo aceito o login pelo Nome de Exibição cadastrado. Agora, apenas pelo email e pelos integradores de Login do Facebook, Google e Microsoft. O Facebook estava com uma validação pendente e já foi normalizado o acesso, já o Google, ainda estamos verificando o que está ocorrendo que não está funcionando.
Caso precisem de ajuda para o login pelo email acesse o link << Esqueci minha senha de acesso>> ou nos envie um pedido de ajuda pelo email admin@forumrm.com.br

Administração
ForumRM

Problema de LOCKS (RESOLVIDO)


Clayton Bispo

Posts Recomendados


  • Tópicos Que Criei:  3
  • Tópicos/Dia:  0.00
  • Meu Conteúdo:  8
  • Conteúdo/Dia:  0.00
  • Reputação:   0
  • Pontos/Conquistas:  70
  • Conteúdo Resolvido:  0
  • Dias Ganho:  0
  • Status:  Offline
  • Idade:  43

Pessoal,

Boa tarde!

Sou novato em SQL, por este motivo gostaria de ajuda para resolver problema de LOCKS com a consulta abaixo. O erro especificamente é:

Error 21/10/2009 16:32:35 0:00:18.954 SQL Server Database Error: Transaction (Process ID 269) was deadlocked on lock resources with another process and has been chosen as the deadlock victim. Rerun the transaction. 2 0

SELECT

CODCOLIGADA [01-CODIGO COLIGADA],

NOMEFANTASIA [02-NOME COLIGADA],

CODTDO [03-COD TP DOC],

DESCRICAO [04-DESCRICAO TIPO DOCUMENTO],

IDLAN [05-REF. DOCUMENTO],

NUMERODOCUMENTO [06-NUMERO DOCUMENTO],

CONVERT(VARCHAR(10),DATAVENCIMENTO,103) [07-VENCIMENTO],

CODCFO [08-COD FORNECEDOR],

NOME [09-NOME FORNECEDOR],

(V31) [10-VENCIDOS > 30 DIAS],

(V30) [11-VENCIDOS 11 A 30 DIAS],

(V10) [12-VENCIDOS DE 1 A 10 DIAS],

(V31)+(V30)+(V10) [13-TOTAL VENCIDOS],

(V00) [14-VENCENDO HOJE],

(AV10) [15-A VENCER EM ATE 10 DIAS],

(AV30) [16-A VENCER DE 11 A 30 DIAS],

(AV31) [17-A VENCER > 30],

(AV10)+(AV30)+(AV31) [18-TOTAL A VENCER],

(V31)+(V30)+(V10)+(V00)+(AV10)+(AV30)+(AV31) [19-TOTAL GERAL]

FROM

(SELECT 'VENCIDOS DE 1 A 10 DIAS' TEMPO, FLAN.VALORORIGINAL V10,0 V30,0 V31,0 V00, 0 AV10, 0 AV30, 0 AV31,

FLAN.CODCOLIGADA,

GCOLIGADA.NOMEFANTASIA,

FLAN.CODTDO,

FTDO.DESCRICAO,

FLAN.IDLAN,

FLAN.NUMERODOCUMENTO,

FLAN.CODCFO,

FCFO.NOME,

FLAN.DATAEMISSAO,

FLAN.DATAVENCIMENTO,

FLAN.VALORORIGINAL,

FLAN.PAGREC,

FLAN.DATABAIXA

FROM FLAN, FCFO, FTDO, GCOLIGADA

WHERE FLAN.CODCOLIGADA = GCOLIGADA.CODCOLIGADA

AND FCFO.CODCOLIGADA = GCOLIGADA.CODCOLIGADA

AND FTDO.CODCOLIGADA = GCOLIGADA.CODCOLIGADA

AND FCFO.CODCFO=FLAN.CODCFO

AND FCFO.CODCOLIGADA=FLAN.CODCOLIGADA

AND FLAN.CODCOLIGADA = FTDO.CODCOLIGADA

AND FLAN.CODTDO = FTDO.CODTDO

AND FLAN.CODCOLIGADA IN ('1','5')

AND FLAN.STATUSLAN = 0

AND FLAN.PAGREC = 2

AND FLAN.STATUSEXTRATO <> 7

AND FLAN.STATUSEXTRATO <> 12

AND FLAN.TIPOCONTABILLAN <> 0

AND FLAN.DATAVENCIMENTO<=( (GETDATE())-1)

AND FLAN.DATAVENCIMENTO>=( (GETDATE())-10)

AND FLAN.DATAVENCIMENTO<=(GETDATE())

AND ( FLAN.IDLAN IN ( SELECT IDLAN FROM FLANCONT WHERE CODCOLIGADA IN ('1','5') )

OR FLAN.IDMOV IN ( SELECT IDMOV FROM TMOVCONT WHERE CODCOLIGADA IN ('1','5') )

OR FLAN.IDBAIXAPARCIAL IN ( SELECT IDLAN FROM FLANCONT WHERE CODCOLIGADA IN ('1','5') )

OR FLAN.IDFAT IN ( SELECT IDFAT FROM FLAN WHERE CODCOLIGADA IN ('1','5') AND IDLAN IN

( SELECT IDLAN FROM FLANCONT WHERE CODCOLIGADA IN ('1','5') ) )

)

UNION

SELECT 'VENCIDOS 11 A 30 DIAS',0 V10,FLAN.VALORORIGINAL V30,0 V31,0 V00, 0 AV10, 0 AV30, 0 AV31,

FLAN.CODCOLIGADA,

GCOLIGADA.NOMEFANTASIA,

FLAN.CODTDO,

FTDO.DESCRICAO,

FLAN.IDLAN,

FLAN.NUMERODOCUMENTO,

FLAN.CODCFO,

FCFO.NOME ,

FLAN.DATAEMISSAO,

FLAN.DATAVENCIMENTO,

FLAN.VALORORIGINAL,

FLAN.PAGREC,

FLAN.DATABAIXA

FROM FLAN, FCFO, FTDO, GCOLIGADA

WHERE FLAN.CODCOLIGADA = GCOLIGADA.CODCOLIGADA

AND FCFO.CODCOLIGADA = GCOLIGADA.CODCOLIGADA

AND FTDO.CODCOLIGADA = GCOLIGADA.CODCOLIGADA

AND FCFO.CODCFO=FLAN.CODCFO

AND FCFO.CODCOLIGADA=FLAN.CODCOLIGADA

AND FLAN.CODCOLIGADA = FTDO.CODCOLIGADA

AND FLAN.CODTDO = FTDO.CODTDO

AND FLAN.STATUSLAN = 0

AND FLAN.PAGREC = 2

AND FLAN.STATUSEXTRATO <> 7

AND FLAN.STATUSEXTRATO <> 12

AND FLAN.TIPOCONTABILLAN <> 0

AND FLAN.CODCOLIGADA IN ('1','5')

AND FLAN.DATAVENCIMENTO<((GETDATE())-11)

AND FLAN.DATAVENCIMENTO>((GETDATE())-30)

AND FLAN.DATAVENCIMENTO<=(GETDATE())

AND ( FLAN.IDLAN IN ( SELECT IDLAN FROM FLANCONT WHERE CODCOLIGADA IN ('1','5') )

OR FLAN.IDMOV IN ( SELECT IDMOV FROM TMOVCONT WHERE CODCOLIGADA IN ('1','5') )

OR FLAN.IDBAIXAPARCIAL IN ( SELECT IDLAN FROM FLANCONT WHERE CODCOLIGADA IN ('1','5') )

OR FLAN.IDFAT IN ( SELECT IDFAT FROM FLAN WHERE CODCOLIGADA IN ('1','5') AND IDLAN IN

( SELECT IDLAN FROM FLANCONT WHERE CODCOLIGADA IN ('1','5') ) )

)

UNION

SELECT 'VENCIDOS > 30 DIAS',0 V10,0 V30,FLAN.VALORORIGINAL V31,0 V00, 0 AV10, 0 AV30, 0 AV31,

FLAN.CODCOLIGADA,

GCOLIGADA.NOMEFANTASIA,

FLAN.CODTDO,

FTDO.DESCRICAO,

FLAN.IDLAN,

FLAN.NUMERODOCUMENTO,

FLAN.CODCFO,

FCFO.NOME ,

FLAN.DATAEMISSAO,

FLAN.DATAVENCIMENTO,

FLAN.VALORORIGINAL,

FLAN.PAGREC,

FLAN.DATABAIXA

FROM FLAN, FCFO, FTDO, GCOLIGADA

WHERE FLAN.CODCOLIGADA = GCOLIGADA.CODCOLIGADA

AND FCFO.CODCOLIGADA = GCOLIGADA.CODCOLIGADA

AND FTDO.CODCOLIGADA = GCOLIGADA.CODCOLIGADA

AND FLAN.CODCOLIGADA = FTDO.CODCOLIGADA

AND FCFO.CODCFO=FLAN.CODCFO

AND FCFO.CODCOLIGADA=FLAN.CODCOLIGADA

AND FLAN.CODTDO = FTDO.CODTDO

AND FLAN.STATUSLAN = 0

AND FLAN.PAGREC = 2

AND FLAN.STATUSEXTRATO <> 7

AND FLAN.STATUSEXTRATO <> 12

AND FLAN.TIPOCONTABILLAN <> 0

AND FLAN.CODCOLIGADA IN ('1','5')

AND FLAN.DATAVENCIMENTO<((GETDATE())-30)

AND FLAN.DATAVENCIMENTO<=(GETDATE())

AND ( FLAN.IDLAN IN ( SELECT IDLAN FROM FLANCONT WHERE CODCOLIGADA IN ('1','5') )

OR FLAN.IDMOV IN ( SELECT IDMOV FROM TMOVCONT WHERE CODCOLIGADA IN ('1','5') )

OR FLAN.IDBAIXAPARCIAL IN ( SELECT IDLAN FROM FLANCONT WHERE CODCOLIGADA IN ('1','5') )

OR FLAN.IDFAT IN ( SELECT IDFAT FROM FLAN WHERE CODCOLIGADA IN ('1','5') AND IDLAN IN

( SELECT IDLAN FROM FLANCONT WHERE CODCOLIGADA IN ('1','5') ) )

)

UNION

SELECT 'VENCENDO HOJE',0 V10,0 V30,0 V31, FLAN.VALORORIGINAL V00,0 AV10,0 AV30, 0 AV31,

FLAN.CODCOLIGADA,

GCOLIGADA.NOMEFANTASIA,

FLAN.CODTDO,

FTDO.DESCRICAO,

FLAN.IDLAN,

FLAN.NUMERODOCUMENTO,

FLAN.CODCFO,

FCFO.NOME ,

FLAN.DATAEMISSAO,

FLAN.DATAVENCIMENTO,

FLAN.VALORORIGINAL,

FLAN.PAGREC,

FLAN.DATABAIXA

FROM FLAN, FCFO, FTDO, GCOLIGADA

WHERE FLAN.CODCOLIGADA = GCOLIGADA.CODCOLIGADA

AND FCFO.CODCOLIGADA = GCOLIGADA.CODCOLIGADA

AND FTDO.CODCOLIGADA = GCOLIGADA.CODCOLIGADA

AND FCFO.CODCFO=FLAN.CODCFO

AND FCFO.CODCOLIGADA=FLAN.CODCOLIGADA

AND FLAN.CODCOLIGADA = FTDO.CODCOLIGADA

AND FLAN.CODTDO = FTDO.CODTDO

AND FLAN.STATUSLAN = 0

AND FLAN.PAGREC = 2

AND FLAN.STATUSEXTRATO <> 7

AND FLAN.STATUSEXTRATO <> 12

AND FLAN.TIPOCONTABILLAN <> 0

AND FLAN.CODCOLIGADA IN ('1','5')

AND CONVERT(VARCHAR(10),FLAN.DATAVENCIMENTO,103) = CONVERT(VARCHAR(10),GETDATE(),103)

AND ( FLAN.IDLAN IN ( SELECT IDLAN FROM FLANCONT WHERE CODCOLIGADA IN ('1','5') )

OR FLAN.IDMOV IN ( SELECT IDMOV FROM TMOVCONT WHERE CODCOLIGADA IN ('1','5') )

OR FLAN.IDBAIXAPARCIAL IN ( SELECT IDLAN FROM FLANCONT WHERE CODCOLIGADA IN ('1','5') )

OR FLAN.IDFAT IN ( SELECT IDFAT FROM FLAN WHERE CODCOLIGADA IN ('1','5') AND IDLAN IN

( SELECT IDLAN FROM FLANCONT WHERE CODCOLIGADA IN ('1','5') ) )

)

UNION

SELECT 'A VENCER EM ATÉ 10 DIAS',0 V10,0 V30,0 V31,0 V00, FLAN.VALORORIGINAL AV10,0 AV30, 0 AV31,

FLAN.CODCOLIGADA,

GCOLIGADA.NOMEFANTASIA,

FLAN.CODTDO,

FTDO.DESCRICAO,

FLAN.IDLAN,

FLAN.NUMERODOCUMENTO,

FLAN.CODCFO,

FCFO.NOME ,

FLAN.DATAEMISSAO,

FLAN.DATAVENCIMENTO,

FLAN.VALORORIGINAL,

FLAN.PAGREC,

FLAN.DATABAIXA

FROM FLAN, FCFO, FTDO, GCOLIGADA

WHERE FLAN.CODCOLIGADA = GCOLIGADA.CODCOLIGADA

AND FCFO.CODCOLIGADA = GCOLIGADA.CODCOLIGADA

AND FTDO.CODCOLIGADA = GCOLIGADA.CODCOLIGADA

AND FCFO.CODCFO=FLAN.CODCFO

AND FCFO.CODCOLIGADA=FLAN.CODCOLIGADA

AND FLAN.CODCOLIGADA = FTDO.CODCOLIGADA

AND FLAN.CODTDO = FTDO.CODTDO

AND FLAN.STATUSLAN = 0

AND FLAN.PAGREC = 2

AND FLAN.STATUSEXTRATO <> 7

AND FLAN.STATUSEXTRATO <> 12

AND FLAN.TIPOCONTABILLAN <> 0

AND FLAN.CODCOLIGADA IN ('1','5')

AND FLAN.DATAVENCIMENTO<((GETDATE())+10)

AND FLAN.DATAVENCIMENTO>=(GETDATE())

AND ( FLAN.IDLAN IN ( SELECT IDLAN FROM FLANCONT WHERE CODCOLIGADA IN ('1','5') )

OR FLAN.IDMOV IN ( SELECT IDMOV FROM TMOVCONT WHERE CODCOLIGADA IN ('1','5') )

OR FLAN.IDBAIXAPARCIAL IN ( SELECT IDLAN FROM FLANCONT WHERE CODCOLIGADA IN ('1','5') )

OR FLAN.IDFAT IN ( SELECT IDFAT FROM FLAN WHERE CODCOLIGADA IN ('1','5') AND IDLAN IN

( SELECT IDLAN FROM FLANCONT WHERE CODCOLIGADA IN ('1','5') ) )

)

UNION

SELECT 'A VENCER DE 11 A 30 DIAS',0 V10,0 V30,0 V31,0 V00, 0 AV10, FLAN.VALORORIGINAL AV30, 0 AV31,

FLAN.CODCOLIGADA,

GCOLIGADA.NOMEFANTASIA,

FLAN.CODTDO,

FTDO.DESCRICAO,

FLAN.IDLAN,

FLAN.NUMERODOCUMENTO,

FLAN.CODCFO,

FCFO.NOME ,

FLAN.DATAEMISSAO,

FLAN.DATAVENCIMENTO,

FLAN.VALORORIGINAL,

FLAN.PAGREC,

FLAN.DATABAIXA

FROM FLAN, FCFO, FTDO, GCOLIGADA

WHERE FLAN.CODCOLIGADA = GCOLIGADA.CODCOLIGADA

AND FCFO.CODCOLIGADA = GCOLIGADA.CODCOLIGADA

AND FTDO.CODCOLIGADA = GCOLIGADA.CODCOLIGADA

AND FCFO.CODCFO=FLAN.CODCFO

AND FCFO.CODCOLIGADA=FLAN.CODCOLIGADA

AND FLAN.CODCOLIGADA = FTDO.CODCOLIGADA

AND FLAN.CODTDO = FTDO.CODTDO

AND FLAN.STATUSLAN = 0

AND FLAN.PAGREC = 2

AND FLAN.STATUSEXTRATO <> 7

AND FLAN.STATUSEXTRATO <> 12

AND FLAN.TIPOCONTABILLAN <> 0

AND FLAN.CODCOLIGADA IN ('1','5')

AND FLAN.DATAVENCIMENTO>((GETDATE())+10)

AND FLAN.DATAVENCIMENTO<=((GETDATE())+30)

AND FLAN.DATAVENCIMENTO>=(GETDATE())

AND ( FLAN.IDLAN IN ( SELECT IDLAN FROM FLANCONT WHERE CODCOLIGADA IN ('1','5') )

OR FLAN.IDMOV IN ( SELECT IDMOV FROM TMOVCONT WHERE CODCOLIGADA IN ('1','5') )

OR FLAN.IDBAIXAPARCIAL IN ( SELECT IDLAN FROM FLANCONT WHERE CODCOLIGADA IN ('1','5') )

OR FLAN.IDFAT IN ( SELECT IDFAT FROM FLAN WHERE CODCOLIGADA IN ('1','5') AND IDLAN IN

( SELECT IDLAN FROM FLANCONT WHERE CODCOLIGADA IN ('1','5') ) )

)

UNION

SELECT 'A VENCER > 30',0 V10,0 V30,0 V31,0 V00, 0 AV10, 0 AV30,FLAN.VALORORIGINAL AV31,

FLAN.CODCOLIGADA,

GCOLIGADA.NOMEFANTASIA,

FLAN.CODTDO,

FTDO.DESCRICAO,

FLAN.IDLAN,

FLAN.NUMERODOCUMENTO,

FLAN.CODCFO,

FCFO.NOME ,

FLAN.DATAEMISSAO,

FLAN.DATAVENCIMENTO,

FLAN.VALORORIGINAL,

FLAN.PAGREC,

FLAN.DATABAIXA

FROM FLAN, FCFO, FTDO, GCOLIGADA

WHERE FLAN.CODCOLIGADA = GCOLIGADA.CODCOLIGADA

AND FCFO.CODCOLIGADA = GCOLIGADA.CODCOLIGADA

AND FTDO.CODCOLIGADA = GCOLIGADA.CODCOLIGADA

AND FCFO.CODCFO=FLAN.CODCFO

AND FCFO.CODCOLIGADA=FLAN.CODCOLIGADA

AND FLAN.CODCOLIGADA = FTDO.CODCOLIGADA

AND FLAN.CODTDO = FTDO.CODTDO

AND FLAN.STATUSLAN = 0

AND FLAN.PAGREC = 2

AND FLAN.STATUSEXTRATO <> 7

AND FLAN.STATUSEXTRATO <> 12

AND FLAN.TIPOCONTABILLAN <> 0

AND FLAN.CODCOLIGADA IN ('1','5')

AND FLAN.DATAVENCIMENTO>((GETDATE())+30)

AND ( FLAN.IDLAN IN ( SELECT IDLAN FROM FLANCONT WHERE CODCOLIGADA IN ('1','5') )

OR FLAN.IDMOV IN ( SELECT IDMOV FROM TMOVCONT WHERE CODCOLIGADA IN ('1','5') )

OR FLAN.IDBAIXAPARCIAL IN ( SELECT IDLAN FROM FLANCONT WHERE CODCOLIGADA IN ('1','5') )

OR FLAN.IDFAT IN ( SELECT IDFAT FROM FLAN WHERE CODCOLIGADA IN ('1','5') AND IDLAN IN

( SELECT IDLAN FROM FLANCONT WHERE CODCOLIGADA IN ('1','5') ) )

)

) X

WHERE

DATAVENCIMENTO>='20090101'

Editado por Clayton Bispo
Link para comentar
Compartilhar em outros sites


  • Tópicos Que Criei:  38
  • Tópicos/Dia:  0.01
  • Meu Conteúdo:  438
  • Conteúdo/Dia:  0.08
  • Reputação:   12
  • Pontos/Conquistas:  2.592
  • Conteúdo Resolvido:  0
  • Dias Ganho:  9
  • Status:  Offline
  • Idade:  47
  • Dispositivo:  Windows

Clayton, bom dia...

Acrescente na cláusula FROM dos seus Selects a opção (NOLOCK) logo após as tabelas consultadas e veja se resolve o seu problema....

EX: "select xxxx FROM FLAN (NOLOCK), FCFO (NOLOCK), FTDO (NOLOCK), GCOLIGADA (NOLOCK) where yyyyyyy"

Abraço.

Leonardo.

Editado por Leodiniz
Link para comentar
Compartilhar em outros sites


  • Tópicos Que Criei:  900
  • Tópicos/Dia:  0.14
  • Meu Conteúdo:  8.845
  • Conteúdo/Dia:  1.34
  • Reputação:   310
  • Pontos/Conquistas:  106.599
  • Conteúdo Resolvido:  0
  • Dias Ganho:  195
  • Status:  Offline
  • Idade:  52
  • Dispositivo:  Windows

É Clayton, isso que o Leodiniz falou acima deve resolver sim o seu problema. Lembre-se que, se você está rodando a sua sentença onde está lendo dados em tabelas que podem estar sendo atualizados dados neste mesmo momento, o banco te permite aguardar que finalizem transações que estão rodando nestas tabelas... é o que está ocorrendo, e está demorando muito, provocando o erro, ou então, você usa a opção NOLOCK para que ignore o LOCK (travamento) das mesmas e leia os dados efetivamente que estão na tabela naquele momento.

O que tem que ser verificado é se, outras transações não estão com algum problema, pois, não deveria travar tanto tempo.

Abraço

Link para comentar
Compartilhar em outros sites


  • Tópicos Que Criei:  134
  • Tópicos/Dia:  0.02
  • Meu Conteúdo:  1.225
  • Conteúdo/Dia:  0.19
  • Reputação:   2
  • Pontos/Conquistas:  7.400
  • Conteúdo Resolvido:  0
  • Dias Ganho:  1
  • Status:  Offline
  • Dispositivo:  Windows

Só por curiosidade: O que faz essa sentença ?

Link para comentar
Compartilhar em outros sites


  • Tópicos Que Criei:  3
  • Tópicos/Dia:  0.00
  • Meu Conteúdo:  8
  • Conteúdo/Dia:  0.00
  • Reputação:   0
  • Pontos/Conquistas:  70
  • Conteúdo Resolvido:  0
  • Dias Ganho:  0
  • Status:  Offline
  • Idade:  43

Só por curiosidade: O que faz essa sentença ?

Maurício,

Essa sentença monta uma view que traz informações para um AGING DE FORNECEDORES.

Se quiser, pode usar o mesmo relatório para sua empresa. Disponibilizei ele no link:

http://www.forumrm.com.br/index.php?showtopic=7142&hl=

Abraço!

Clayton Bispo

Link para comentar
Compartilhar em outros sites


  • Tópicos Que Criei:  3
  • Tópicos/Dia:  0.00
  • Meu Conteúdo:  8
  • Conteúdo/Dia:  0.00
  • Reputação:   0
  • Pontos/Conquistas:  70
  • Conteúdo Resolvido:  0
  • Dias Ganho:  0
  • Status:  Offline
  • Idade:  43

Clayton, bom dia...

Acrescente na cláusula FROM dos seus Selects a opção (NOLOCK) logo após as tabelas consultadas e veja se resolve o seu problema....

EX: "select xxxx FROM FLAN (NOLOCK), FCFO (NOLOCK), FTDO (NOLOCK), GCOLIGADA (NOLOCK) where yyyyyyy"

Abraço.

Leonardo.

RESOLVIDO!

Obrigado!

Clayton Bispo

Link para comentar
Compartilhar em outros sites

Participe da conversa

Você pode postar agora, e se registrar mais tarde. Se você tiver uma conta, faça o login agora para postar com sua conta.

Visitante
Responder esse tópico

×   Você colou conteúdo com formatação.   Remover formatação

  Only 75 emoji are allowed.

×   Seu link foi automaticamente inserido no corpo do post.   Exibir como um link

×   Seu conteúdo anterior foi restaurado.   Limpar conteúdo do editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Criar Novo...

Informação Importante

Usando este site, você concorda com nossos Termos de Uso e nossa Política de Privacidade.