카테고리: DB Tunning(TABLE,SQL,…)

Invisible Index

Invisible Index Invisible Index는 11g에서 새로 나온 것으로 Virtual Index와는 달리 Optimizer에게 보이지 않을 뿐 실제로 세그먼트 형태로 존재하는 인덱스입니다. Invisible Index는 실제로 존재하는 인덱스  이고 따라서 통계 정보가 수집된다. 따라서 보다 정확한 테스트를…

Dynamic SQL

Dynamic SQL, 동적 SQL은 상황에 따라 가변적으로 사용되는 SQL을 의미한다. Dynamic SQL의 기본적 개념 및 사용법을 다루도록 하겠다.   Dynamic SQL? 대부분의 데이타베이스 응용프로그램은 특정한 일을 한다. 예를 들면, 단순한…

Bigfile Tablespace

Bigfile tablespace(BFT)는 아주 큰 크기의 datafile을 가질 수 있는 tablespace이다. Oracle Database 10g의 새로운 addressing 기법에 의해, 하나의 datafile이 40억개의 block을 가질 수 있게 되었다. 그래서, 최대 datafile 크기는 block의…

WINDOWS PERFORMANCE TUNING

WINDOWS 386 확장모드에서 설치후 PERFORMANCE 향상을 최대화하기 위한 방안을 다음과 같이 제시한다. (WINDOWS는 386확장모드에서 가상메모리를사용할 수 있다.) 이러한 제시 사항들은 표준 모드와 실제모드에 적용할 수 있으며 잘 작동한다. 물론 표준모드에서…

LOCK 문제 확인과 해결 방법

– 응용프로그램들의 기능이 복잡해져가면서 Lock 문제가 빈번하게 발생함에 따라 이를 해결하는 것이 매우 중요한 일이 되었다. 도대체 어떠한 프로그램이 Lock을 발생시켜 데이타베이스를 Hangup 상태에 이르게 하는가를 알아내는 것은 쉬운 일이…

Invisible Index

1. Invisible Index란 Invisible Index기능은 Optimizer가 Execution Plan을 생성 시에 Invisible Index인 Index들을 무시 하게 되는 기능입니다. Session이나 System별로 OPTIMIZER_USE_INVISIBLE_INDEXES Parameter를 True로 설정하게 되면 Optimizer가 Invisible Index라고 할지라도 무시하지 않고…

인덱스 사용 현황 모니터링

  개요   데이터베이스를 운영 중에 새로운 인덱스를 생성하거나, 기존의 인덱스 변경됨으로써 영향을 받아 사용되지 않는 인덱스가 생겨날 수 있다. 따라서 그러한 인덱스를 찾아 수정하거나 제거할 필요성이 제기된다. 실제로 튜닝작업…

Segment shrinking

Oracle Database 9i까지는 세그먼트 HWM이하에 할당된 공간은 오직 세그먼트를 이관하거나 재 정의할 때 반납되었습니다. Oracle Database 10g부터는 세그먼트의 빈 공간을 shrink 할 수 있습니다. 세그먼트가 shrink 될 때, 그 데이터는…

풀 테이블 스캔으로 시스템 리소스 증가하는 쿼리 튜닝

SQL #1   SELECT *                                                   FROM (SELECT T0.*, FLOOR((ROWNUM – 1) / :1 + 1) PAGE              FROM           (                                                                                       SELECT                                                                                               a.entry_indexno, a.eventid,                                                                    a.userid, a.name, a.reg_date,                 …

Latch & Lock

Latch & Lock 1. Latch 개요 가벼운 Lock(Light-weight Lock) 공유 Memory 영역(SGA)을 보호하기 위한 동기화 객체 1.1 Latch가 보호하는 Resource -Latch는 SGA의 모든 하위 Memory 영역을 보호 -Cache Buffer -Shared…

SQL 성능 향상 지침

  1.SQL 작성시 유의사항   1.컬럼 가공으로 인한 비효율   2.확인자/제공자 역할의 SubQuery   3.최소,최대값(최초,최종) 구하기   4.함수 수행횟수 비효율   5.빈번한 OCI CALL과 LOOP QUERY   6.부분범위 처리  …

Tuning 이란

Tuning 이란 쓸데없는 일을 시키지 않는 것 병목현상을 없애어 모든 처리 과정이 최상의 성능을 발휘하도록 하는 것.  최소의 자원으로 최대의 일을 시키는 것. 놀고 있는 자원이 없도록 하는 것.  …

조인의 튜닝 방법 -2

Outer Join 어떤 집합을 기준으로 해서 조인되는 다른 집합과의 연결에 실패했더라도 그 결과를 추출하는 조인 특징 조인 순서가 미리 정해지므로 조인순서를 이용한 튜닝이 불가함 가능한 Outer Join은 피하도록 함 Outer…

인덱스 리빌드(Index Rebuild) 란

0. 인덱스는 사용자가 임의적으로 생성 변경이 가능한 데이터 베이스에 저장가능한 물리적인 구조입니다. 하지만 인덱스는 단순하게 색인이라는 개념에 앞서 옵티마이저가 실행계획을 수립할 때 최적의 경로를 찾도록 하는 ‘전략적 요소’라는 시각에서 접근하여야…

테이블 별 I/O 확인 쿼리

Enterprise Edition 환경에서 테이블 별 I/O를 확인할 수 있는 쿼리 입니다. 해당하는 OWNER, OBJECT_NAME으로 쿼리 수행하셔서 SNAP_TIME 컬럼에서 해당기간을 확인하실 수 있습니다. 아래 쿼리는 AWR를 정보를 가지고 있는 뷰를 조회하기 때문에…

ORACLE BUFFER CACHE

    Buffer Cache Management   Oracle은 cache buffer를 관리하기 위해서는 세가지의 내부적인 structure를 사용하는데, 그 각각은 cache buffer chain, dirty list, LRU(Least Recently Used list)이며, 아래에 자세히 설명하다. buffer…

Oracle Shared Pool

    Oracle Memory Model   Oracle 의 주요 특징 중 하나가 SGA내에shared pool이란 structure를 도입한 것이다. shared pool을 잘 이해하고 관리하는 것은 Oracle을 사용하는데 있어서 성능 향상 및 문제…

SQL 튜닝 사례

  SQL Tuning CASE   [ CASE1: 적절한 인덱스의 사용 ] <SQL> UPDATE TB_CCPIDSCNT SET END_DATE = DECODE (SIGN (( NVL (END_DATE,TO_CHAR (( ADD_MONTHS (TO_DATE (START_DATE,’YYYYMMDD’),36)– 1),’YYYYMMDD’))– :b0)),1, :b0,END_DATE) ,END_ORD_NO =…

정규화 ( Normalization )

정규화 정규화의 정의정규화 작업은 불필요하게 같은 데이터가 반복되어 나타나는 것을 방지하기 위한 작업으로 E-R Diegram의 검증 및 원시데이터의 관계형 테이블 전환시 사용된다. 정규화 작업은 총 6단계 또는 7단계로 구분 될…

Oracle LOCK의 유형

LOCK의 유형    데이타의 concurrency를 보장하기 위해 오라클은 lock과 transaction을 사용한다.    Lock은 같은 자원을 access하는 사용자들 사이에 상호간에 해를 끼치는 것을 예방하기 위해서 사용되는 메카니즘이다.    Lock의 종류       –…

Statspack을 통한 시스템 튜닝

Statspack을 통한 시스템 튜닝 저자 Rich Niemiec   Statspack 보고서에 대기 이벤트가 무엇을 의미하며, 이러한 이벤트를 튜닝하는 방법을 확인하십시오. Oracle 유틸리티를 단 두 개만 사용하여 Oracle9i Database 시스템의 성능 문제를 확인…

oracle lock 이란?

Latch가 SGA영역을 보호 한다면 Lock은 데이터 베이스를 보호 한다고 보면 된다.  Lock은 Latch와 다르게 복잡한 메카니즘을 통하여 관리가 된다. 또, Lock은 관리 방법에 따라서 일반 Lock과 Enqueue Lock으로 분류를 할…

Oracle Latch 란??

오라클에서 Latch는 Lock과 함께 잠금에 사용되는 장치이다. 그러나 Lock과 틀린것은 latch는 Lock보다 가볍고 SGA 내부의 공유 데이터에 대한 베타적인 잠금을 보장하여 (9i 이상에서는 cache buffer chains Latch는 읽기 전용일 경우…