Você está na página 1de 2

Dois conceitos importantes para diminuir degradao de performance e problemas relacionados concorrncia no Informix: 1- O primeiro a respeito do D !

!D"O#$ %I& O'%() Ou se*a+ ,uanto tempo uma aplicao -ai aguardar para ,ue um recurso em estado de "O#$ D( se*a liberado) .or default+ se o atributo no esti-er setado( e a aplicao tentar acessar um recurso ,ue esti-er em estado "O#$ D(+ o banco en-iar/ um c0digo de erro para a aplicao) 1e esse erro no esti-er sendo tratado dentro da aplicao+ esta ser/ abortada) xemplo: uma aplicao tentando ler 1 " #%( uma lin2a de alguma tabela ,ue nesse momento est/ sendo alterada por outra aplicao) .ara ,ue o problema no ocorra+ de-e-se setar( o atributo dentro da aplicao logo depois de conectar ao banco de dados conforme sintaxe abaixo: 1 % "O#$ &OD %O 3!I% 456() Obs) o tempo expresso em segundos) !ssim sendo+ a aplicao aguardar/ 45 segundos para ,ue o recurso se*a liberado) 4- O segundo est/ relacionado ao n7-el de isolamento de leitura) "embrando ,ue ,uando uma lin2a recuperada para ser atuali8ada+ um 9 :O; I&!< =c0pia da lin2a original> guardada no log de transao at ,ue esta transao se*a conclu7da com o comando #O&&I% e a alterao se*a efeti-amente conclu7da) 1e a lin2a sendo alterada no ti-er sua transao conclu7da+ um ;O""9!#$ ser/ aplicado e a c0pia da lin2a original =9 :O; I&!< > ser/ recuperada e mantida) ! pergunta a ser feita : ?uando for ler uma lin2a de alguma tabela e esta esti-er sendo modificada por outra aplicao+ ,ue imagem da lin2a gostaria ,ue fosse recuperada@ 4)1- ! imagem antes da alterao ="!1% #O&&I%% D>@ 4)4 - ! imagem cu*a alterao est/ em andamento+ mas ,ue ainda no foi dado commit= DI;%A ; !D ou leitura su*a>@ Obs) O risco de ler uma lin2a cu*a alterao est/ em andamento ,ue se por alguma ra8o a transao no for conclu7da com o comando commit(+ -oc ter/ lido um registro fantasma) Ou se*a+ a,uela imagem ,ue foi lida era transit0ria e no definiti-a) 4)B - Ou dese*o aguardar e -er a imagem ap0s a alterao ter sido conclu7da onde o comando commit( */ foi executado =#O&&I%% D ; !D> @ .or default o banco assume ,ue o n7-el de isolamento =#O&&I%% D ; !D>) Isso significa ,ue ,uando um con*unto de lin2as for lido e uma das lin2as a ser retornada esti-er sendo alterada+ a aplicao ter/ de aguardar a concluso da alterao para ,ue o resultado da leitura se*a conclu7do =caso o atributo "O#$ &OD %O 3!I% este*a

setado>) Isso causa enorme degradao no tempo de resposta das aplicaCes ,ue fa8em muitas leituras na base de dados+ exemplos so os relat0rios) ;ecomendo ,ue um dos -alores abaixo se*a setado( dependendo do n7-el de importDncia do ,ue est/ sendo lido: 1 % I1O"!%IOE %O DI;%A ; !D ="eitura su*a> O' 1 % I1O"!%IOE %O "!1% #O&&I%% D = Imagem anterior da lin2a ,ue est/ sendo alterada>)

Você também pode gostar