ORA-00055 maximum number of DML locks exceeded 는?
ORA-00055 에러는 Oracle 데이터베이스에서 DML(Data Manipulation Language) 잠금(Lock)의 최대 허용 개수를 초과했을 때 발생하는 에러입니다. Oracle은 INSERT, UPDATE, DELETE, MERGE 등의 DML 작업 시 해당 테이블에 대한 테이블 수준의 DML 잠금(TM Lock)을 내부적으로 관리하는데, 이 잠금을 저장하는 내부 구조체(Enqueue)의 슬롯이 모두 소진되면 이 에러가 발생합니다. 주로 동시에 수백~수천 개의 세션이 다수의 테이블에 대해 DML을 수행하는 대용량 OLTP 환경이나 배치 처리 환경에서 나타나며, 서비스 중단으로 이어질 수 있어 신속한 조치가 필요합니다.
주요 발생 원인
1. DML_LOCKS 파라미터 값이 너무 낮게 설정된 경우
DML_LOCKS 초기화 파라미터는 인스턴스 전체에서 허용되는 DML 잠금의 최대 개수를 결정합니다. 기본값은 4 * TRANSACTIONS 값으로 자동 계산되지만, 트랜잭션 수가 급증하거나 초기 설정 당시 예상보다 훨씬 많은 동시 DML이 발생하는 경우 이 값이 턱없이 부족해질 수 있습니다. 특히 애플리케이션 기능이 추가되거나 사용자 수가 급격히 늘어난 시스템에서 자주 목격됩니다.







