TrabalhosGratuitos.com - Trabalhos, Monografias, Artigos, Exames, Resumos de livros, Dissertações
Pesquisar

BLOQUEIO SQL

Ensaios: BLOQUEIO SQL. Pesquise 860.000+ trabalhos acadêmicos

Por:   •  1/8/2014  •  335 Palavras (2 Páginas)  •  351 Visualizações

Página 1 de 2

Causas de LOCK SQL Utilizando ANYDAC

• O componente ANYDAC que é responsável por realizar a conexão da aplicação ao banco de dados, possui uma configuração que retorna os registros das pesquisas em blocos, o tamanho dos blocos podem ser definidos pelo usuário, no caso da SOFtran 50-50.

• Esta configuração faz com que uma consulta que retorne mais de 50 registros, mantenha o excedente aguardando no banco de dados até que seja solicitado a sua leitura.

Enquanto não ocorre esta leitura e simultaneamente é enviado um comando de alteração ao banco de dados, este comando fica bloqueado, pois a consulta anterior o mantém nessa condição até que ela seja liberada.

• O que causa uma simples consulta bloquear as alterações?

O configuração do cursor do anydac (ckDefault), faz com que a aplicação gerencie os blocos de consultas pendentes no banco, desta forma se a consulta realizada conter um campo do tipo BLOB, o cursor mantém a pesquisa bloqueada até a leitura final.

• O que pode resolver este problema?

o Como o cursor ckDefault gera mais performance a rotina, podemos mudar a configuração que faz a consulta em blocos para que realize a busca completa, no caso fmAll;

o Mesclar a utilização dos cursores, já que o componente possibilita trabalhar de diferentes formas, será necessário revisar as rotinas mais críticas e alterar o cursor para ckDynamic ou ckDefault conforme for conveniente, desta forma é possível manter a busca em blocos fmOnDemand;

o Revisar os comandos SQL que possuem ‘*’ ou campos do tipo BLOB na busca, retirando os e os fazendo campos do tipo ‘Calculado’, ou até mesmo removendo-os das tabelas criando tabelas específicas para este tipo.

o Utilização do comando NOLOCK nas consultas SQL, a principio a funcionalidade principal deste comando é realizar uma consulta ‘suja’ no banco de dados, porém na prática se utilizado em conjunto com o cursor ckDefault este não esta mantendo a consulta bloqueada, parando as alterações posteriores.

• Alguns Exemplos que Não Ocorreram o LOCK

o Cursor ckDynamic e fmOnDemand:

o Cursor ckDefault, fmOnDemand sem BLOBs no Select:

o Cursor ckDefault e fmAll:

...

Baixar como (para membros premium)  txt (2.2 Kb)  
Continuar por mais 1 página »
Disponível apenas no TrabalhosGratuitos.com