KR20100123957A - 인덱스 리빌드 자동화 시스템 및 그 방법 - Google Patents

인덱스 리빌드 자동화 시스템 및 그 방법 Download PDF

Info

Publication number
KR20100123957A
KR20100123957A KR1020090042950A KR20090042950A KR20100123957A KR 20100123957 A KR20100123957 A KR 20100123957A KR 1020090042950 A KR1020090042950 A KR 1020090042950A KR 20090042950 A KR20090042950 A KR 20090042950A KR 20100123957 A KR20100123957 A KR 20100123957A
Authority
KR
South Korea
Prior art keywords
rebuild
index
target
capacity
exclusion
Prior art date
Application number
KR1020090042950A
Other languages
English (en)
Other versions
KR101054026B1 (ko
Inventor
김일택
Original Assignee
주식회사 부산은행
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 주식회사 부산은행 filed Critical 주식회사 부산은행
Priority to KR1020090042950A priority Critical patent/KR101054026B1/ko
Publication of KR20100123957A publication Critical patent/KR20100123957A/ko
Application granted granted Critical
Publication of KR101054026B1 publication Critical patent/KR101054026B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

오라클 데이터베이스의 인덱스 리빌드(Index Rebuild) 작업을 엑셀 프로그램의 함수와 프로그래밍 기능을 이용하여 자동화하고, 리빌드 필요성이 없는 인덱스를 별도 보관하여 인덱스 리빌드 재작업시 리빌드를 하지 않도록 함으로써 리빌드 소요시간을 단축시킬 수 있는, 인덱스 리빌드 자동화 시스템 및 그 방법이 제공된다. 인덱스 리빌드 자동화 시스템은, 한 개 이상의 테이블 스페이스를 구비한 오라클 데이터베이스; 오라클 데이터베이스에 접속하여 테이블 스페이스 단위로 인덱스 사전용량 전체를 조회하고, 인덱스 리빌드 작업기록에 근거하여 인덱스 리빌드 작업 전후 인덱스의 디스크 사용량을 비교하여 인덱스 리빌드 작업후의 디스크 사용량이 줄어들지 않은 인덱스를 리빌드 제외 등록하며, 인덱스 리빌드 작업시 리빌드 제외 등록된 인덱스를 제외시키고 인덱스를 수행하는 인덱스 리빌드 시스템; 및 인덱스 리빌드를 수행할 때의 인덱스 용량 증감과 인덱스 리빌드 처리시간을 기록한 엑셀 파일 형식의 인덱스 리빌드 작업기록을 포함하되, 인덱스 리빌드 시스템은, 함수와 프로그래밍 기능을 구비한 엑셀(EXCEL) 프로그램으로 오라클 데이터베이스에 액세스하여 자동으로 인덱스 리빌드를 수행하는 것을 특징으로 한다.

Description

인덱스 리빌드 자동화 시스템 및 그 방법 {System for automatically performing index rebuild, and method for the same}
본 발명은 인덱스 리빌드에 관한 것으로, 보다 구체적으로, 오라클 데이터베이스에서 인덱스를 자동으로 리빌드하는 인덱스 리빌드 자동화 시스템 및 그 방법에 관한 것이다.
데이터베이스에서, 인덱스가 있는 테이블에 데이터의 변경이 많다면 인덱스가 쌓이게 된다. 즉, 데이터를 삽입(Insert), 삭제(Delete)를 하게 되면 인덱스는 삭제되고 쌓이는 게 아니라 무조건 쌓이게 된다. 이러한 인덱스가 너무 많이 쌓이게 되면 검색속도도 떨어지게 되고, 디스크 공간도 많이 차지하게 된다.
이를 해결하기 위하여 인덱스 리빌드(Index Rebuild)를 수행하며, 인덱스 리빌드를 수행하게 되면 현재의 데이터와 맞는 인덱스만 남고 인덱스 구조를 최적화시킬 수 있다. 이러한 인덱스 리빌드를 수행하지 않을 경우, 불필요하게 데이터베이스의 속도가 저하될 우려가 있다. 따라서 통상적으로 1~2달의 주기로 인덱스 리빌드를 수행하고 있다.
종래의 데이터베이스 프로그램에는 인덱스를 리빌드하는 기능이 있는데, 도 1을 참조하여 설명한다.
도 1은 종래의 기술에 따른 인덱스 리빌드 방법의 동작흐름도이다.
도 1을 참조하면, 종래의 기술에 따른 인덱스 리빌드 방법은, 먼저 오라클 데이터베이스에 접속하고(S10), 건별로 사전 인덱스 용량을 조회한다(S20).
다음으로, DB 서버별로 스크립트를 작성하고(S30), 이때, 작업시마다 DB 서버별로 스크립트의 정당성 여부를 확인한다(S40). 다음으로, 인덱스 리빌드를 수행하게 된다(S50).
인덱스 리빌드 작업은 디스크 여유공간 확보 또는 검색속도 향상을 위해 필요하다고 판단될 때 수행한다. 그러나 관리자는 인덱스 리빌드 작업이 필요한 인덱스인지 혹은 인덱스 리빌드가 불필요한 인덱스인지를 미리 확인할 수는 없으며, 다만 인덱스 리빌드 후 그 용량 감소를 통하여 인덱스 리빌드가 필요하였는지 혹은 불필요한지를 판단할 수 있을 뿐이다.
따라서 금융기관인 은행의 데이터베이스에는, 레코드 삭제가 아예 발생하지 않거나 혹은 거의 발생하지 않는 데이터베이스가 있으며, 이러한 경우에도 하나의 데이터베이스에 수많은 인덱스가 존재하는데, 데이터베이스 관리자에 의해 인덱스 리빌드를 수행할 경우, 데이터베이스 관리자는 인덱스 리빌드의 필요 여부에 대한 사전 정보를 가지고 있지 않으므로 모든 인덱스에 대하여 리빌드 작업을 수행하여야 한다.
다시 말하면, 인덱스 리빌드 작업은 디스크 여유공간 확보 또는 검색속도 향상을 위해 필요하다고 판단될 때 수행하는데, 통상 오라클 DB 관리 소프트웨어(Orange, Toad 등)를 이용하여 수행하나, 인덱스 리빌드 작업 처리 전후의 디스크 사용량 비교를 위해서는 인덱스 리빌드 작업 후 별도의 조회문장을 실행해야 하고, 인덱스 리빌드를 위하여는 DB 서버별로 인덱스 리빌드 스크립트를 작성해야 하며, 인덱스 리빌드 작업시마다 스크립트의 정당성(예를 들면, 인덱스 리빌드 작업후 추가/삭제된 인덱스의 적용) 여부를 일일이 확인해야 하는 불편함과 이로 인한 시간이 낭비되는 문제점이 있다. 또한, 재작업시 인덱스 리빌드 작업을 할 필요성이 없는 인덱스(일괄 입력 후 조회용으로 사용하는 인덱스 등)도 관련 정보가 없기 때문에 인덱스 리빌드 작업을 다시 할 수 밖에 없다.
전술한 문제점을 해결하기 위한 본 발명이 이루고자 하는 기술적 과제는, 인덱스 리빌드(Index Rebuild) 작업을 엑셀 프로그램의 함수와 프로그래밍 기능을 이용하여 자동화할 수 있는 인덱스 리빌드 자동화 시스템 및 그 방법을 제공하기 위한 것이다.
본 발명이 이루고자 하는 다른 기술적 과제는, 리빌드 필요성이 없는 인덱스를 별도 보관하여 인덱스 리빌드 재작업시 리빌드를 하지 않도록 함으로써 소요시간을 단축시킬 수 있는 인덱스 리빌드 자동화 시스템 및 그 방법을 제공하기 위한 것이다.
본 발명이 이루고자 하는 다른 기술적 과제는, 인덱스 리빌드 작업시 스크립트 작성 과정 및 사후 인덱스 용량 조회를 자동화할 수 있는 인덱스 리빌드 자동화 시스템 및 그 방법을 제공하기 위한 것이다.
전술한 기술적 과제를 달성하기 위한 수단으로서, 본 발명에 따른 인덱스 리빌드 자동화 시스템은, 오라클 데이터베이스의 인덱스를 리빌드하는 인덱스 리빌드 시스템에 있어서, 한 개 이상의 테이블 스페이스-여기서 테이블 스페이스 각각은 한 개 이상의 데이터 파일로 이루어지며, 하나 이상의 데이터 파일을 사용시 디스크 입출력(I/O)을 줄일 수 있음-를 구비한 오라클 데이터베이스; 상기 오라클 데이터베이스에 접속하여 상기 테이블 스페이스 단위로 인덱스 사전용량 전체를 조회 하고, 인덱스 리빌드 작업기록에 근거하여 인덱스 리빌드 작업 전후 인덱스의 디스크 사용량을 비교하여 인덱스 리빌드 작업후의 디스크 사용량이 줄어들지 않은 인덱스를 리빌드 제외 등록하며, 인덱스 리빌드 작업시 리빌드 제외 등록된 인덱스를 제외시키고 인덱스를 수행하는 인덱스 리빌드 시스템; 및 상기 인덱스 리빌드를 수행할 때의 인덱스 용량 증감과 인덱스 리빌드 처리시간을 기록한 엑셀 파일 형식의 인덱스 리빌드 작업기록을 포함하되, 상기 인덱스 리빌드 시스템은, 함수와 프로그래밍 기능을 구비한 엑셀(EXCEL) 프로그램으로 상기 오라클 데이터베이스에 액세스하여 자동으로 인덱스 리빌드를 수행하는 것을 특징으로 한다.
여기서, 상기 인덱스 리빌드 시스템은 상기 엑셀 파일 형식의 인덱스 리빌드 작업기록에 근거하여 스크립트 작성과 인덱스 리빌드, 인덱스 리빌드 작업후 인덱스의 디스크 사용량, 작업 소요시간 표기를 자동으로 수행하는 것을 특징으로 한다.
여기서, 상기 인덱스 리빌드 시스템은 인덱스 리빌드 이전과 수행후의 인덱스 용량을 비교하여 해당 인덱스에 대한 용량 감소를 기록하고, 상기 용량 감소가 일정 범위 이하이면 인덱스 리빌드가 불필요한 인덱스로 등록하는 것을 특징으로 한다.
여기서, 상기 인덱스 리빌드 시스템은, 상기 오라클 데이터베이스에 접속하여 테이블 스페이스 단위로 전체 인덱스의 사전 용량을 조회하는 인덱스 사전용량 전체 조회부; 건별로 리빌드 대상을 확인하는 건별 리빌드 대상 확인부; 리빌드 제외대상 테이블을 조회하는 리빌드 제외대상 테이블 조회부; 리빌드 대상 여부를 판 단하는 리빌드 대상 판단부; 상기 리빌드 대상에 대해 인덱스 리빌드를 수행하는 인덱스 리빌드 수행부; 건별로 인덱스 사후 용량을 조회하는 건별 인덱스 사후용량 조회부; 데이터베이스 관리자가 설정한 임계치에 근거하여 상기 사후 조회된 용량 감소가 일정 범위 이하이면, 인덱스 리빌드가 불필요한 리빌드 제외대상으로 판단하는 리빌드 제외대상 판단부; 상기 리빌드 제외대상을 상기 리빌드 제외대상 테이블에 등록하는 리빌드 제외대상 등록부; 및 상기 리빌드 제외대상이 등록되어 저장되는 리빌드 제외대상 테이블을 포함할 수 있다.
전술한 기술적 과제를 달성하기 위한 다른 수단으로서, 본 발명에 따른 인덱스 리빌드 방법은, 오라클 데이터베이스의 인덱스를 리빌드하는 인덱스 리빌드 방법에 있어서, a) 상기 오라클 데이터베이스로부터 테이블 스페이스 단위로 전체 인덱스의 사전 용량을 조회하는 단계; b) 건별로 리빌드 대상을 확인하는 단계; c) 리빌드 제외대상 테이블을 조회하는 단계; d) 리빌드 대상 여부를 판단하는 단계; e) 상기 리빌드 대상에 대해 인덱스 리빌드를 수행하는 단계; f) 건별로 인덱스 사후 용량을 조회하는 단계; g) 데이터베이스 관리자가 설정한 임계치에 근거하여 상기 사후 조회된 용량 감소가 일정 범위 이하이면, 인덱스 리빌드가 불필요한 리빌드 제외대상으로 판단하는 단계; 및 h) 상기 리빌드 제외대상을 상기 리빌드 제외대상 테이블에 등록하는 단계를 포함하되, 상기 인덱스 리빌드는 함수와 프로그래밍 기능을 구비한 엑셀(EXCEL) 프로그램으로 오라클 데이터베이스에 액세스하여 자동으로 수행되는 것을 특징으로 한다.
여기서, 상기 a) 단계는 인덱스 리빌드 작업 전에 인덱스의 사전 용량 전체 조회시 상기 오라클 데이터베이스에 접속하는 것을 특징으로 한다.
여기서, 상기 g) 단계의 리빌드 제외대상은, 데이터를 한꺼번에 입력한 후 수시로 조회만 하는 인덱스, 데이터 삭제는 하지 않고 수시로 입력 및 조회만 하는 인덱스, 또는 데이터 삭제가 있더라도 그 수치가 아주 적은 인덱스인 것을 특징으로 한다.
여기서, 상기 g) 단계에서 인덱스 리빌드가 불필요한 인덱스로 등록되면, 인덱스 리빌드를 수행할 때, 인덱스 리빌드가 필요한 인덱스인지 아니면 불필요한 인덱스인지를 판단하여 해당되는 인덱스에 대해서 인덱스 리빌드를 수행하는 것을 특징으로 한다.
본 발명에 따르면, 오라클 데이터베이스의 인덱스 리빌드(Index Rebuild) 작업을 엑셀 프로그램의 함수와 프로그래밍 기능을 이용하여 자동화함으로써 효율성과 편리성을 향상시킬 수 있다.
본 발명에 따르면, 리빌드 필요성이 없는 인덱스를 별도 보관하여 인덱스 리빌드 재작업시 리빌드를 하지 않도록 함으로써 소요시간을 단축시킬 수 있다.
본 발명에 따르면, 인덱스 리빌드 작업시 스크립트 작성 과정 및 사후 인덱스 용량 조회가 자동화됨으로써, 조회 시간을 절약할 수 있고, 분석정보로 활용할 수 있다.
아래에서는 첨부한 도면을 참조하여 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 본 발명의 실시예를 상세히 설명한다. 그러나 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시예에 한정되지 않는다. 그리고 도면에서 본 발명을 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 유사한 부분에 대해서는 유사한 도면 부호를 붙였다.
명세서 전체에서, 어떤 부분이 다른 부분과 "연결"되어 있다고 할 때, 이는 "직접적으로 연결"되어 있는 경우뿐 아니라, 그 중간에 다른 소자를 사이에 두고 "전기적으로 연결"되어 있는 경우도 포함한다. 또한 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있는 것을 의미한다.
먼저, 일반적인 오라클 데이터베이스의 구조를 도 2를 참조하여 설명한다.
도 2는 일반적인 오라클 데이터베이스의 구조를 설명하기 위한 도면이다.
도 2를 참조하면, 일반적인 오라클 데이터베이스 구조는 기본적인 정보의 측면의 데이터베이스(Database)와 시스템 측면의 인스턴스(Instance)로 구분된다. 여기서, 오라클 데이터베이스(DB)는 미국 오라클(ORACLE)사의 관계형 데이터베이스 관리 시스템(RDBMS)을 말하며, 현재 유닉스 환경에서 가장 널리 사용되는 RDBMS로서, 검색이나 업데이트용 언어로는 국제표준화기구의 표준 구조화 조회 언어와 PL/SQL을 지원한다.
오라클 데이터베이스는 논리적인 층과 물리적인 층을 가지고 있으며, 물리적인 층은 디스크상의 파일로 구성되고, 논리적인 층은 데이터를 물리적인 층과 매핑 시킨다.
구체적으로, 물리적인 층은 하나 이상의 데이터 파일(Data Files)로 이루어지며, 데이터베이스에서 저장된 정보를 저장한다. 또한, 물리적인 층은 두개 이상의 Redo 로그 파일(Redo Log Files)을 포함하는데, Redo 로그 파일은 시스템 장애시 복구를 위해 사용되는 정보를 갖는다. 이때, Redo 로그 파일은 데이터베이스에 만들어진 모든 변화의 로그를 저장하며, 완전한 데이터베이스 복구를 위해 반드시 필요하다.
또한, 물리적인 층은 하나 이상의 컨트롤 파일(Control File)을 구비하며, Redo 로그 파일의 위치 등의 인스턴스 시작에 적용되는 정보를 포함한다. 또한, 물리적인 층은 파라미터 파일을 포함한다.
한편, 논리적인 층은 하나 이상의 테이블 스페이스로 이루어지며, 테이블, 클러스터, 뷰, 내장 프로시저, 트리거, 시퀀스 등의 아이템으로 구성되는 데이터베이스 스키마이다.
데이터베이스는 테이블 스페이스라는 하나 이상의 논리적 조각으로 분리되어 있다. 이때, 테이블 스페이스는 하나 이상의 데이터 파일로 구성되며, 여러 개의 데이터 파일을 사용시 디스크 입출력(I/O)을 줄이고 성능을 향상시킬 수 있다.
또한, 데이터베이스 스키마는 스키마 객체라고 불리는 논리적 구조 객체의 집합으로서, 데이터베이스의 데이터를 어떻게 볼 것인지를 정의한다.
테이블은 테이블명, 로우, 컬럼으로 구성되며, 기본적인 논리적 저장 단위이다. 또한, 클러스터는 공통적인 컬럼을 공유하는 하나의 테이블로 물리적으로 저 장되는 테이블의 집합이다. 또한, 인덱스(Index)는 데이터를 더 빠르고 효과적으로 가져오기 위해 생성된 구조이다. 또한, 뷰(View)는 하나 이상의 테이블에 대한 투영본이다. 내장 프로시저는 데이터 딕셔너리에 미리 정의된 SQL 쿼리를 말한다. 트리거는 이벤트 발생시 자동으로 구동되는 프로시저이다.
한편, 본 발명의 실시예로서, 오라클 데이터베이스의 인덱스 리빌드(Index Rebuild) 작업을 엑셀 프로그램의 함수와 프로그래밍 기능을 이용하여 자동화할 수 있는 인덱스 리빌드 자동화 시스템 및 그 방법이 제공된다.
도 3은 본 발명의 실시예에 따른 오라클 데이터베이스의 인덱스 리빌드 자동화 시스템의 구성도이다.
도 3을 참조하면, 본 발명의 실시예에 따른 오라클 데이터베이스의 인덱스 리빌드 자동화 시스템은, 인덱스 리빌드 시스템(100), 오라클 데이터베이스(200) 및 인덱스 리빌드 작업기록(300)을 포함하며, 이때, 상기 인덱스 리빌드 시스템(100)은 인덱스 사전용량 전체 조회부(110), 건별 리빌드 대상 확인부(120), 리빌드 제외대상 테이블 조회부(130), 리빌드 대상 판단부(140), 인덱스 리빌드 수행부(150), 건별 인덱스 사후용량 조회부(160), 리빌드 제외대상 판단부(170), 리빌드 제외대상 등록부(180) 및 리빌드 제외대상 테이블(190)을 포함한다.
오라클 데이터베이스(200)는 한 개 이상의 테이블 스페이스(210)를 구비하며, 여기서, 테이블 스페이스(210) 각각은 한 개 이상의 데이터 파일(220)로 이루어지며, 하나 이상의 데이터 파일(220)을 사용시 디스크 입출력(I/O)을 줄일 수 있게 한다.
인덱스 리빌드 작업기록(300)은 인덱스 리빌드에 관한 각각의 인덱스 마다의 처리 시간과 인덱스 용량 증감을 별도로 기록한 파일이다.
인덱스 리빌드 시스템(100)은 상기 오라클 데이터베이스(200)에 접속하여 상기 테이블 스페이스(210) 단위로 인덱스 사전용량 전체를 조회하고, 리빌드 제외대상 테이블(190)에 근거하여 인덱스 리빌드를 수행하며, 아울러 인덱스 리빌드 후 리빌드 제외대상 테이블(190)에 인덱스 리빌드 제외대상 여부를 등록하게 된다.
또한, 상기 인덱스 리빌드 시스템(100)은, 함수와 프로그래밍 기능을 구비한 엑셀(EXCEL) 프로그램으로 상기 오라클 데이터베이스(200)에 액세스하여 자동으로 인덱스 리빌드를 수행한다.
또한, 상기 인덱스 리빌드 시스템(100)은 스크립트 작성과 인덱스 리빌드, 인덱스 리빌드 작업후 인덱스의 디스크 사용량, 작업 소요시간 표기를 자동으로 수행한다.
여기서, 상기 인덱스 리빌드 시스템(100)은 인덱스 리빌드 이전과 수행후의 인덱스 용량을 비교하여 해당 인덱스에 대한 용량 감소를 기록하고, 상기 용량 감소가 일정 범위 이하이면 인덱스 리빌드가 불필요한 인덱스로 등록한다.
구체적으로, 상기 인덱스 리빌드 시스템(100)의 인덱스 사전용량 전체 조회부(110)는 상기 오라클 데이터베이스(200)에 접속하여 테이블 스페이스(210) 단위로 전체 인덱스의 사전 사용 용량을 조회한다.
건별 리빌드 대상 확인부(120)는 건별로 리빌드 대상을 확인하며, 리빌드 제외대상 테이블 조회부(130)는 리빌드 제외대상 테이블(210)을 조회한다.
리빌드 대상 판단부(140)는 리빌드 대상 여부를 판단하고, 인덱스 리빌드 수행부(150)는 상기 리빌드 대상에 대해 인덱스 리빌드를 수행하도록 오라클 데이트베이스(200)에 명령을 전달하여 인덱스 리빌드를 수행한다.
건별 인덱스 사후용량 조회부(160)는 건별로 인덱스 사후 용량을 조회하고, 리빌드 제외대상 판단부(170)는 데이터베이스 관리자가 설정한 임계치에 근거하여 상기 사후 조회된 용량 감소가 일정 범위 이하이면, 인덱스 리빌드가 불필요한 리빌드 제외대상으로 판단한다. 구체적으로, 인덱스 리빌드가 불필요한 리빌드 제외대상은, 데이터를 한꺼번에 입력한 후 수시로 조회만 하는 인덱스, 데이터 삭제는 하지 않고 수시로 입력 및 조회만 하는 인덱스, 또는 데이터 삭제가 있더라도 그 수치가 아주 적은 인덱스를 포함할 수 있다.
리빌드 제외대상 등록부(180)는 상기 리빌드 제외대상을 상기 리빌드 제외대상 테이블(190)에 등록한다. 따라서 인덱스 리빌드가 불필요한 인덱스로 등록되면, 인덱스 리빌드를 수행할 때, 인덱스 리빌드가 필요한 인덱스인지 아니면 불필요한 인덱스인지를 판단하여 해당되는 인덱스에 대해서 인덱스 리빌드를 수행할 수 있다.
결국, 본 발명의 실시예에 따른 오라클 데이터베이스의 인덱스 리빌드 자동화 시스템은 하나의 엑셀 파일을 이용하여 여러 대의 데이터베이스 서버에 접속할 수 있도록 자동화하고, 스크립트 작성이나 인덱스 리빌드 작업후 인덱스의 디스크 사용량 조회, 작업소요시간 수기 계산 과정이 자동화되고, 리빌드 제외 등록 정보를 검색하여 불필요한 인덱스 리빌드 작업을 하지 않게 함으로써 인덱스 리빌드 작 업시간을 크게 줄일 수 있다.
한편, 도 4는 본 발명의 실시예에 따른 오라클 데이터베이스에서 인덱스 리빌드 방법의 동작흐름도이고, 도 5a 및 도 5b는 본 발명의 실시예에 따른 인덱스 리빌드 작업기록을 예시하는 도면들이다.
도 4를 참조하면, 본 발명의 실시예에 따른 오라클 데이터베이스에서 인덱스 리빌드 방법은, 오라클 데이터베이스의 인덱스를 리빌드하는 인덱스 리빌드 방법으로서, 먼저, 상기 오라클 데이터베이스로부터 테이블 스페이스 단위로 전체 인덱스의 사전 사용 용량을 조회한다(S110). 이때, 인덱스 리빌드 작업 전에 인덱스의 사전 사용 용량 전체 조회시 상기 오라클 데이터베이스에 접속하게 된다.
다음으로, 건별로 리빌드 대상을 확인하고(S120), 이후, 리빌드 제외대상 테이블을 조회한다(S130).
다음으로, 리빌드 대상 여부를 판단하고(S140), 이후, 상기 리빌드 대상에 대해 인덱스 리빌드를 수행한다(S150). 이때, 인덱스 리빌드 수행시, 스크립트 작성 과정이 자동화되어 스크립트 작성 시간이 절약될 수 있다. 이때, 상기 인덱스 리빌드는 함수와 프로그래밍 기능을 구비한 엑셀(EXCEL) 프로그램으로 오라클 데이터베이스에 액세스하여 자동으로 인덱스 리빌드 작업을 수행하게 된다.
다음으로, 건별로 인덱스 사후 용량을 조회하고(S160), 이에 따라 사후 인덱스 용량 조회가 자동화되어, 후속 인덱스 리빌드 작업을 수행할 경우, 사후 인덱스 용량 조회 시간 절약 및 분석정보로 활용할 수 있다.
다음으로, 데이터베이스 관리자가 설정한 임계치에 근거하여 상기 사후 조회 된 용량 감소가 일정 범위 이하이면, 인덱스 리빌드가 불필요한 리빌드 제외대상으로 판단한다(S170). 여기서, 상기 리빌드 제외대상은, 데이터를 한꺼번에 입력한 후 수시로 조회만 하는 인덱스, 데이터 삭제는 하지 않고 수시로 입력 및 조회만 하는 인덱스, 또는 데이터 삭제가 있더라도 그 수치가 아주 적은 인덱스일 수 있다.
다음으로, 상기 리빌드 제외대상을 상기 리빌드 제외대상 테이블에 등록한다(S180). 여기서, 상기 인덱스 리빌드가 불필요한 인덱스로 등록되면, 인덱스 리빌드를 수행할 때, 인덱스 리빌드가 필요한 인덱스인지 아니면 불필요한 인덱스인지를 판단하여 해당되는 인덱스에 대해서 인덱스 리빌드를 수행할 수 있다.
결국, 본 발명의 실시예에 따른 오라클 데이터베이스의 인덱스 리빌드 자동화 시스템 및 그 방법은, 엑셀의 탁월한 함수기능과 프로그래밍 기능을 이용하여 대부분의 수작업을 자동화함으로써 데이터베이스 관리자(DBA)의 업무효율성과 생산성을 향상시킬 수 있다. 또한, 금융기관뿐 아니라 오라클 DB를 대량으로 사용하는 기업에 적용할 수 있다.
전술한 본 발명의 설명은 예시를 위한 것이며, 본 발명이 속하는 기술분야의 통상의 지식을 가진 자는 본 발명의 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 쉽게 변형이 가능하다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다. 예를 들어, 단일형으로 설명되어 있는 각 구성 요소는 분산되어 실시될 수도 있으며, 마찬가지로 분산된 것으로 설명되어 있는 구성 요소들도 결합된 형태로 실시될 수 있다.
본 발명의 범위는 상기 상세한 설명보다는 후술하는 특허청구범위에 의하여 나타내어지며, 특허청구범위의 의미 및 범위 그리고 그 균등 개념으로부터 도출되는 모든 변경 또는 변형된 형태가 본 발명의 범위에 포함되는 것으로 해석되어야 한다.
도 1은 종래의 기술에 따른 오라클 데이터베이스의 인덱스 리빌드 방법의 동작흐름도이다.
도 2는 일반적인 오라클 데이터베이스의 구조를 설명하기 위한 도면이다.
도 3은 본 발명의 실시예에 따른 오라클 데이터베이스의 인덱스 리빌드 자동화 시스템의 구성도이다.
도 4는 본 발명의 실시예에 따른 오라클 데이터베이스의 인덱스 리빌드 방법의 동작흐름도이다.
< 도면부호의 간단한 설명 >
100: 인덱스 리빌드 시스템
200: 오라클 데이터베이스
300: 인덱스 작업기록(엑셀 파일)
110: 인덱스 사전용량 전체 조회부
120: 건별 리빌드 대상 확인부
130: 리빌드 제외대상 테이블 조회부
140: 리빌드 대상 판단부
150: 인덱스 리빌드 수행부
160: 건별 인덱스 사후용량 조회부
170: 리빌드 제외대상 판단부
180: 리빌드 제외대상 등록부
190: 리빌드 제외대상 테이블
210: 테이블 스페이스
220: 데이터 파일

Claims (5)

  1. 한 개 이상의 테이블 스페이스를 구비한 오라클 데이터베이스 ;
    상기 오라클 데이터베이스에 접속하여 테이블 스페이스 단위로 전체 인덱스의 사전 용량을 조회하는 인덱스 사전용량 전체 조회부, 건별로 리빌드 대상를 확인하는 건별 리빌드 대상 확인부, 리빌드 제외대상이 등록 및 저장된 리빌드 제외대상 테이블에 상기 확인된 리빌드 대상의 등록 여부를 조회하는 리빌드 제외대상 테이블 조회부, 상기 리빌드 제외대상 테이블에 상기 확인된 리빌드 대상의 등록 여부에 따라 리빌드 대상 여부를 판단하는 리빌드 대상 판단부, 상기 리빌드 대상으로 판단된 인덱스에 대하여 인덱스 리빌드가 수행되도록 상기 오라클 데이터베이스에 명령하는 인덱스 리빌드 수행부, 건별로 인덱스 사후 용량을 조회하는 건별 인덱스 사후용량 조회부, 데이터베이스 관리자가 설정한 임계치에 근거하여 상기 조회된 사후 용량이 상기 사전 용량의 일정 범위 이상이면, 인덱스 리빌드가 불필요한 리빌드 제외대상으로 판단하는 리빌드 제외대상 판단부, 및 상기 리빌드 제외대상으로 판단된 인덱스를 상기 리빌드 제외대상 테이블에 등록하는 리빌드 제외대상 등록부를 포함하여 이루어지는 인덱스 리빌드 시스템 ;
    을 포함하는 것을 특징으로 하는 인덱스 리빌드 자동화 시스템.
  2. 오라클 데이터베이스의 인덱스를 리빌드하는 인덱스 리빌드 방법에 있어서,
    a) 상기 오라클 데이터베이스로부터 테이블 스페이스 단위로 전체 인덱스의 사전 용량을 조회하는 단계;
    b) 건별로 리빌드 대상을 확인하는 단계;
    c) 리빌드 제외대상 테이블에 상기 확인된 리빌드 대상의 등록 여부를 조회하는 단계;
    d) 상기 리빌드 제외대상 테이블에 상기 확인된 리블드 대상의 등록 여부에 따라 리빌드 대상 여부를 판단하는 단계;
    e) 상기 리빌드 대상 여부로 판단된 인덱스에 대하여 인덱스 리빌드를 수행하는 단계;
    f) 건별로 인덱스 사후 용량을 조회하는 단계;
    g) 데이터베이스 관리자가 설정한 임계치에 근거하여 상기 조회된 사후 용량이 상기 사전 용량의 일정 범위 이상이면, 인덱스 리빌드가 불필요한 리빌드 제외대상으로 판단하는 단계; 및
    h) 상기 리빌드 제외대상을 상기 리빌드 제외대상 테이블에 등록하는 단계
    를 포함하여 이루어지는 것을 특징으로 하는 인덱스 리빌드 방법.
  3. 제 2 항에 있어서,
    상기 인덱스 리빌드는 함수와 프로그래밍 기능을 구비한 엑셀(EXCEL) 프로그램으로 상기 오라클 데이터베이스에 액세스하여 자동으로 수행되는 것을 특징으로 하는 인덱스 리빌드 방법.
  4. 제 2 항에 있어서,
    상기 a) 단계는 인덱스 리빌드 작업 전에 인덱스의 사전 용량 전체 조회시 상기 오라클 데이터베이스에 접속하는 것을 특징으로 하는 인덱스 리빌드 방법.
  5. 제 2 항에 있어서,
    상기 g) 단계의 리빌드 제외대상은, 데이터를 한꺼번에 입력한 후 수시로 조회만 하는 인덱스, 데이터 삭제는 하지 않고 수시로 입력 및 조회만 하는 인덱스, 또는 데이터 삭제가 있더라도 그 수치가 아주 적은 인덱스인 것을 특징으로 하는 인덱스 리빌드 방법.
KR1020090042950A 2009-05-18 2009-05-18 인덱스 리빌드 자동화 시스템 및 그 방법 KR101054026B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020090042950A KR101054026B1 (ko) 2009-05-18 2009-05-18 인덱스 리빌드 자동화 시스템 및 그 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020090042950A KR101054026B1 (ko) 2009-05-18 2009-05-18 인덱스 리빌드 자동화 시스템 및 그 방법

Publications (2)

Publication Number Publication Date
KR20100123957A true KR20100123957A (ko) 2010-11-26
KR101054026B1 KR101054026B1 (ko) 2011-08-03

Family

ID=43408326

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020090042950A KR101054026B1 (ko) 2009-05-18 2009-05-18 인덱스 리빌드 자동화 시스템 및 그 방법

Country Status (1)

Country Link
KR (1) KR101054026B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105373566A (zh) * 2014-08-30 2016-03-02 华为技术有限公司 在线重建索引方法及装置

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6591269B1 (en) * 1999-05-19 2003-07-08 Sybase, Inc. Database system with methodology for online index rebuild
BR0211216A (pt) * 2001-07-19 2004-09-08 Computer Ass Think Inc Método e sistema para reorganizar um espaço de tabela em uma base de dados

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105373566A (zh) * 2014-08-30 2016-03-02 华为技术有限公司 在线重建索引方法及装置
WO2016029748A1 (zh) * 2014-08-30 2016-03-03 华为技术有限公司 在线重建索引方法及装置

Also Published As

Publication number Publication date
KR101054026B1 (ko) 2011-08-03

Similar Documents

Publication Publication Date Title
US10754875B2 (en) Copying data changes to a target database
US9779104B2 (en) Efficient database undo / redo logging
US10762071B2 (en) Value-ID-based sorting in column-store databases
US9547685B2 (en) Halloween protection in a multi-version database system
US10725987B2 (en) Forced ordering of a dictionary storing row identifier values
US8825604B2 (en) Archiving data in database management systems
US9910877B2 (en) Query handling in a columnar database
US20170293530A1 (en) Providing snapshot isolation to a database management system
US9632944B2 (en) Enhanced transactional cache
CN111259004B (zh) 一种存储引擎中数据索引的方法以及相关装置
US9489413B2 (en) Asynchronous global index maintenance during partition maintenance
KR101054026B1 (ko) 인덱스 리빌드 자동화 시스템 및 그 방법
US10838947B2 (en) Consistency check for foreign key definition
US20060085464A1 (en) Method and system for providing referential integrity constraints
US20190065538A1 (en) Database column refresh via replacement
KR101024494B1 (ko) 메타데이타를 이용한 변경 데이타 추출방법
Jota et al. A physical design strategy on a nosql dbms
Korotkevitch et al. In-Memory OLTP Concurrency Model
Lungu et al. Optimizing Queries in SQL Server 2008
Dewson et al. In-Memory Tables
Kuhn et al. B-tree Indexes
Kuhn et al. Chapter 12 Partitioning: Divide and Conquer
Kuhn et al. Tables and Constraints
Antognini et al. Optimizing Data Access
Alapati et al. Choosing and Optimizing Indexes

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20140728

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20150813

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20160826

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20170705

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20190822

Year of fee payment: 9