본문 바로가기

Oracle242

ORA-12838: cannot read/modify an object after modifying it in parallel 해당 에러는 parallel 이나 direct load 로 table에 insert를 사용하고 트랜잭션의 종료를 제대로 해주지않고 select 문 수행시 발생합니다. 해결방법은 commit이나 rollback명령어를 수행하여 트랜잭션을 종료시키는 방법이 있습니다. $ oerr ora 12838 12838, 00000, "cannot read/modify an object after modifying it in parallel" // *Cause: Within the same transaction, an attempt was made to add read or // modification statements on a table after it had been modified in parallel // or.. 2022. 9. 28.
[SQL 성능 체크 tool]SQLHC 와 SQLT SQL을 분석하는 방법 중 하나입니다. SQLHC와 SQLT입니다. SQLHC SQLHC(SQL Tuning Health-Check) script는 Oracle에서 개발한 도구로써, 단일 SQL문이 실행되는 것에 대한 체크를 하여 CBO(Cost Based Opimizer) 통계, 스키마 객체 메타데이터, 파라미터 및 단일 SQL의 성능에 영향을 미칠 수 있는 기타요소럴 검사합니다. SQLHC는 무료로 사용가능합니다. (Oracle Sr에서 확인 Doc ID 1366133.1) zip 파일을 서버에 업로드하여 zip 파일에 있는 sqlhc.sql 파일을 수행하여 sql의 분석 파일들을 수집하는 방법입니다. 위의 파일의 압축을 풀어보면 아래와 같습니다. $ ls -al total 2200 drwxr-xr-.. 2022. 9. 23.
SQL Loader의 direct path load와 Index unusable SQL loader라는 기능이 있습니다. 데이터를 이관하는 방법 중에 하나인데요, 이 방법은 일반 INSERT와 같은 방식인 conventional path load와 direct path load방식 두가지 방법으로 이용할 수 있습니다. direct path load 방식으로 이용할 때, index가 unusable 상태로 바뀌는데 이 현상에 대해서 테스트를 통해 정확히 정리해보도록 하겠습니다. 두 방식의 특징을 간단하게 정리하면 아래와 같습니다. 아래 특징 외에도 더 많은 특징들이 있습니다. 필요하신 분들은 출처의 URL을 참고해주시길 바랍니다. 출처 :https://docs.oracle.com/cd/E11882_01/server.112/e22490/ldr_modes.htm#SUTIL009 Conve.. 2022. 9. 14.
다른 세션에서 10046 trace 수행하기 명령어 활성화 exec sys.dbms_system.set_ev(sid, serial#, 10046, 12, null); or DBMS_SYSTEM.SET_SQL_TRACE_IN_SESSION(sid,serial#,true); 비활성화 exec sys.dbms_system.set_ev(sid, serial#, 10046, 0, null); or DBMS_SYSTEM.SET_SQL_TRACE_IN_SESSION(sid,serial#,false); 실제 세션을 두개 열어서 테스트해보겠습니다. 1. 세션1 세션2의 정보를 확인 후 세션2에 trace를 수행하도록 하겠습니다. SYS@SQL> select sid,serial# from v$session where username='DEV'; SID SERIAL#.. 2022. 9. 6.