FBI 를 생성시에 UDF(User Define Function)을 이용할경우
-- 해당 예제에서는 암/복호화 함수
테스트 테이블은 암호화 되어 plugin 제품 사용을 가정.
----------------------------------------------------------------------------------------------------------------------------------------------------
인덱스가 생성되지 않은 상태에서 실행계획 확인.


솔루션을 통한 FBI 생성 후 실행계획 확인

View 를 통한 equal 검색시 cost 가 88 -> 54 로 줄어듬
인덱스 삭제 후 like 테스트


Like 검색시에도 cost 감소 84 -> 79
인덱스 삭제 후 in 테스트


In 검색시 cost 감소 93 -> 78
FBI 아닌 일반 인덱스 생성 후 암호화 함수로 테스트

Equal

In

In 조건에 1개의 값만 넣었을 경우 index 스캔 가능
-- 이경우에는 IN 조건에 한개의 값만 들어가므로 equal 과 동일한 것으로 보임.

2개 이상의 값이 들어가면 Full table scan 됨.
오히려 FBI 생성 후 VIEW 에서 조회하는게 빠른 결과를 보임.


FBI 타고 들어가는 View 에서 in 검색한 경우 78 Cost
일반 인덱스 타고 들어가는 _DAMO 테이블에서 in 검색한 경우 93 Cost

힌트를 사용하여 강제로 인덱스를 타게 할 경우 COST 가 234로 오히려 늘어나는 것을 확인함.
IN 사용시에는 굳이 FBI 를 만들고 강제로 index 를 타게하는 것이 성능면에서 더 떨어지는 것으로 보임.
'DB' 카테고리의 다른 글
MSSQL 2019 설치 및 SSMS 설치 (0) | 2022.12.01 |
---|---|
CUBRID 9.3.6 Left outer join 이슈 (0) | 2022.11.15 |
ORACLE MAX_STRING_SIZE 변경 (0) | 2022.11.02 |
Oracle Tablespace 이관 (0) | 2022.10.21 |
Oracle 통계정보 수집 (0) | 2022.10.21 |