반응형 Database32 Commit, Rollback, Savepoint Commit, Rollback, Savepoint 에 대하여 알아봅시다. 기본적인 정의 및 사용법은 아래와 같습니다. Commit - 현재 상태로 저장(되돌릴수없음). Rollback - Delete나 Update후 Commit을 안했다면 되돌릴수있음. 가장 최근 Commit 및 Savepoint로 돌아감. Savepoint - Rollback 할 수 있도록 위치를 정해놓음. ------------------------------------------------Commit 후 이전 데이터 확인 하는법. -------------------------------------------- 디비 작업중 실수로 커밋한 경우에 이전 데이터를 확인하려면, timestamp를 사용할 수 있습니다. 오라클은 UNDO ta.. 2023. 11. 8. BOOLEAN의 표현 in Oracle Oracle DB에서 BOOLEAN을 표현하려면?? 오라클에는 Boolean 자료형이 따로 존재하지않기때문에, True,False는 "1","0"을 이용하여 CHAR(1)타입으로 저장하는게 일반적입니다. 2023. 11. 8. JOIN할때 ON과 WHERE 중 어디에 조건을 줘야 효과적일까? _Oracle Oracle 쿼리를 다루는 사람이라면 한번쯤 "JOIN할때 ON과 WHERE 중 어디에 조건을 줘야 효과적일까?" 에 대한 생각을 해보았을 것이다. ANSI 표준에 따라서는 조인 조건을 ON절에 달아주고, WHERE절에는 검색조건을 달게 됩니다. ON 절에 검색조건을 달아도 쿼리 실행에는 영향이 없으나, ON절에 조건을 주면 Join으로 인하여 테이블을 합칠 때 조건이 걸려서 하나의 가상테이블이 만들어집니다. 그와 반대로 WHERE절에 조건이 걸리면, 다 만들어진 테이블을 다시 훑으면서 해당 조건에 맞는 결과물을 반환하는 게 되기에 두번 일하는 것처럼 동작합니다. 결과적으로 ON절에 거는게 더 효과적이라고 볼 수 있습니다. 2023. 11. 8. ORA-04031 in Oracle Error 오라클에서 발생하는 에러 중 ORA-04031는 Shared Pool 내에 메모리가 단편화됨에 따라 연속된 parsing 공간을 제공하지 못해 발생하는 에러입니다. shared pool 사이즈 조회는 아래와 같은 쿼리로 가능합니다. - select * from v$sga_dynamic_components - 원인 1. Shared Pool Fragmentation (Shared Pool 과도한 조각화) - 과도한 조각화를 방지하기 위해서는 Literal SQL > Bind Variable SQL로 바꿔주는 작업이 가장 좋은 방법입니다. 하드코딩으로 박힌 SQL은 각각 마다 Shared Pool을 잡아 먹습니다. 하지만 Bind Variable SQL은 한 번 Shared Pool에 올라가서 Bind만 되.. 2023. 11. 8. EXISTS와 IN의 차이_Oracle Oracle EXISTS와 IN의 차이 1. EXISTS : 특정 조건에 해당하는 로우의 존재유무만 체크한다, SELECT절을 실행하지 않기에 IN에 비해 성능이 좋다. IN : 특정 조건에 해당하는 로우의 칼럼을 비교하여 체크한다, SELECT절을 실행 후 조회한 컬럼 값을 기준으로 비교하므로 EXISTS에 비해 성능이 떨어진다. 2. - EXISTS : 메인 쿼리의 결과값을 서브쿼리에 대입하여 조건 비교후 결과 출력. 메인쿼리->EXISTS쿼리 - IN : 서브쿼리의 결과값을 메인 쿼리에 대입하여 조건 비교 후 결과 출력. IN쿼리->메인쿼리 3. - NOT IN과 NOT EXISTS의 null 값에 대한 처리 -NOT EXISTS : NULL 데이터에 대해 TRUE를 리턴. -NOT IN : NUL.. 2023. 11. 7. Oracle Comment 설정 Comment 설정 --테이블 Comment 설정 COMMENT ON TABLE [테이블명] IS [Comment]; COMMENT ON TABLE EX_TABLE IS '예제 테이블'; EX) COMMENT ON TABLE JW_COMPANY IS '메인디비'; --컬럼 Comment 설정 COMMENT ON COLUMN [테이블명].[컬럼명] IS '[Comment]'; COMMENT ON COLUMN EX_TABLE.DEPT IS '부서'; COMMENT ON COLUMN EX_TABLE.TP IS '유형'; EX) COMMENT ON COLUMN JW_COMPANY.NAME IS '이름'; Comment 확인 --테이블 전체 comment 조회 SELECT table_name, table_type.. 2023. 11. 7. 이전 1 2 3 4 5 6 다음 반응형