2011-12-19 6 views
1

기본 테이블을 읽고 일부 집계를 수행 한 다음 수정 된 플래그로 테이블을 업데이트하는 배치 프로세스가 있습니다.업데이트 명령문을 실행하는 데 더 많은 시간이 걸리는 테이블 잠금

우리는 약 3 백만 행을 업데이트하는 업데이트 문을 가지고 있습니다. 비즈니스 요구 사항의 일부로 우리는 업데이트중인 테이블에 테이블 수준 잠금을 설정해야합니다.

UPDATE TABLE1 t1 SET PARAMETER1=(SELECT p1 from TABLE2 t2 where t1.ROW_ID=ROWIDTOCHAR(t2.ROW_ID) 

오늘 우리가 한 관찰은 테이블 수준 잠금이없는 테이블 수준 잠금이없는 경우에는 테이블 수준 잠금이있는 업데이트 문이 20 분 걸립니다.

이 관찰을 확인할 수 없습니다. 도와주세요!

건배, Dwarak

+3

제공 한 진술은 일관성있게 읽혀 지므로 다른 활동이 동시에 발생하더라도 테이블이 올바르게 업데이트됩니다. 테이블 수준 잠금을 요구하는 비즈니스 요구 사항에 대해 자세히 설명 할 수 있습니까? – Randy

+1

이 관찰을 확인할 수 없다는 뜻입니까? 아니면 이해할 수 없습니까? 정확한 도움을줌으로써 우리가 당신에게주기를 원하십니까? – APC

+0

나는이 관찰을 이해함으로써 그것을 확인하고자한다. –

답변

1

아무도 그러나 당신의 데이터베이스는 당신에게 당신의 관찰의 이유를 알 수 있습니다. AWR 보고서를 작성해야합니다.

그러나 이 아니며 UPDATE은 이전에 테이블이 잠겨 있기 때문에 더 오래 실행될 수 있습니다.

1

테스트에서 (데이터베이스와 파일 시스템 모두에서) 캐싱을 고려 ​​했습니까? 어떤 일을했는지에 따라, 이미 메모리에있는 데이터로 인해 하나의 명령문이 더 빨리 실행되었을 수 있습니다.

관련 문제