Oracle
-
[Oracle] Predicate Information - Access, FilterDatabase 2024. 7. 13. 15:59
Access : 데이터를 접근하는 방법인덱스를 사용하거나 테이블 전체를 스캔하는 등의 방식으로 데이터를 읽는 작업을 설명합니다.Index Access: 인덱스를 사용하여 데이터를 읽는 방식 ex) Index Scan, Index Range Scan 등Table Access: 테이블에서 데이터를 직접 읽는 방식 ex) Full Table Scan, Index Lookup 등Filter : 이미 접근된 데이터에 대해 추가적인 조건을 적용하여 데이터를 필터링하는 작업 where절에서 지정된 조건이나 조인 조건 등을 적용하는 과정을 포함합니다. ex) t1_n1 인덱스를 이용하여 INDEX RANGE SCAN 으로 접근 (access) where 절의 C2='dummy'로 필터링한다 (filter) drop t..
-
[Oracle] Optimizer 관련 parameterDatabase 2024. 7. 13. 14:44
Optimizer 관련 parameter는 v$sys_optimizer_env 에서 알 수 있다.SQL> col NAME for a50SQL> col VALUE for a10SQL> col DEFAULT_VALUE for a10SQL> select NAME,VALUE,DEFAULT_VALUE from v$sys_optimizer_env;NAME VALUE DEFAULT_VA-------------------------------------------------- ---------- ----------parallel_execution_enabled false falseoptimizer_features_enable 23.1.0 23.1.0cpu_cou..
-
[Oracle] DBMS_STATDatabase 2024. 2. 4. 17:19
DBMS_STAT : CBO와 관련된 정보만 통계정보로 수집 DBMS_STAT의 패키지의 통계정보 수집 프로시저 GATHER_TABLE_STATS 테이블의 통계정보 수집 ex) DBMS_STATS.GATHER_TABLE_STATS('SCHEMA_NAME', 'TABLE_NAME'); GATHER_INDEX_STATS 인덱스의 통계정보 수집 ex) DBMS_STATS. GATHER_INDEX_STATS ('SCHEMA_NAME', ' INDEX_NAME'); GATHER_SCHEMA_STATS 스키마의 모든 객체의 통계정보 수집 ex) DBMS_STATS. GATHER_SCHEMA_STATS ('SCHEMA_NAME'); GATHER_DATABASE_STATS 데이터베이스의 모든 객체의 통계정보 수집 ex..
-
[Oracle] 통계정보Database 2024. 2. 4. 16:54
통계정보 통계정보는 오라클의 옵티마이저가 실행계획을 작성할 때 참조하는 정보이다. 통계 정보는 쿼리 성능을 최적화하기 위해 사용되며 데이터베이스 옵티마이저가 최적의 실행 경로를 선택할 수 있도록 한다. 통계정보 수집 방법 ANALYZE 명령어: ANALYZE 명령어를 사용하여 개별 테이블이나 인덱스에 대한 통계를 생성할 수 있습니다. ex) ANALYZE TABLE your_table COMPUTE STATISTICS; DBMS_STATS 패키지: DBMS_STATS 패키지를 사용하여 테이블, 인덱스 또는 전체 스키마에 대한 통계를 수집할 수 있습니다. ex) DBMS_STATS.GATHER_TABLE_STATS('', '')
-
[SQL] 형 변환 함수Database 2023. 11. 27. 23:18
형 변환 함수 : 특정 데이터형을 다른 데이터형으로 변환할 때 사용하는 함수 TO_CHAR: 값을 문자열로 변환 TO_NUMBER: 값을 숫자로 변환 TO_DATE: 문자열을 날짜로 변환 TO_TIMESTAMP: 문자열을 타임스탬프로 변환 TO_BINARY_FLOAT: 값을 이진 부동 소수점 형식인 BINARY_FLOAT으로 변환 TO_BINARY_DOUBLE: 값을 이진 부동 소수점 형식인 BINARY_DOUBLE로 변환 TO_CLOB: 값을 CLOB(Character Large Object) 데이터 타입으로 변환 TO_NCLOB: 값을 NCLOB(National Character Large Object) 데이터 타입으로 변환 TO_BLOB: 값을 BLOB(Binary Large Object) 데이터 ..
-
[SQL] 롤포워드/롤백Database 2023. 7. 9. 23:19
Instance Recovery (Cash Recovery) 인스턴스에 장애가 발생해 비정상적으로 종료됐을 때나 인스턴스를 SHUTDOWN ABORT 명령어를 사용해 강제로 정지한 후, 인스턴스를 다시 기동했을 때 백그라운드 프로세스 SMON(시스템 전반적인 모니터링)이 자동으로 수행해주는 복구 처리 롤포워드 / 롤백 DB는 내부 일관성이 확보되지 않으면 인스턴스 복구를 통해 롤포워드와 롤백을 수행하는 것으로 일관성 회복 DB는 내부 일관성이 확보되지 않은 상태 : DB에 커밋됬음에도 불구하고 데이터 파일에 변경 내용이 반영되지 않거나 커밋되지 않았음에도 불구하고 데이터 파일에 변경 내용이 반영되는 등의 상태 롤포워드 커밋된 트랜젝션의 적용 REDO 로그 파일의 체크포인트보다 이후에 REDO 데이터에 기..
-
[SQL] 오라클 출력 포멧 맞추기Database 2023. 7. 9. 22:43
CREATE TABLE employees( employee_id NUMBER(6) first_name VARCHAR2(20), last_name VARCHAR2(25), email VARCHAR2(25), hire_date DATE, job_id VARCHAR2(10), manager_id NUMBER(6), department_id NUMBER(4) ) ; INSERT INTO employees (employee_id, first_name, last_name, email, hire_date, job_id, manager_id, department_id ) VALUES (100, 'King', 'kim', 'SKING', '14-FEB-2011', 'AD_PRES', 100, 90); INSERT INT..
-
[SQL] 소프트 파싱 / 하드 파싱Database 2023. 7. 5. 23:54
시스템 공유 메모리에서 SQL과 실행계획이 캐싱되는 영역을 Oracle에서는 라이브러리 캐시(Library Cache),SQL Server에서는 프로시저 캐시(Procedure Cache)라고 부른다. 사용자가 SQL을 실행하면 제일 먼저 SQL Parser가 SQL문장에 문법적 오류가 없는지 검사(Syntax검사)를 한다. 문법적으로 오류가 없으면 의미상 오류가 있는지(Semantic 검사)를 한다. 예를 들어 존재하지 않거나 권한 없는 객체를 사용했는지 또는 존재하지 않는 컬럼을 사용했는지 등의 검사를 한다. Syntax검사,Semantic 검사를 마치면 사용자가 발핼한 SQL과 그 실행계획이 라이브러리 캐시에 캐싱됐는지를 확인한다. 만약 캐싱돼 있다면 무거운 최적화 과정을 거치지 않고 곧바로 실행 ..