메뉴 건너뛰기

Korea Oracle User Group

12c

12.2 12.1 ]MAX_STRING_SIZE 기능을 활용

우뽕 2020.02.25 20:57 조회 수 : 202 추천:1

MAX_STRING_SIZE = EXTENDED 

설정을 하게 되면 varchar2(4000) 에서 varchar2(32767) 까지 사용이 가능 합니다.

 

오라클 문서 

https://docs.oracle.com/database/121/REFRN/GUID-D424D23B-0933-425F-BC69-9C0E6724693C.htm#REFRN10321

 

그외 문서 : 자료실 참고 부탁 드립니다.

 

장점은 무엇이며 단점을 무엇이 있을까요?

 

1. 장점  

   : 지금은 거의 LONG 타입이 없겠지만 대체 가능 합니다.

   : LOB 타입까지 사용 할 필요성이 없다고 판단이 되시면 대체 가능 하여 여러가지 기대 효과도 있겠네요.

   : 프로그램 구현 즉 SQL문 구현시 복잡함이 덜 하고 특히 프로시저 사용시 기존에 VARCHAR2(4000) 까지 사용 했던 

     방식그대로 길이만 조정해서 사용 가능 합니다.

 

 

2. 단점 

   : 기존 DBMS 즉 운영중 또는 지금 현재 개발 중 인 곳은 많은 테스트와 준비를 한 후 변경 해 주시길 바랍니다.

     신규 DB 서버에서 부터  설정을 권해 드리고 싶습니다.

   : ORA-14695 에러가 나면서 DB가 안올라 옵니다.

   ;  인덱스를 사용하는 방식이 다릅니다. 따라서 주의 해 주셔야 합니다.

 

 

인덱스 사용 방법은 아래와 같습니다.

 

0) 테스트 환경

 

select VERSION, EDITION, DATABASE_TYPE from v$instance;

 

VERSION           EDITION     DATABASE_TYPE   

----------------- -------         --------------- 

12.2.0.1.0            EE             SINGLE     

 

*** CDB, PDB 없는 곳 입니다.

 

1) 테이블 생성

      

 CREATE  TABLE TBL_SQLID 

 (

  ONWER VARCHAR2(128),

  TABLE_NAME VARCHAR2(128),

  SQL_TEXT VARCHAR2(32000),

  SQL_ID  VARCHAR2(32000),

  SQL_ID_COUNT NUMBER,

  IN_DATE  VARCHAR2(30)

  )NOLOGGING;

 
2) 인덱스 생성
ALTER TABLE TBL_SQLID ADD (
                                      SQL_ID_HASH AS (STANDARD_HASH(SQL_ID)),
                                    SQL_TEXT_HASH AS (STANDARD_HASH(SQL_TEXT)) 
                                       );
 
ALTER TABLE TBL_SQLID ADD CONSTRAINT PK_TBL_SQLID UNIQUE( SQL_ID_HASH, SQL_TEXT_HASH);
 
max_string_size_INDEX 사용하기.GIF

 

 

실질적으로 수집한 데이타 카운터 한 내용 입니다.

 

 SELECT  LENGTHB(SQL_ID) FROM TBL_SQLID  order by  LENGTHB(SQL_ID) DESC  NULLS LAST;

 

LENGTHB(SQL_ID) 

--------------- 

          15203

           9659

           7517

           6439

           5011

           3723

           3625

           3373

           3373

           3023

           2995

~~~~~~~~~

생략

 

=======================================

참고로 저는 장점을 선택 하여 가급적 설정을 해 놓은 상태 이고, 개발자분들에게 알려드리고 사용을 권하지만,

 결과적으로 보면 사용을  하지 않네요. 

 
 
 
위로