문제 상황특정 테이블 컬럼 사이즈 변경 시 A 테이블의 A IDX가 Function-Based 인덱스의 경우 문제가 발생할 수 있음 해결방법 ( ⁜ 단 운영 테이블의 경우 영향도 파악이 우선시 되어야함 필자의 경우 이관 프로젝트 중 신규 서버로 재생성 테스트가 가능함)1) Drop Index 제거drop index TEST.TEST_COND01_NEW;drop index TEST.TEST_COND02_NEW;drop index TEST.TEST_COND04_NEW; 2) Column ModifyALTER TABLE TEST.TEST_COND_TABLE MODIFY (BUILDING_NUMBER_1 VARCHAR2(10));ALTER TABLE TEST.TEST_COND_TABLE MODIFY (BUILD..
ASM의 개념ASM은 Oracle 10g부터 지원되는 Logical Volume Manager와 File System의 통합체라고 할 수 있다.Oracle Database File을 위해 특별히 구현된 Disk 관리 시스템으로 Disk 간 Balance가 유지될 수 있도록 분산 저장 및 Mirroring을 지원한다. • Disk실제 물리적인 디스크이며 일반적으로 디스크 업체에서 I/O 분산을 해서 제공한다. • Logical Volume Manager디스크 업체에서 제공한 물리적인 디스크에 대해 Volume Group과 Logical Volume(Lvol)을 구성하는 부분이다. • File SystemLvol을 File System으로 mount하여 해당 File System에 datafile을 생성한다..
오라클 블럭(Oracle Block) 회사에서 쓰는 레거시 DDL문을 분석해 보니 PCTFREE, PCTUSED가 나와서 이를 정리한 포스팅입니다. 무려 9i이후부터 세그먼트를 자동적으로 관리하는 ASSM(Automatic Segment Space Management)가 나와 SEGMENT SPACE MANAGEMENT AUTO 절을 넣어 자동으로 관리하고 있습니다. 이렇게 수동으로 관리하는 것을 보기 어렵게 되었다고 알고있는데 어쩌겠습니까? 월급쟁이의 설움 ㅠㅠ 돈 받고 일하려면 어쩔 수 없이 해야죠. (회사를 까는 거는 아닙니다 ㅎㅎ;) 오라클에서의 I/O는 블럭단위로 이루어집니다. 오라클 블럭은 OS의 블럭 한 개 이상을 합쳐 만들며 DB_BLOCK_SIZE로 지정하게 됩니다(기본 오라클 DB 블럭..
DBA_TABLES 란? 모든 테이블명 가져오는 뷰 Description ※ asterisk(*) - collect statistics on the table with the DBMS_STATS package OWNER VARCHAR2(128) NOT NULL Owner of the table TABLE_NAME VARCHAR2(128) NOT NULL Name of the table TABLESPACE_NAME VARCHAR2(30) Name of the tablespace containing the table; NULL for partitioned, temporary, and index-organized tables CLUSTER_NAME VARCHAR2(128) Name of the cluster,..
DBA_TAB_STATISTICS 란? 데이터베이스에 있는 모든 테이블들에 대한 옵티마이저 통계를 표시 Description Column Type Null Description OWNER VARCHAR2(128) NO The owner of the object. TABLE_NAME VARCHAR2(128) NO The name of the table. PARTITION_NAME VARCHAR2(128) NO The name of the partition. PARTITION_POSITION NUMBER NO The position of the partition within the table. SUBPARTITION_NAME VARCHAR2(128) NO The name of the subpartition...
PK는 Primary Key라고 불리며 기본키로 번역되서 불립니다. 특징으로는 테이블 컬럼 내의 유일한 값(Unique)과 빈 값이 없는(Not Null) 특징을 가지고 있습니다. 즉, 각 값들의 특징을 구분할 수 있는 유일한 값이 PK의 값이 되는것이죠. 예를들어, 고객의 테이블에서 주민등록번호는 PK가 될 수 있습니다. 한 사람당 유일한 값을 가지는 값이기 때문입니다. 그리고 PK 설정시 자동적으로 Unique Index를 생성하여 줍니다. Oracle의 경우 PK와 같은 컬럼의 Unique Index가 존재 시 따로 생성하지 않고 기존에 있는 Unique Index를 사용합니다. 아래의 테스트를 통하여 PK 컬럼추가에 대한 테스트를 실습해보겠습니다. PK는 alter table modify 명령어로..
힌트(Hint)의 정의 SQL 튜닝의 핵심 부분으로 일종의 지시 구문으로 즉, Optimizer에게 SQL문 실행을 위한 데이터를 스캐닝하는 경로 및 Join 방법등을 알려주기 위해 SQL사용자가 SQL구문에 작성하는 것을 의미하며 항상 최적의 실행 경로를 만들어 내기는 불가능 하기 때문에 직접 최적의 실행 경로를 작성해주는 것 단, Hint, Index, Join의 개념을 정확히 알고 무분별한 힌트 사용은 성능 저하를 유발할 수 있어 적절하게 사용필요 힌트(Hint)의 쓰임과 사용 방법 힌트를 사용함에 따라 액세스 경로, 조인 순서, 병렬 및 직렬 처리, Optimizer 목표 변경이 가능하다 데이터 값을 정렬해야하는 경우 힌트 사용이 필요하다. 링크 모든 힌트의 기본 사용법은 쿼리 서두에 힌트를 명시..