IT관련 썸네일형 리스트형 오라클 In-memory (인메모리) 기능 사용방법 지난번 포스트에서 인메모리(In-memory) 에 대한 기본적인 개념에 대해 알아봤습니다. 이번에는 이 인메모리 기능을 사용하기 위해서 Oracle DB 에서 설정하는 방법을 확인해보겠습니다. 인메모리 기능은 Oracle DBMS 내에 이미 내장되어 있기 때문에 추가로 뭘 더 설치하거나 하는 것은 필요없습니다. 단지, DBMS 내에 인메모리로 사용할 메모리 공간을 확보해주고, alter table 구문으로 테이블 설정만 변경해주면 됩니다. * DB에 인메모리 파라메타 세팅 > alter system set inmemory_size = 1G scope=spfile; // DB버전은 12.1.0.2 이상이어야 함. // INMEMORY_SIZE 파라메타 값을 100M 이상으로 설정해야 함. (설정후 rest.. 더보기 오라클 Varchar2 타입 길이제한 4000 에서 32K 확장 (max_string_size 설정) 오라클 Varchar2 타입의 길이제한은 4000 바이트입니다. 더 크게 사용하려면 Long 이나 LOB 타입을 써야합니다. 하지만, Long 이나 LOB 을 사용하는 경우 각종 스트링 작업관련 함수들을 못쓰는 불편함이 있습니다. Oracle 12c 부터는 이것을 늘릴 수 있는 방법이 제공되는데, DB 파라메타 max_string_size 를 바꿔주면 됩니다. (standard -> extended) 이걸 alter system 명령으로 그냥 바꾸면 아래와 같이 ORA-14694 에러를 만나게 됩니다. SQL> alter system set max_string_size=extended; alter system set max_string_size=extended * ERROR at line 1: ORA-0.. 더보기 오라클 Heatmap 정보 조회 및 Clear 하는 방법 Oracle Heatmap 기능을 On 했을때 ( alter system set heat_map=ON; ) 참조할 수 있는 Heatmap 관련 스크립트입니다. ◆ Heatmap 정보 조회 * 스크립트 #1 SQL> set lines 150 col owner format a10; col object_name format a20; col subobject_name format a15; col segment_read_time format a20; col segment_write_time format a20; col full_scan format a20; col lookup_scan format a20; select owner, object_name, subobject_name, segment_read_time.. 더보기 오라클 In-memory (인메모리) 기능 소개 (Oracle을 메모리DB로 만들어주는) Oracle In-memory 기능은 12c 버전부터 제공되는 Oracle의 유료옵션입니다. 메모리(RAM)에 테이블 또는 파티션을 올려놓음으로써 Disk I/O 시간을 제거하여 성능을 크게 개선하고자 하는 기능입니다. 그럼, 과거에는 Oracle DBMS 가 메모리를 사용하지 않았냐? 그것은 아니고, Buffer Cache 라는 메모리공간에 테이블의 블록들을 올려놓고(캐싱해서) 사용해왔었습니다. 다만, 기존 버퍼캐시에는 테이블/파티션을 통째로 올려놓았던 것이 아니고 일부 블록들만 올려놓았었고, Row Format 으로 되어있는 Disk 에 있는 블록을 그대로 메모리에 로딩해서 캐싱하는 형태였습니다. 하지만, In-Memory 기능에서는 테이블/파티션을 통째로 올려놓고, Row Format 이 아닌 Co.. 더보기 오라클 Real-Time SQL Monitoring (실시간 Plan, Trace 툴) 19c 기능개선 부분 예전에 실시간으로 SQL Plan(실행계획)을 확인할 수 있는 Real-Time SQL Monitoring 기능에 대해서 포스팅한 적이 있습니다. 이 기능을 사용하기 위해서는 여러가지 권한이 필요했었는데, Oracle 19c DBMS 부터는 별도의 권한이 없이도 자기 세션에 대해서는 이 기능을 사용할 수 있습니다. SQL> set long 1000000 set longchunksize 1000000 set linesize 1000 select DBMS_SQLTUNE.report_sql_monitor(type=>'TEXT' , report_level => 'ALL') from dual; report_sql_monitor() 함수를 호출할때, sql_id 값을 지정하지 않았습니다. 이것은 현재 실행중인(다른.. 더보기 오라클 병렬처리 Union All 성능향상 (PQ_CONCURRENT_UNION) - Oracle 12c 신기능 Oracle 12c 신기능 중에 Union 또는 Union All SQL의 성능을 개선한 부분이 있습니다. 원래 Union 이나 Union All 구문의 처리는 Union 으로 묶여있는 각각의 SQL을 1개씩 Serial 하게 처리합니다. 이게 Oracle 12.1 버전부터는 동시에 처리되도록 바뀌었습니다. 단, 병렬처리의 경우에 한정입니다. 이전버전에서는 PQ_CONCURRENT_UNION 이라는 힌트를 별도로 주어서 이런 기능이 구현되었었는데, 12c 부터는 자동으로 Default 적용됩니다. 왼쪽은 optimizer_features_enable 파라메타를 조정해서 11g 환경으로 세팅한 것이고, 오른쪽은 19c 환경입니다. 똑같은 Union all SQL문을 양쪽에서 실행했는데, 왼쪽(11g)은 1.. 더보기 오라클 병렬처리 Plan 개선 (PX SELECTOR) - Oracle 12c 신기능 Oracle 12.1 버전부터 병렬처리 실행계획(Plan) 상에 PX SELECTOR 라는 것이 추가되었습니다. QC(Query Coordinator)가 하던 역할을 일부 떼어서 Parallel Process 가 하도록 바꾼 것인데, 이렇게 바꾸면서 불필요하게 Buffer Sort 하던 작업을 없애버려 결과적으로는 약간의 성능이 개선되는 효과를 가져왔습니다. 아래에서 확인할 수 있는데, 왼쪽은 optimizer_features_enable 파라메타를 조정해서 11g 환경으로 세팅한 것이고, 오른쪽은 19c 환경입니다. 아래 SQL문을 11g 환경에서 실행했을때는 0.67초가 걸렸고, 19c 환경에서는 0.45초가 걸렸습니다. select /*+ monitor ordered parallel(a 4) */ .. 더보기 오라클 에러 정보 (ORA-27104) - system-defined limits for shared memory was misconfigured Oracle DB 서버의 메모리를 늘려주고(8GB -> 16GB), sga_max_size, sga_target 파라메타값을 늘려준 후, DB를 재기동 하는데 Startup 이 안되는 경우가 있습니다. ORA-27104 에러가 발생하면서 shared memory 가 잘못 설정되어 있다고 메시지를 뱉어냅니다. ORA-27104: system-defined limits for shared memory was misconfigured 이것은 OS Kernel Parameter 에 설정된 shm... 값이 잘못 설정되어 발생하는 것입니다. Oracle Database 설치 가이드에는 아래와 같이 shmall 값이 2097152 으로 되어 있는데, 이것은 8GB 를 기준으로 맞춰신 샘플이고, 메모리가 커지면 이 .. 더보기 이전 1 2 3 4 5 6 7 ··· 38 다음