Development/Database(491)
-
Invisible index(인비저블 인덱스)
Invisible index(인비저블 인덱스) 11g New Feature 인덱스를 실제 삭제하기 전에 "사용 안 함" 상태로 만들어서 테스트해 볼 수 있는 기능을 제공하는 인덱스 인덱스는 SQL문장에 많은 영향을 주고 있는데 인덱스가 많은 경우 DML문장에 나쁜 영향을 주기 때문에 사용하지 않는 인덱스는 삭제해주는 것이 좋습니다. 해당 인덱스를 사용하기전 정말 사용하는지 사용하지 않는 것인지를 정확하게 파악해야 합니다.
-
인덱스 사용여부 판단 기준
인덱스 사용여부 판단 기준 계획성 없는 무분별한 인덱스 지정은 오히려 성능을 저하 시킬 수 있습니다. 인덱스를 사용해야 하는 경우인덱스를 사용하지 말아야 하는 경우테이블에 행의 수가 많을 때테이블에 행의 수가 적을 때WHERE 문에 해당 컬럼이 많이 사용될 때WHERE 문에 해당 컬럼이 자주 사용되지 않을 때검색 결과가 전체 데이터의 2%~4% 정도 일 때검색 결과가 전체 데이터의 10%~15% 이상 일 때JOIN에 자주 사용되는 컬럼이나 NULL을 포함하는 컬럼이 많은 경우테이블에 DML 작업이 많은 경우 즉, 입력, 수정, 삭제 등이 자주 일어날 때
-
인덱스 제거
DROP INDEX 명령어 인덱스를 삭제 DROP INDEX 형식 DROP INDEX 인덱스명;
-
인덱스 생성 - CREATE INDEX 명령어, CREATE INDEX 형식
CREATE INDEX 명령어 기본키나 유일키가 아닌 컬럼에 대해서 인덱스를 지정 CREATE INDEX 형식CREATE INDEX 다음에 인덱스 객체의 이름을 지정합니다. 어떤 테이블의 어떤 컬럼에 인덱스를 설정할 것인지를 결정하기 위해서 ON절 다음에 테이블명과 컬럼명을 기술합니다. CREATE INDEX 인덱스명 ON 테이블명(컬럼명);
-
VIEW 종류 - 단순 뷰에서 DML조작이 불가능한 경우, 복합 뷰(Complex View)
VIEW 종류 뷰는 뷰를 정의하기 위해서 사용된 기본 테이블의 수에 따라 단순뷰와 복합 뷰로 나뉘어 집니다. 단순 뷰(Simple View)복합 뷰(Complex View)하나의 테이블로 생성여러 개의 테이블로 생성그룹 함수의 사용이 불가능그룹 함수의 사용이 가능DISTINCT 사용이 불가능DISTINCT 사용이 가능DML 사용이 가능 (INSERT/UPDATE/DELETE문 사용 가능)DML 사용이 불가능 단순 뷰에서 DML조작이 불가능한 경우 뷰 정의에 포함되지 않은 컬럼중에 기본테이블의 컬럼이 NOT NULL제약조건이 지정되어 있는 경우 INSERT명령문을 사용할 수 없습니다. 왜냐하면 뷰에 대한 INSERT문은 기본테이블에 NULL값을 입력하는 형태가 되기 때문입니다. 산술표현식으로 정의된 가상 ..
-
제약 조건 변경하기
제약 조건 변경하기 제약조건은 테이블을 생성하면서 지정하거나 ALTER TABLE명령문을 이용해서 이미 존재하는 테이블에 제약조건을 추가, 삭제, 변경할 수 있습니다. ADD CONSTRAINT MODIFY CONSTRAINT DROP CONSTRAINT ALTER TABLE ~ ADD 생성된 테이블의 구조를 변경하기 위한 명령어 테이블 생성이 끝난 후에 제약 조건을 추가하기 위해서 사용 ADD CONSTRAINT 형식 ALTER TABLE 테이블명 ADD [CONSTRAINT 제약조건명] 제약조건타입(컬럼명); MODIFY 이미 존재하는 테이블에 NOT NULL 제약 조건을 추가하기 위해서는 MODIFY 명령어로 NOT NULL 제약 조건을 설정 MODIFY CONSTRAINT 형식 ALTER TABL..