Você está na página 1de 1

UR (Uncomitted Read) ou Leitura suja ??

Filed under 1 by Marcos Caurim on 24-08-2010

Um dos grandes assuntos no DB2 � o processo de locks , como um grade banco de dados
o DB2 usa muito bem os locks para manter
a integridade dos dados , o que � uma premissa b�sica de um SGBD. Por outro
lado locks usam espa�o cerca de 500 bytes por lock e tamb�m se mal configurados
podem causar problemas de perforamance devido
ao grande n�mero de aplica��es tentando acessar a mesma informa��o. Para
evitar locks ou tentar minimiza-los existem os isolation levels bastante conhecidos
pelos programadores DB2 , como o CS , RR,
RS e o �ltimo chamado de UR (Uncomitted Read) ou leitura suja. Sempre
foi falado que leitura suja n�o faz locks na tabela e com isso voc� pode ler dados
que n�o foram comitados ainda , gerando da
dos n�o corretos caso este dados por algum motivo n�o sofrerem commits.
A maioiria que exeuta este tipo de SELECT ou no parametro do BIND chamado ISOLATION
, j� est� ciente desta situa��o e sabe
que n�o se importa em trazer este tipo de dados.

� preciso estar atento h� alguns fatos importante antes de usar o UR em ambiente de


produ��o e em sistemas mais cr�ticos , o
grande uso do UR � pra Queries r�pidas principalmente em Teste ou mesmo nas
tabelas do cat�logo DB2. Para uso em produ��o temos que saber que a hist�ria de n�o
fazer locks realmente n�o � verdade ,
quando � feito um select deste tipo � executado o lock MDEL ou mass delete , o
mesmo n�o � conhecido , ele serve para evitar as dele��es em massa enquanto voc�
est� lendo os dados , loco quando sua query
com UR estiver rodando , um DELETE ALL ter� que esperar seu processo
finalizar.

Agora caso voc� realmente queria evitar locks , saiba que caso exista um INSERT ,
UPDATE ou DELETE em seu programa e seu
pacote foi feito o BIND com ISOLATION UR , � preciso for�ar a cl�usula UR no
SELECT , pois sem ela DB2 elevara o isolation de todo pacote para CS , fazendo com
que suas cl�usulas SELECTs sem usar
WITH UR comecem a fazem lock de linha , tabela ou tablespace de acordo com a
configura��o.

Com isto seu programa que voc� jura que n�o faz locks , est� segurando recursos e
podendo causar timeouts e deadlocks com
outros programas tentam acessar a mesma tabela.

Você também pode gostar