KR20010103705A - 동시 dbms 테이블 동작을 위한 방법 및 장치 - Google Patents

동시 dbms 테이블 동작을 위한 방법 및 장치 Download PDF

Info

Publication number
KR20010103705A
KR20010103705A KR1020017006581A KR20017006581A KR20010103705A KR 20010103705 A KR20010103705 A KR 20010103705A KR 1020017006581 A KR1020017006581 A KR 1020017006581A KR 20017006581 A KR20017006581 A KR 20017006581A KR 20010103705 A KR20010103705 A KR 20010103705A
Authority
KR
South Korea
Prior art keywords
threads
tables
database
exit
data
Prior art date
Application number
KR1020017006581A
Other languages
English (en)
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 엘그레시 도론
Publication of KR20010103705A publication Critical patent/KR20010103705A/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/28Databases characterised by their database models, e.g. relational or object models
    • G06F16/284Relational databases
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99931Database or file accessing
    • Y10S707/99938Concurrency, e.g. lock management in shared database
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99941Database schema or data structure
    • Y10S707/99942Manipulating data structure, e.g. compression, compaction, compilation

Abstract

데이터베이스 테이블들은 상기 데이터베이스 테이블들을 관리하는 개별 저장 디바이스들(310)에 위치된 출구 디렉토리들(320)의 개수에 대응하는 개수의 스레드들을 개시함으로써 언로드된다(단계(400)). 각 스레드는 언로드될 데이터베이스 테이블에 부여된다(단계(420)). 각 데이터베이스 테이블로부터 언로드된 데이터는 대응하는 출구 디렉토리(320)에 저장된다. 상기 데이터는 각 테이블로부터 데이터의 블록들을 판독하여 상기 출구 디렉토리(320)에 상기 데이터 로그들(logs)을 저장함으로써 각 데이터베이스 테이블로부터 언로드된다. 각 스레드는 대칭 다중-처리(SMP) 환경에서 개별 프로세스에 의해 처리된다. 상기 프로세스는 각 데이터베이스 테이블이 언로드될 때까지 반복된다. 상기 데이터는 스레드들의 개수에 대응하는 개수의 임시 테이블들을 먼저 생성하고, 상기 출구 디렉토리(320)에 저장된 일련의 데이터를 판독하여 상기 데이터를 상기 임시 테이블에 저장함으로써, 그때 데이터베이스 테이블로 로드된다.

Description

동시 DBMS 테이블 동작을 위한 방법 및 장치{METHOD AND APPARATUS FOR CONCURRENT DBMS TABLE OPERATIONS}
현대 데이터베이스 운영 시스템은 데이터의 보다 큰 저장을 유지하도록 점차적으로 요청되고 있다. 데이터베이스의 증가된 크기에 추가하여, 현대 데이터베이스내의 구조는 점차 복잡하여진다.
종래에, 데이터베이스는 테이블 형태인 데이터를 관리하고, 각 테이블은 관련된 데이터의 하나 이상의 열들을 관리한다. 예를 들면, 기본 데이터베이스 테이블은 예를 들면, 이름, 사회 보장 번호, 주소 및 조직에 포함되는 개인들의 전화번호를 포함하는 다수의 열들을 관리한다.
상기 데이터베이스는 상기 조직에 새로운 구성원들이 추가됨에 따라 점차 크기면에서 증가하고, 또한 구성원들에 대한 추가적인 정보가 포함됨에 따라 크기와복잡도가 모두 증가하게 된다. 예를 들면, 더 크고 복잡한 데이터베이스는 상기 정보에 추가하여, 조직 구성원들의 거주지를 나타내는 그래픽적 형태인 지도를 관리할 것이다. 상기 데이터베이스는 상기 작업 장소의 위치를 나타내는 추가적인 작업 주소와 추가적인 그래픽 지도를 포함함으로써 크기와 복잡도가 더 증가한다.
상기 데이터베이스 테이블은 다른 테이블 또는 상기 데이터베이스의 열들로의 포인터들을 관리함으로써 복잡도가 또한 증가한다. 예를 들면, 다른 테이블내에서 관리되는 일련의 공동작업자들로의 포인터 또는 관련 조직 구성원들로의 포인터들, 또는 추가적인 구성원 데이터가 관리되는 다수의 항목들로의 포인터들이 있다.
종래의 데이터베이스 운영 시스템(Database Management Systems: DBMS)은 블록을 할당함으로써 데이터베이스 테이블을 만들 공간을 제공한다. 일단 테이블이 정의되면, 상기 DBMS는 관련 데이터의 열들을 저장하기 위해 필요한 블록들을 할당할 것이다. 예를 들면, 만약 테이블이 100,000열을 포함하도록 만들어지고, 상기 테이블의 열들이 100열들이 하나의 블록에 적합하도록 정의되면, 상기 DBMS는 상기 테이블을 만들기 위해 1,000블록을 할당할 것이다.
일반적으로, DBMS 시스템들은 일련의 근접한 블록들로 블록들을 할당한다. 근접한 일련의 할당된 블록들은 일반적으로 넓이로 지칭된다. 일반적인 기준으로, 넓이는 크기에 따라 변한다. 상기 예를 사용하면, 상기 DBMS는 1,000블록의 단일 넓이를, 500블록의 2 넓이를 또는 상기 테이블을 만들기 위해 필요한 1,000블록을 할당할 다른 조합의 넓이 크기들을 사용할 것이다. 일단 필요한 블록들이 할당되면, 상기 데이터는 할당된 블록들을 사용하여 상기 테이블 내의 열들로 저장된다.
시간의 경과에 따라, 추가적인 데이터는 상기 테이블에 추가되고, 상기 DBMS는 필요에 따라 추가적인 블록들을 할당할 것이다. 예를 들면, 만약 사용자가 상기 데이블에 250열들을 추가하면, 상기 파라미터들을 사용하여, 추가적인 3블록들이 할당될 필요가 있다.
또한, 시간의 경과에 따라, 상기 데이터베이스 내의 정보가 삭제될 것이다. 이 경우에, 열들의 삭제는 상기 테이블로부터 열들을 삭제하는 SQL을 사용함으로써 발생된다. 예를 들면, 사용자가 블록1로부터 50열을, 블록 20으로부터 40열을, 블록 60으로부터 30열을 삭제할 수 있다. 상기 삭제가 발생하면, 상기 테이블에 존재하는 상기 데이터를 관리하도록 요구되는 블록보다 상기 테이블 내에 더 많은 블록들이 있어지게 된다.
또한, 상기 데이터베이스 내의 데이터는 갱신될 것이다. 예를 들면, 상술된 데이터베이스 테이블을 사용하여, 노동 인원에 산입되지 않은 조직 구성원이 그의/그녀의 이름, 주소, 사회 보장 번화 및 전화 번호를 관리한 테이블의 열을 할당할 것이다. 상기 노동 인원에 산입되면, 상기 열은 상기 작업 주소 및 관련 정보를 포함하도록 갱신될 것이다. 그러나, 만약 상기 갱신의 결과로서 상당 양의 정보가 부가되면, 본래 열은 상기 갱신된 정보를 관리하기에 충분한 데이터의 블록을 할당하지 못할 것이다.
열 이주(migration)은 열이 갱신되고 본래 열이 상기 갱신된 모든 정보를 수용할 수 있는 충분한 공간을 구비하지 못한 경우에 발생한다. 열 이주가 발생하면, 상기 열은 보다 많은 공간을 구비한 위치로 이동되고, 상기 본래 열이 상주하던 블록으로 포인터가 설정되고, 상기 포인터는 상기 이동된(이주된) 열의 위치를 가리키도록 설정된다. 만약 테이블에서의 상당한 갱신이 있고 부적합한 양의 공간이 본래 열에 할당되면, 상당한 양의 열 이주가 발생된다.
종종, 갱신된 열을 수용하는 블록 내에 불충분한 공간이 있다. 이 경우에, 열은 본래 열이 상주하는 곳과 전혀 더 다른 블록으로 이주되고, 상기 포인터는 상기 다른 블록의 갱신된 열로의 본래 열 위치 포인터들로 설정된다.
열이 이주됨으로써 단편화(fragmentation)을 야기한다. 단편화는 블록을 판독하는 것에 추가하여 포인터가 판독되고 해독되어야 하기 때문에, 데이터베이스 정보의 검색 시간을 크게 증가시킨다. 열이 다른 블록으로 이주된 때, 적어도 2개으 블록(상기 포인터를 포함하는 블록과, 상기 이주된/단편화된 열을 포함하는 블록)은 열 특정 정보(row specific information)를 검색하기 위해 판독되어야 한다. 상기 데이터베이스 테이블 내의 다른 구조적 변화는 단편화와, 관련 효율 문제(예를 들면, 열 연쇄(row chaining).
때때로, 상기 데이터베이스 운영자(Database Administrator: DBA)는 상기 테이블의 조건에 관련된 정보를 제공하는 상기 DBMS 테이블에 관한 분석을 수행할 것이다. 예를 들면, 상기 데이터베이스 운영자는 삭제된 열을 수용하는 블록의 수에 관한 효율 정보를 확인하기 위해 삭제된 열의 개수에 관한 정보를 검색할 것이다. 다른 예로서, 상기 데이터베이스 운영자는 다른 프로세스에 의해 이주되거나 단편화된 테이블의 열들의 수를 알아내려 할 것이다.
만약 많은 수의 단편화가 발생하면, 이것은 블록 크기와 열 공간이 더 효율적으로 할당된 것이고, 테이블 데이터가 효율적으로 검색되지 않음을 의미한다. 또한 단편화가 발생하면, 상기 데이터베이스 운영자는 상기 테이블을 다시 만들기로 결정할 것같다.
테이블을 생성한 때, DBA는 사용되지 않은 블록들의 퍼센티지(percentage of blocks free: PCTFREE) 또는 사용된 블록들의 퍼센티지(percentage of blocks used: PCTUSED)를 설정함으로써 데이터베이스 테이블의 구조에 관한 결정을 한다. DBMS가 열 또는 테이블 정보로 각 블록을 가득채우면, 사용되지 않은 하나의 블록의 퍼센티지는 적어도 상기 퍼센티지(PCTFREE)와 동일하도록 할 것이다.
DBA는 상기 데이터베이스 테이블이 사용되어지는 방법에 의존하는 PCTFREE 변수를 설정한다. 예를 들면, 만약 테이블이 빈번하게 갱신되어야 한다면, 추가적인 PCTFREE가 충분한 공간이 필요한 열 이주가 동일한 블록 내에서 발생하도록 하는 데 사용될 수 있도록 확립될 것이다. 상술된 바와 같이, 상기 동일 블록 내의 열 이주는 테이블이 단편화되도록 하지 않는다. 이주된, 그러나 단편화되지 않은 열들은 이주된 열들이 단편화된 때 발생하는 것과 같이 블록을 판독하고, 포인터를 해석하고, 제 2 블록(또는 그 이상)을 판독하는 지루한 프로세스보다 판독된 단일 블록으로 검색되어진다. 따라서, 적절한 PCTFREE 설정은 비록 데이터베이스 테이블이 변경되어도, DBMS 성능이 유지되도록 한다.
PCTUSED는 DBA가 DBMS 테이블의 구조를 제어하도록 하는 다른 파라미터이다. DBMS는 블록의 퍼센티지가 PCTUSED 이하로 떨어지지 않으면, 추가적인 열들이 상기 블록에 놓여지는 것을 방지한다. PCTUSED는 만약 갱신이 있으면 블록이 사용되지만, 만약 상기 블록내에 사용된 퍼센티지가 PCTUSED이하이지 않으면 새로운 열을 삽입시키는데 사용되지 않는 점에서 PCTFREE와 상이하다.
시간에 따른 과중한 OLTP 활동(삽입, 갱신 및 삭제)에 관여된 DBMS 테이블은 열 이주, 단편화, 열 연쇄 등을 경험할 것이다. 또한, 다양한 데이터베이스 테이블은 처음으로 만들어진 때, 또는 상기 데이터베이스 테이블의 필요성이 변화한 때, 테이블의 추가적인 이주, 삭제 또는 단편화를 야기하는, 적절한 설정을 구비할 필요가 있는 것은 아니다. 반대로 데이터 검색 성능및 공간 사용의 저하를 야기한다.
DBA는 상기 테이블들이 데이터를 효율적으로 저장하고 있는지에 대한 분석을 수행할 것이다. 결과적으로, 하나 이상의 DBMS 테이블이 데이터를 저장하고 검색하는 점에서 비효율적인 것으로 판단될 것이다. 상기 테이블의 재조직 (reorganization) (재조성(rebuilding))은 상기 문제의 해결책이다. 최대 성능을 이루기 위해서, 상기 테이블은 재조성될 필요가 있다(즉, 제 2 공간으로의 언로드된 데이터 및 재조성된 경우의 테이블). 상기 프로세스는 단편화된 열들이 상기 재조성된 테이블에서의 단편화없이 언로드되고 저장되기 때문에, 상술된 많은 바람직하지 않은 효과들을 제거한다.
구조적으로 건실한 데이터베이스는 디스크 공간을 효과적으로 사용한다. 상기 데이터베이스들은 데이터에 접근하는 시간을 적게 요구하고, 일반적인 트랜잭션을 위해 요구되는 시간을 줄이고, 사용자에게 보다 나은 응답시간을 제공한다. 비록 오라클(Oracle) 및 다른 현대 데이터베이스 시스템들은 데이터 배치를 위해 효율적인 로직을 사용하지만, 시간에 따른 일반적인 활동은 디스크 상의 상기 데이터의 물리적 레이아웃이 저하되고 공간 필요성을 증대시킨다. 상기 결과들은 테이블 검색, 데이터베이스 백업, 및 다른 기능들을 수행하는 데 과도한 공간 사용과 추가적인 시간을 야기한다. 부분적인 빈 페이즈들과 사용되지 않은 넓이 공간은 추가적인 공간 사용에 영향을 미친다. 또한 비연속적인 열들과 넓이 인터리빙(interleaving)이 주기적으로 해결되지 않으면, 성능을 심각하게 저하시킨다.
데이터베이스들을 효율적으로 유지시키는(생산성을 증대시키는) 방법은 상기 데이터베이스의 데이터를 정기적으로 재구성하는 것이다. 현재, DBMS 테이블을 재구성하는 데 사용될 수 있는 제품이 있다. 그러나, 자동화된 재구성 툴들을 사용함에도, 데이터베이스 테이블의 재구성은 실질적으로 많은 시간을 요구할 것이다. 재구성을 수행하는데 요구되는 시간은 데이터베이스 접근을 요구하는 상가(shop)의 총수입 또는 생산성에 실질적인 영향을 미칠 것이다. 예를 들면, 몇몇 상가들은 데이터베이스가 오프-라인일 때, 시간 당 약 $100,000을 소비할 수 있다(예를 들면, 오라클 잡지 1997년 12월 판, "중지없는 상가의 재구성(Reorgs in a Non-Stop Shop")). 따라서, 재구성이 수행되는 속도 또는 효율성에서의 향상은 완성도와 이윤성을 향상시킨다.
본 발명은 데이터베이스 테이블을 언로드(unload)시키고 로드(load)시키는 프로세스에 관한 것이다. 본 발명은 보다 자세하게 데이터베이스가 언로드되고 로드되는 속도를 증가시키는 병렬 처리 기술의 응용에 관한 것이다. 본 발명은 또한 대칭 다중-처리(Symmetrical Multi-Processing: SMP) 환경에서 데이터베이스 테이블의 언로딩과 로딩에 적용되는 병렬 처리 기술에 관한 것이다.
본 발명의 보다 상세한 설명과 많은 장점은 하기의 도면과 연관되어 고려된 때, 상기 상세한 설명을 통하여 보다 더 이해될 것이다:
도 1은 데이터베이스 고속 언로드/로드(PDL) 과정을 나타내는 순서도이다.
도 2는 비-동시적 데이터베이스 언로드 과정의 반복적인 특성을 나타내는 순서도이다.
도 3은 본 발명에 따른 데이터베이스 테이블의 동시 로드 및 언로드를 위한 상위 레벨 프로세스를 나타내는 순서도이다.
도 4는 단일 출구 디스크 상에서 수행된 병렬 프로세스를 나타낸다.
도 5는 본 발명에 따라 다중 출구 디스크들을 사용하여 수행된 병렬 프로세스를 나타낸다.
도 6은 본 발명에 따라 데이터베이스 테이블과 출구 디렉토리를 관리하는 다수의 저장 디바이스를 나타낸다.
도 7은 본 발명에 따른 출구(언로드) 프로세스를 나타내는 순서도이다.
도 8은 본 발명에 따른 목적지 탭 특성 페이지(Destination Tab Property Page)를 나타낸다.
도 9는 본 발명에 따른 병렬 큐 탭 페이지(Parallel Query Tab page)를 나타낸다.
도 10은 본 발명에 따른 병렬 로드 프로세스를 나타내는 순서도이다.
도 11은 본 발명에 따른 병렬 출구 페이즈(phase)와 병렬 직접 로드를 이루어진 동시 테이블 재구성을 나타낸다
도 12는 본 발명에 따른 상기 언로드/로드 프로세스를 위한 오류 안전/고장 회복 시스템을 나타내는 순서도이다.
도 13은 본 발명에 따른 상위 레벨 테이블 이름 및 로딩 프로세스를 나타내는 순서도이다.
본 발명은 테이블의 언로딩과 테이블의 로딩 중의 하나 또는 모두를 수행하는 데이터베이스 동작 수행의 속도를 증가시키는 완전 병렬 동작 지원 데이터베이스 테이블을 제공하는 필요성을 실현하는 것이다.
따라서, 본 발명의 목적은 병렬 데이터베이스 테이블 언로드를 가능하게 하는 병렬 처리 기술을 제공하는 것이다.
본 발명의 다른 목적은 대칭 다중-처리(SMP) 환경에서 병렬 처리 기술을 사용하는 데이터베이스 테이블을 언로딩 및 로딩하는 방법을 제공하는 것이다.
본 발명의 또 다른 목적은 데이터베이스 테이블의 병렬 언로딩 및 로딩 때의 병목 현상을 방지하는 방법을 제공하는 것이다.
본 발명의 또 다른 목적은 본 발명인 병렬 처리 기술들 사용함으로써 데이터베이스 테이블의 재구성이 수행되는 속도를 향상시키는 것이다.
상기 목적과 다른 목적들은 데이터베이스 테이블을 처리하는 다수의 스레드(thread)를 개시하는 단계와, 상기 데이터베이스 테이블 각 하나를 대응하는 상기 스레드에 부여하는 단계 및 상기 대응하는 스레드의 프로세스에 의해 각 데이터베이스 테이블을 언로딩하는 단계를 포함하는 데이터베이스 테이블의 병렬 언로딩을 수행하는 방법에 의해 이루어진다. 상기 방법은 테이블 언로드 프로세스가 데이터베이스 테이블 언로드의 속도를 현저하게 향상시키는 대칭 다중-처리(SMP) 환경을 이용할 수 있도록 한다.
본 발명은 데이터의 데이터베이스 테이블로의 로딩 단계를 포함하는 테이블 데이터의 병렬 로딩 방법을 포함하고, 상기 로딩 단계는 데이터의 데이터베이스 테이블로의 로딩을 위해 X 스레드를 결정하는 단계와, 출구 디렉토리(export directory)에 저장된 일련의 데이터에 대응하는 X 임시 테이블들을 생성하는 단계와, 각 임시 테이블을 로딩하기 위해 SQL*LOADERTM프로세스를 수행하는 단계 및, 상기 대응하는 SQL*LOADERTM프로세스를 통하여 상기 대응하는 출구 디렉토리에 저장된 데이터를 각 임시 테이블에 로딩하는 단계를 포함한다.
TS 재구성에서의 동시 언로드/로드 선택사항
본 발명자는 새로운 동시 언로드/로드 방법을 발전시킨다. 본 방법은 테이블 공간 재구성의 속도를 향상시키기 위해, 플래티넘 티에스(Platinum TS) 재구성(reorg) V2.1.0에서 도입된 언로드/로드 선택사항에서 사용될 것이다. 이전에, TS 재구성에서 테이블 공간을 재구성하는 가장 빠른 방법은 병렬 직접 로드 선택사항과 연결된 고속 언로드를 사용하는 것이었다.
도면들과 관련하여, 동일 참조 번호들은 다수의 도면에 대하여 동일하거나 대응하는 부분을 가리키고, 도 1은 고속 언로드/로드 프로세스는 나타내는 순서도이다. 단계(100)에서, 단일 고속 언로드 프로세스는 각 테이블을 언로드하고, 단계들(100a) ..(110n)은 테이블을 로드하기 위하여 사용된 병렬 직접 로드들을 나타낸다.
도 2는 고속 언로드 프로세스를 설명하는 순서도이다. 단계(200)에서, 고속 언로드는 테이블 상에서 수행된다. 상기 고속 언로드는 상기 테이블로부터의 데이터를 판독하고 저장한다. 단계(210)에서, 상기 데이터베이스(들)에서의 다음 테이블이 언로드되었는지와, 상기 프로세스가 각 테이블이 언로드될 때까지 반복되는지가 결정된다. 도 1 및 2에서의 상기 프로세스에 의해 나타난 바와 같이, 병렬 직접 로드에서, 한번에 하나의 테이블에 작용을 할 때, 상기 테이블들은 상기 언로드에 관한 하나의 단일 프로세스와, 상기 로드에 관한 다중 SQL*LOADERTM(오라클 유틸리티) 프로세스들을 사용하여 연속적으로 언로드된다. 예를 들면, 다수의 테이블들을 포함한 테이블 공간을 언로드시킬 때, TS 재구성은 상기 다음 테이블을 처리하기 전에 하나의 테이블이 완전하게 언로드되기를 기다려야 한다.
도 3은 사용자로 하여금 다중 테이블을 동시에 언로드(단계(300))하고 로드(단계(305))하는 다중-CPU머신을 사용할 수 있게 하는 본 발명인 동시 언로드/로드 선택사항을 나타낸다. 상기 방법은 테이블 공간이 크고 작은 테이블들 모두의 조합을 포함하고 있는 때 특히 효율적이다. 그리고, TS 재구성이 하나의 큰 테이블을 언로드하고 로드할 때, 동시에 여러 개의 작은 테이블을 언로드하고 로드할 수 있다. 본 발명의 원리는 다중 인덱스들 및/또는 구속들(constraints)의 동시 조성에 까지 확장된다.
본 발명인 상기 동시 언로드/로드 프로세스는 하기의 특성을 지닌 연산 및데이터베이스 환경에서 가장 잘 실행된다:
(1)대칭 다중 처리(SMP) 연산 환경-적절한 연산 하드웨어가 다중 CPU들을 구비하고, 대칭 다중 처리 환경을 수용하여야 한다. 호스트 머신의 대칭 다중처리 용량이 커질 수록, 잠재적인 성능도 커진다.
다중 프로세서 컴퓨터의 하나의 유형이 대칭 다중 프로세서(SMP) 컴퓨터이다. SMP 컴퓨터는 2개와 16개 사이의 프로세서들을 구비하고, 모든 프로세서들은 상기 컴퓨터의 단일 메모리 자원과 공유 저장 디바이스를 함께 사용한다. 상기 SMP 용량은 사용가능한 프로세서들의 개수에 의존한다. 더 많은 프로세서들이 있으면, 본 발명은 보다 많은 문의(query)와 로드가 병렬적으로 수행되도록 할 수 있다.
(2)다중 디스크들에 걸쳐 분할(partition)된 데이터파일들-재구성을 언로드하는 상기 테이블 공간의 데이터파일들은 다른 물리적 디스크들에 저장되어야 한다. 이러한 필요성은 본 발명의 동시 언로드/로드 프로세스로부터의 충분한 잇점을 얻기 위해 요청된다.
(3)디스크 상의 정의된(defined) 출구 디렉토리들-상기 동시 언로드/로드 선택사항 프로세스를 위해 사용된 다수의 스레드들은 출구 디렉토리들의 개수보다 적거나 동일할 것이다. 상기 디렉토리들은 개별적인 물리적 디스크들에 상주한 때, 최적으로 사용된다.
높은 SMP 용량과 효율적인 병렬 동작들을 통하여, 데이터 이동은 물리적 저장 디스크의 제한된 대역폭으로 인하여, 병목현상, 또는 간헐적인 속도의 감소를 경험할 것이다. SMP의 소수의 제한들 중의 하나가 물리적 디스크들이 상기 수많은CPU들에 의해 생성된 동시 판독 및 기록 요청들을 신속하게 수용할 수 없을 때, 발생한다.
인터럽트된 데이터의 다른 소스(source)는, 특히 병렬 처리에 있어서, 디스크 경합이다. 다중 프로세스들이 데이터베이스에 접근하고 변경하려 시도할 때, 상기 디스크 헤드는 한번에 단 하나의 프로세스의 요청을 처리하고, 다른 동작들은 대기하도록 한다. 동일한 디스크에 접속하려고 동시에 시도하는 2개의 프로세스의 상기 상황을 디스크 경합이라고 한다. 디스크 경합의 결과는 막힌(clogged) 데이터 또는 병목현상이다.
병렬 프로세스들이 메모리와 디스크들 간에 데이터를 이동시키려고 다중 CPU들을 사용하기 때문에, 다중 디스크들이 정의되도록 하는 것이 중요하고, 그럼으로써 다수의 CPU들이 인터럽션이나 대기없이 상기 데이터를 신속하게 이동시킬 수 있다.
병목현상을 제거하는 하나의 방법은 상기 데이터를 다중 디스크들로 분할시키는 것이다. 데이터를 분할하는 것은 디스크 I/O 대역폭과 디스크 경합의 제한 효과를 감소시키기 위해 다중 디스크 드라이브에 걸쳐 상기 데이터를 물리적으로 확산시키는 프로세스이다. 데이터 출구를 위해 더 많은 디스크들을 정의할(분할할) 수록, I/O 병목현상을 더 감소시킴으로써 더욱 고속의 병렬 동작들을 야기한다.
도 4는 하나의 출구 디스크만을 사용하는 병렬 프로세스를 나타낸다. 상기 서버의 질의 조정자(coordinator)가 상기 질의를 2개의 개별 동작으로 분리할지라도, 상기 디스크 헤드는 한번에 하나의 검색 요청을 수용하고, 다른 동작은 기다리도록 또는 대기하도록 한다. 상기 예에서, 상기 단일 디스크의 I/O 제한들은 상기 서버의 병렬 프로세스 특성들의 목적을 무너뜨린다. 상기 문제의 해결은 적절한 디스크 할당에 의존한다.
도 5는 수많은 출구 디스크들(분할된 데이터)를 사용하는 적절한 디스크 할당, 및 병렬 프로세스의 일실시예를 나타낸다. 상기 병렬 프로세스들은 하나의 프로세스가 다른 프로세스를 기다리는 것이 아니라, 동시에 작동한다.
TS 재구성에서의 동시 스레드들의 사용
본 발명인 동시 로드/언로드 프로세스들은 동시에 언로드되어지는/로드되어지는 수많은 테이블들을 결정하는 수많은 정의된 스레프들을 사용한다. 달리 말하면, 동시 스레드들의 개수는 TS 재구성이 상기 언로드 및 로드 페이즈에서 개시하는 프로세스들의 개수와 동일하다. 상기 프로세스들의 각각은 하나의 테이블에 작용한다.
정의된 스레드들의 개수는 출구 디렉토리들의 개수에 제한된다. 도 6은 3개의 개별 디스크들(310a), (310b), (310c)를 구비하고, 각 디스크는 데이터파일들을 저장하고 또한 각각은 출구 디렉토리(320a), (320b), (320c)를 구비한다. 개시된 환경에서, 동시 로드/언로드는 언로딩 테이블을 위해 3개의 스레드들(출구 디렉토리당 하나)를 정의할 것이다.
동시 언로드 페이즈
도 7은 본 발명인 동시 언로드 페이즈를 나타내는 순서도이다. 단계(400)에서, 현재 연산 환경에서 사용되는 수많은 스레드들이 결정된다. 사용될 스레드들의 개수는 GUI 또는 다른 입력 디바이스를 통하여 사용자에 의해 제공된다. 그러나, 스레드들의 개수는 개별 디스크 드라이브들에 상주하는 출구 디렉토리들의 개수와 동일한 최대수로 역시 제한된다. 예를 들면, TS 재구성은 테이블 공간 재구성 동안에 다른 출구 파일들과 언로드된 데이터에 대한 위치를 지정하는 출구 디렉토리 경로들을 기입하고, 변경하거나 삭제하기 위해, 지정 탭 특성 페이지(destination Tab Property Page)를 사용한다(도 8을 참조).
테이블 공간 재구성의 출구 페이즈 동안, 상기 재구성 유틸리티는 상기 테이블 공간으로부터 데이터 설명 언어(Data Description Language: DDL) 및 테이블 데이터를 언로드하여 특정 디렉토리로 출력한다. 출구를 위한 상기 호스트 디렉토리 경로(들)는 재구성 동안에 상기 언로드된 DDL 및 데이터에 대한 위치를 지정하는 디렉토리 경로이다.
지정 탭 특성 페이지는 하기를 수행하기 위해 사용된다:
*호스트 출구 디렉토리를 부가하기
*호스트 출구 디렉토리를 삭제하기
*호스트 출구 디렉토리를 변경하기
만약 출구 디렉토리에서 사용가능한 불충분한 공간 또는 출구 파일 크기가 상기 재구성 유틸리티가 데이터를 언로딩할 때, 얼리미트(ulimit)에 도달하면, 상기 재구성 유틸리티는 잔존하는 데이터를 상기 다음 특정 출구 디렉토리로 출력한다. 만약 다른 출구 디렉토리가 특정되지 않으면, 상기 TS 재구성은 상기 재구성을 수행하지 않을 것이다.
상기 사항으로 대부분의 UNIX 플랫폼들에서 2-기가바이트 제한을 제거한다. 압축된 파일은 분할될 수 없기 때문에, 압축된 출구 방법(하기에서 설명될)에 적용되지 않는다.
단계(410)에서, 테이블은 각 프로세스에 부여된다. 각 고속 언로드 프로세스는 대응하는 스레드에 의해 실행되고 상기 부여된 테이블을 상기 개별 출구 디렉토리들 중의 하나로 언로드한다(단계(430)).
데이터를 언로드하는 디렉토리를 검색하기 위해, 각 스레드는 모든 출구 디렉토리들을 검사하여 생성된 출구 파일을 수용할 수 있는 가장 적게 사용가능한 디렉토리를 선택한다. 상기 방법은 출구 디렉토리들을 위한 최적의 적합(fit)을 검색하는 것으로 알려진다. 일단 스레드가 가장 최적의 적합 디렉토리를 찾으면, 상기 디렉토리를 요구하여, 다음 스레드는 다른 디렉토리를 선택하여야 한다.
다른 응용 프로그램들이 동일 파일 시스템 상의 공간을 사용하는 경우, 스레드는 모든 상기 데이터를 상기 선택된 가장 최적의 적합 디렉토리로 언로드하지 않을 것이다. 만약 그렇게 되면, 상기 재구성 유틸리티는 상기 출구 파일을 다수의 출구 파일들로 분할하여 다른 출구 디렉토리 상에 기록하도록 한다. 만약 다른 출구 디렉토리가 없거나, 만약 디스크가 가득 찼다면, 상기 스레드는 종료하고 잔존한 스레드들 중의 하나가 상기 잔존 데이터를 언로드한다.
사용자는 사용자의 출구 파일을 위해 출구 디렉토리에 충분한 공간을 부여하기 위해 상기 파일들의 크기를 예측할 것이다. 출구 파일의 크기를 예측하기 위해, 사용되는 스레드의 개수로 물체의 현재 할당을 분할한다.
재구성 유틸리티는 도 9에 도시된 바와 같이, 병렬 질의 탭 특성 페이지를 사용하여 상기 물체를 위한 현존하는 병렬 파라미터들로 필드들을 채운다. 예를 들면, 테이블의 병렬 파라미터들은 만약 상기 테이블이 처음으로 생성되었거나 병렬 파라미터들을 사용하여 개정되었으면 존재할 것이다. 상기 파라미터들은 상기 테이블의 데이터 설명 언어(DDL)와 상기 데이터 디렉토리내에 보유된다. 만약 병렬 파라미터들이 물체를 위해 이미 존재하면, 상기 재구성 유틸리티는 자동적으로 상기 데이터 질의를 분할하고, 사용자는 상기 병렬 질의 탭 특성 페이지에서 값들을 특정할 필요가 없다. 그렇지 않으면, 상기 재구성 유틸리티는 상기 병렬 질의 탭 특성 페이지에 설정된 파라미터들에 따라 질의를 분할한다.
본 발명의 장점을 위해, 출구 디렉토리의 개수는 스레드들의 개수와 같거나 더 크다. 또한, 각 출구 디렉토리는 디스크 I/O 병목현상을 방지하기 위해 개별 무리적 디스크 상에 상주하여야 한다. 상술된 바와 같이, I/O 병목현상은 만약 하나 이상의 출구 디렉토리가 동시에 동일 디스크에 기록하는 하나의 프로세스보다 많은 프로세스의 가능성으로 인하여 동일 디스크 상에 위치된다.
제 1 일련의 스레드들의 제 1 고속 언로드 프로세스가 종료한 때, TS 재구성은 상기 프로세스가 성공적으로 종료하였는지(단계(440))를 검사하고, 만약 성공적으로 종료하였으면, 다음 테이블을 언로드하기 위해 다음 고속 언로드 프로세스가 수행된다(단계(470)).
상기 방법에서, 각 테이블은 개별 스레드에서 실행된 프로세스에 의해 언로드된다. 각 스레드는 독립적이고, 그럼으로써 만약 하나의 스레드가 큰 테이블로 부여된 프로세스를 구비하면, 다른 프로세스들은 다음 테이블을 위한 프로세스를 진행하기 전에 상기 큰 프로세스가 종료하기를 기다릴 필요가 없다.
그러나, 만약 문제가 상기 테이블의 언로드 동안에 발생하였다면, TS 재구성은 상기 프로세스가 상기 작업 로그파일(logfile)에서의 고속 언로드 로그파일을 따라 실패한 이유를 표현한다. 문제가 발생한 테이블은 TS 재구성의 내부 언로드 프로그램을 사용하여 언로드된다. 상기 언로드 프로그램은 개별 프로세스로서 실행되지 않고, TS 재구성이 상기 테이블들의 나머지의 동시 언로드를 계속하기 전에 종료되어야 한다.
일단 모든 테이블들이 성공적으로 언로드되면, 상기 언로드 프로세스는 완료된다. 성능 미터(performance meter)(예측되거나 상호작용적인)가 언로드/로드 동작들의 속도와 소모되는 디스크 공간의 양을 표시하기 위해 배치될 것이다.
일단 상기 언로드 프로세스가 완료되면, TS 재구성은 상기 테이블 공간의 다른 물체들의 출구인 테이블 공간 재구성을 다음 단계를 계속 진행한다(단계(485)).
다른 물체들의 출구는 모든 인덱스들, 트리거들, 제한들, 및 주요한 또는 유일한 키들(keys)(테이블과 클러스터들을 제외한 모든 것)을 포함하는 테이블 공간의 DDL을 저장하기 위해 파일의 생성을 포함한다.
결과적으로, TS 재구성은 상기 언로드된 테이블들에서의 드롭(drop)을 수행하고(단계(490)), 그때 상기 언로드된 데이터를 신설(fresh) 테이블 공간으로 로딩하는 동시 로드(단계(495))를 수행한다.
동시 로드 페이즈
모든 테이블 공간 물체들을 드롭한 후, YS 재구성은 상기 재구성의 로드(입력(import)) 페이즈를 개시한다. 동시 로드 페이즈는 도 10의 순서도에 도시된다.단계 (600)에서, TS 재구성은 상기 데이터를 저장할 테이블을 생성함으로써 상기 로드 페이즈를 개시한다. TS 재구성은 특정된 스레드들의 개수와 같이 많은 테이블을 연속적으로 생성한다. 스레드들의 특정 개수는 상기 언로드 페이즈에서의 스레드들의 개수와 동일하다.
제 1 일련의 테이블들이 생성된 후, TS 재구성은 각 대응하는 테이블의 상기 데이터를 로드하기 위해 사용된 SQL*LOADERTM을 동시에 진행한다. 진행된 프로세스들의 개수는 스레드들의 개수와 동일하다. 각 SQL*LOADERTM프로세스는 하나의 대응하는 테이블을 위해 데이터를 로드하고, 출구 디렉토리로부터 테이블 데이터를 판독하여 상기 데이터를 상기 대응하는 테이블로 로딩한다(단계(610)).
상기 재구성 유틸리티는 출구 파일들내의 DDL을 사용하여, 물체들을 재생성하고 단편화를 제거하고, 또한 저장 파라미터들을 최적화시킨다. 상기 재구성 유틸리티는 상기 데이터를 다시 상기 물체들로 로드하기 위해 병렬 스레드들로 다중 CPU들을 조정하여, 재구성된 테이블 공간을 생성한다.
상기 프로세스들 중의 하나가 완료된 후, TS 재구성은 사이 데이터가 상기테이블로 성공적으로 다시 로드되었는지와, 삽입된 열들의 개수가 정확한지를 검사한다(단계(620)). 만약 상기 로드 동안에 에러가 발생했거나, SQL*LOADERTM에 의해 삽입된 열들의 개수가 정확하지 않으면, TS 재구성은 다음 테이블로 계속하기 이전에 상기 데이터를 연속적으로 로드하기 위해 자동적으로 상기 내부 TS 재구성 로드 기능으로 전환한다(단계(630)). 만약 SQL*LOADERTM프로세스에서 에러가 없다면, 또는 에러없이 상기 내부 로드가 종료된 후, TS 재구성은 다음 테이블을 생성하고(단계(650)), 상기 테이블의 데이터를 로드하기 위해 다른 SQL*LOADERTM프로세스를 동시에 수행한다(단계(610)을 반복).
도 11에 도시된 동시 테이블 재구성 다이아그램에서 나타난 바와 같이, 동시 직접 로드는 다중 CPU들을 호출하고, 각 CPU들은 별개의 SQL*LOADERTM세션을 실행하여 데이터를 상기 출구 파일들로부터 상기 물체의 데이터파일들로 동시에 로드한다. SQL*LOADERTM이 상기 데이터파일들을 기록한 때, 상기 재구성 유틸리티는 가장 최적의 적합 방법을 사용하고, 상기 방법은 상기 유입되는 데이터를 수용하기에 충분한 공간을 구비한 분할 디렉토리들을 선택한다. 상기 재구성 유틸리티는 디렉토리들의 상기 선택된 목록 내에서 가장 최적의 적합 방법을 계속적으로 사용하고 상기 스레드를 위해 상기 유입하는 모든 데이터를 수행할 수 있는 가장 작은 데이터파일을 선택한다. 각 스레드는 자신의 데이터를 데이터파일 내의 가능한 모든 빈 공간에 로드시킨다.
만약 치명적인 에러가 상기 로드 페이즈 동안에 발생하면, 또는 만약 재구성 작업이 어느 이유로 취소되거나 삭제되면, 실패된 작업은 회복을 요구하는 작업이 된다. 도 12에 도시된 바와 같이, 작업이 실패한 후, TS 재구성은 실패 이전에 이미 생성되고 로드된 모든 테이블을 자동적으로 뛰어넘고(단계(1110)), 다만 완전히 로드되지 않았던 상기 테이블 또는 존재하지 않는 테이블들을 동시에 로드한다(단계(1115)).
도 13에 나타난 바와 같이, 로드 페이즈 동안에, TS 재구성은 먼저 임시 이름 하의 테이블들을 생성한다(단계(1300)). 상기 데이터가 재로드된 후, 상기 임시 테이블은 상기 테이블의 본래 이름으로 변경된다(단계(1320)). 결국, 상기 테이블에 관한 주요한 제한들과 인덱스들이 생성된다(단계(1330)). 그럼으로써 TS 재구성은 실패 이전에 완전하게 입력되지 않았던 상기 테이블들을 재구성하게 되고, 모든 임시 테이블들을 드롭하여 상기 테이블들을 위해 로드를 다시 시작하게 된다(도 11의 프로세스(1115A)를 참조).
상기 동시 언로드/로드 선택사항을 사용한 때, TS 재구성은 자동적으로 상기 선택사항을 선택한다: 모든 테이블들이 생성된 후, 모든 인덱스들/제한들을 생성하기. 상기 테이블 공간의 인덱스들과 제한들은 모든 테이블들이 성공적으로 생성되고 모든 테이블들의 데이터가 상기 테이블로 재로드된 후, 생성된다.
TS 재구성에서의 동시 인덱스 생성
동시 인덱스 생성이 재구성 동안에 인덱스 생성의 속도를 증가시키기 위해,테이블 내 또는 테이블 공간 재구성에서 사용될 수 있는 선택사항이다. 일반 테이블 또는 테이블 공간 재구성에서, 상기 인덱스들은 상기 테이블이 생성되고 상기 데이터가 상기 테이블로 다시 로드된 후, 차례로 생성된다.
테이블 공간 재구성에서, 사용자는 동시 인덱스 생성 선택사항을 선택할 수 있다. 이 경우, TS 재구성은 상기 인덱스들을 동시에 생성할 것이다(연속적인 인덱스 생성은 디폴트 행동이다). 그럼으로써 TS 재구성은 하나의 출구 파일로 모든 인덱스들과 제한들을 수집할 수 있고, 상기 테이블 공간의 모든 테이블들(테이블 공간 재구성의 경우) 또는 재구성될 테이블(테이블 재구성의 경우)이 생성된 때, 상기 인덱스들과 제한들을 동시에 생성하기 시작한다.
상기 선택사항을 선택한 때, 사용자는 상기 인덱스/제한 생성 페이즈 동안에 동시에 진행하는 프로세스의 개수로서 사용되는 스레드들의 개수를 특정하여야 한다.
인덱스들의 입력 페이즈가 시작된 때, TS 재구성은 특정된 스레드들의 개수만큼의 동일한 개수의 인덱스 생성 프로세스들을 진행한다. 상기 제 1 일련의 스레드들의 제 1 인덱스 프로세스가 종료된 때, 다음 인덱스 생성 프로세스가 진행되고 후속하는 인덱스 생성 프로세스는 모든 인덱스들과 제한들이 생성되기까지 다른 스레드들의 완성 시에 유사하게 진행된다.
만약 에러가 하나의 인덱스 또는 제한의 생성 시에 발생하면, TS 재구성은 상기 에로를 등록하고 상기 실패된 인덱스의 DDL을 파일에 기록한다. 상기 사용자는 상기 문제를 수동적으로 편집하거나 고칠 수 있다.
본 발명은 오라클 데이터베이스와 관련된 배치에 일치된 용어들과 참조번호로 설명된다. 그러나, 상술된 프로세스들은 다른 알려진 데이터베이스 제품들 및 종래 데이터베이스 설치에 동일하게 적용될 수 있다. 예를 들면, 오라클 유틸리티, SQL*LOADERTM를 사용하는 대신에, 출구 디렉토리에 저장된 테이블 데이터를 판독할 수 있고 상기 데이터를 새로운 테이블로 로딩할 수 있는 다른 프로그램이 사용될 수 있다.
본 발명은 종래 컴퓨터 기술에 익숙한 사람에게 명백한 것처럼, 본 설명의 개시에 따라 프로그램된 마이크로프로세서나 범용 또는 특정 디지털 컴퓨터를 사용하여 구현될 수 있다.
적절한 소프트웨어 코딩이 소프트웨어 기술에 익숙한 사람에게 명백한 것처럼, 본 설명의 개시에 근거한 숙련된 프로그래머에 의해 용이하게 준비될 수 있다. 본 발명은 종래 기술에 익숙한 사람에게 명백한 것처럼, 주문형 집적 회로의 준비에 의해 또는 종래의 부품 회로의 적절한 네트워크를 상호연결함으로써 구현될 수있다.
본 발명은 본 발명의 프로세스들 중의 어느 것을 수행하기 위해 컴퓨터를 프로그램하는 데 사용될 수 있는 명령들을 저장하도록 하는 저장 매체인 컴퓨터 프로그램 제품을 포함한다. 상기 저장 매체는 플로피 디스크들, 광학 디스크들, DVD, CD-ROM들, 마이크로드라이브, 및 자기-광학 디스크들, 롬들, 램들, 이프롬들(EPROM), 이이프롬들(EEPROM), 디램들, 브이램들(VRAM), 플래시 메모리 디바이스들, 자기 또는 광학 카드들, 나노시스템들(분자 메모리 IC들을 포함하는), 또는 명령 및/또는 데이터를 저장하기에 적합한 모든 형태의 매체 또는 디바이스를 포함하고, 이에 한정되지 않는다.
컴퓨터 판독가능 매체의 어느 하나에 저장되면, 본 발명은 범용/특정 컴퓨터 또는 마이크로프로세서의 하드웨어를 제어하고, 상기 컴퓨터 또는 마이크로프로세서가 본 발명의 결과물을 사용하여 인간 사용자 또는 다른 메커니즘과 상호작용을 할 수 있도록 하는 소프트웨어를 포함한다. 상기 소프트웨어는 디바이스 드라이버들, 운영 시스템들, 데이터베이스 엔진들과 제품들, 및 사용자 응용 프로그램을 포함하고, 이에 한정되지 않는다. 궁극적으로, 상기 컴퓨터 판독가능 매체는 추가적으로 상술된 바와 같이, 본 발명을 수행하는 소프트웨어를 포함한다.
범용/특정 컴퓨터 또는 마이크로프로세서의 프로그래밍에는 본 발명의 개시를 구현하기 위한 소프트웨어 모듈이 포함되고, 상기 모듈은 사용자 입력의 검색과, 병렬 처리, 스레드들의 진행, 데이터베이스 테이블의 언로딩, 성공여부의 판단, 내부 재구성 프로세스의 개시, 데이터베이스 물체들의 출력, 언로드된 데이터의 압축, 본 발명의 프로세스들의 감시, 및 테이블 로드 유틸리티 및 디스플레이, 저장수단, 또는 본 발명의 프로세스에 따른 결과들의 통신을 사용하는 동시 로드 환경의 개시를 위한 많은 수의 스레드들의 결정을 포함하고, 이에 한정되지 않는다.
명백하게, 본 발명의 수많은 변형들과 변경들이 가능할 것이다. 따라서 첨부된 청구범위의 범위 내에서 본 발명은 특정적으로 상기에서 개시된 것과 다르게도실행될 수 있음이 이해되어야 한다.

Claims (34)

  1. 데이터베이스 테이블을 언로드하는 방법에 있어서, 상기 방법은:
    상기 데이터베이스 테이블들을 처리하는 수많은 스레드를 개시하는 단계와;
    상기 데이터베이스 테이블들 각 하나를 상기 스레들들 중의 대응하는 스레드로 부여하는 단계 및;
    상기 대응하는 스레드의 프로세스에 의해 각 개별 데이터베이스 테이블을 언로드하는 단계를 포함하는 것을 특징으로 하는 데이터베이스 테이블을 언로드하는 방법.
  2. 제 1 항에 있어서, 상기 개시하는 단계는:
    사용자에 의해 입력된 스레드들의 개수 X를 검색하는 단계와;
    상기 데이터베이스 테이블들을 관리하는 개별 저장 디바이스에 위치된 출구 디렉토리들의 개수를 식별하는 단계와;
    상기 X를 식별된 출구 디렉토리들의 개수로 한정하는 단계 및;
    상기 X를 스레드들의 개수로서 사용하는 단계를 포함하는 것을 특징으로 하는 데이터베이스 테이블을 언로드하는 방법.
  3. 제 2 항에 있어서, 상기 저장 디바이스는 디스크 드라이브인 것을 특징으로 하는 데이터베이스 테이블을 언로드하는 방법.
  4. 제 1 항에 있어서, 상기 언로드하는 단계는:
    개별 데이터베이스 테이블로부터 데이터의 블록들을 판독하는 단계 및; 상기 판독된 데이터 블록들을 출구 디렉토리에 저장하는 단계를 포함하는 것을 특징으로 하는 데이터베이스 테이블을 언로드하는 방법.
  5. 제 4 항에 있어서, 상기 언로드하는 단계는:
    판독 및 기록 단계의 완료의 성공 여부를 판단하는 단계 및;
    (1)만약 성공 여부를 판단하는 단계가 미-완료를 나타내면, 상기 스레드들의 각각을 중지시키는 단계;
    (2)상기 테이블 상에서 내부 TS 재구성을 수행하는 단계를 추가적으로 포함하는 것을 특징으로 하는 데이터베이스 테이블을 언로드하는 방법.
  6. 제 1 항에 있어서, 상기 방법은:
    상기 데이터베이스 테이블들 각각이 언로드되기까지 부여하는 단계와 언로드하는 단계를 반복하는 단계를 추가적으로 포함하는 것을 특징으로 하는 데이터베이스 테이블을 언로드하는 방법.
  7. 제 1 항에 있어서, 상기 방법은:
    상기 테이블들 각각과 관련된 다른 물체들을 출력하는 단계 및;
    상기 테이블들을 드롭하는 단계를 추가적으로 포함하는 것을 특징으로 하는 데이터베이스 테이블을 언로드하는 방법.
  8. 데이터를 데이터베이스 테이블들로 로드하는 방법에 있어서, 상기 방법은:
    데이터를 데이터베이스 테이블들로 로드하기 위해 X 스레드들을 결정하는 단계와;
    X 임시 테이블들을 생성하는 단계로, 각 임시 테이블은 출구 디렉토리에 저장된 일련의 데이터에 대응하고;
    각 임시 테이블을 로드하기 위해 각 스레드와 연관하여 SQL*Loader 프로세스를 개시하는 단계 및;
    상기 대응하는 SQL*Loader 프로세스를 통하여 상기 대응하는 출구 디렉토리에 저장된 상기 데이터를 각 임시 테이블로 로드하는 단계를 포함하는 것을 특징으로 하는 데이터를 데이터베이스 테이블들로 로드하는 방법.
  9. 제 8 항에 있어서, 상기 방법은:
    각 데이터베이스 테이블에 대한 로드하는 단계의 성공 여부를 판단하는 단계와;
    만약 로드하는 단계가 성공이 아니면, (1)만약 성공 여부를 결정하는 단계가 미-완료를 나타내면, 상기 스레드들 각각을 중지시키는 단계와;
    (2)상기 테이블 상의 내부 TS 재구성을 수행하는 단계를 수행하는 단계를 포함하는 것을 특징으로 하는 데이터를 데이터베이스 테이블들로 로드하는 방법.
  10. 제 8 항에 있어서, 상기 방법은 각 테이블이 로드될 때까지 생성하는 단계와, 개시하는 단계 및 로드하는 단계를 추가적으로 포함하는 것을 특징으로 하는 데이터를 데이터베이스 테이블들로 로드하는 방법.
  11. 제 8 항에 있어서, 상기 방법은:
    로드하는 상기 단계에서 고장을 식별하는 단계와;
    (1)성공적이지 않게 로드된 테이블을 식별하는 단계와;
    (2)상기 성공적이지 않게 로드된 테이블들 상에서 내부 TS 재구성을 수행하는 단계를 수행하는 단계를 추가적으로 포함하는 것을 특징으로 하는 데이터를 데이터베이스 테이블들로 로드하는 방법.
  12. 제 8 항에 있어서, 상기 결정하는 단계는:
    사용자에 의해 입력된 스레드들의 개수를 검색하는 단계와;
    출구 디렉토리들의 개수를 결정하는 단계 및;
    스레드들의 개수를 검색된 스레들들의 개수 및 출구 디렉토리들의 개수보다 작게 확립하는 것을 특징으로 하는 데이터를 데이터베이스 테이블들로 로드하는 방법.
  13. 컴퓨터 명령들을 저장시키는 컴퓨터 판독가능 매체에 있어서, 상기 컴퓨터 명령이 컴퓨터로 로드된 때, 상기 컴퓨터로 하여금 하기의 단계들을 수행하도록 하는 것으로, 하기 단계는:
    상기 데이터베이스 테이블들을 처리하도록 수많은 스레드들을 개시하는 단계와;
    상기 데이터베이스 테이블들 각각을 상기 스레드들 중의 대응하는 스레드로 부여하는 단계 및;
    상기 대응하는 스레드들의 프로세스에 의해서 각 개별 데이터베이스 테이블을 언로드하는 단계를 포함하는 것을 특징으로 하는 컴퓨터 명령들을 저장시키는 컴퓨터 판독가능 매체.
  14. 제 13 항에 있어서, 상기 개시하는 단계는:
    상기 데이터베이스 테이블들을 관리하는 개별 저장 디바이스상에 위치된 출구 디렉토리들의 개수 X를 식별하는 단계 및;
    상기 X를 스레드들의 상기 개수로서 사용하는 단계를 포함하는 것을 특징으로 하는 컴퓨터 명령들을 저장시키는 컴퓨터 판독가능 매체.
  15. 제 14 항에 있어서, 상기 저장 디바이스는 디스크 드라이브들인 것을 특징으로 하는 컴퓨터 명령들을 저장시키는 컴퓨터 판독가능 매체.
  16. 제 13 항에 있어서, 상기 언로드하는 단계는:
    개별 데이터베이스 테이블로부터 데이터의 블록들을 판독하는 단계와, 판독된 상기 데이터 블록들을 출구 디렉토리에 저장하는 단계를 포함하는 것을 특징으로 하는 컴퓨터 명령들을 저장시키는 컴퓨터 판독가능 매체.
  17. 제 16 항에 있어서, 상기 언로드하는 단계는:
    상기 판독하는 단계와 저장하는 단계의 완료의 성공 여부를 판단하는 단계와;
    (1)만약 성공 여부를 판단하는 단계가 미-완료를 나타내면, 상기 스레들들 각각을 중지시키는 단계와;
    (2)상기 테이블 상에서 내부 TS 재구성을 실행하는 단계를 추가적으로 포함하는 것을 특징으로 하는 컴퓨터 명령들을 저장시키는 컴퓨터 판독가능 매체.
  18. 제 13 항에 있어서, 상기 방법은:
    상기 데이터베이스 테이블들 각각이 언로드될 때까지 부여하는 단계와 언로드하는 단계를 반복하는 단계를 추가적으로 포함하는 것을 특징으로 하는 컴퓨터 명령들을 저장시키는 컴퓨터 판독가능 매체.
  19. 제 13 항에 있어서, 상기 방법은:
    상기 테이블들 각각과 관련된 다른 물체들을 출력하는 단계와;
    상기 테이블들을 드롭하는 단계를 추가적으로 포함하는 것을 특징으로 하는 컴퓨터 명령들을 저장시키는 컴퓨터 판독가능 매체.
  20. 컴퓨터 명령을 저장시키는 컴퓨터 판독가능 매체에 있어서, 상기 컴퓨터 명령이 상기 컴퓨터로 로드된 때, 상기 컴퓨터로 하여금 하기의 단계를 수행하는 것으로, 상기 단계는:
    데이터를 데이터베이스 테이블들로 로드하기 위해 X 스레드들을 결정하는 단계와;
    X 임시 테이블들을 생성하는 단계로, 각 임시 테이블은 출구 디렉토리에 저장된 일련의 데이터에 대응하고;
    각 임시 테이블을 로드하기 위해 SQL*Loader 프로세스를 개시하는 단계 및;
    상기 대응하는 SQL*Loader 프로세스를 통하여 상기 대응하는 출구 디렉토리에 저장된 상기 데이터를 각 임시 테이블에 로드시키는 단계를 포함하는 것을 특징으로 하는 컴퓨터 명령을 저장시키는 컴퓨터 판독가능 매체.
  21. 제 20 항에 있어서, 상기 컴퓨터 명령이 컴퓨터로 로드된 때, 상기 컴퓨터로 하여금 하기의 단계를 추가적으로 수행하게 하고, 상기 단계는:
    개별 데이터베이스 테이블들을 위해 로드하는 단계의 성공 여부를 판단하는 단계 및;
    만약 상기 로드하는 단계가 성공적이지 않으면, (1)만약 성공 여부를 판단하는 단계가 미-완료를 나타내면, 상기 스레드들 각각을 중지하는 단계와;
    (2)상기 테이블 상에서 내부 TS 재구성을 수행하는 단계를 포함하는 단계를 수행하는 것을 특징으로 하는 컴퓨터 명령을 저장시키는 컴퓨터 판독가능 매체.
  22. 제 20 항에 있어서, 상기 컴퓨터 명령이 컴퓨터로 로드된 때, 상기 컴퓨터로 하여금 각 테이블이 로드될 때까지 상기 생성하는 단계와, 개시하는 단계 및 로드하는 단계를 반복하는 단계를 수행하도록 하는 것을 특징으로 하는 컴퓨터 명령을 저장시키는 컴퓨터 판독가능 매체.
  23. 제 20 항에 있어서, 상기 컴퓨터 명령이 컴퓨터로 로드된 때, 상기 컴퓨터로 하여금 하기의 단계를 수행하도록 하고, 상기 단계는:
    상기 로드하는 단계에서 고장을 식별하는 단계와;
    (1)성공적이지 않게 로드된 테이블들을 식별하는 단계와;
    (2)상기 성공적이지 않게 로드된 테이블 상에서 내부 TS 재구성을 수행하는 단계를 포함하는 것을 특징으로 하는 컴퓨터 명령을 저장시키는 컴퓨터 판독가능 매체.
  24. 제 20 항에 있어서, 상기 결정하는 단계는:
    사용자에 의해 입력된 스레드들의 개수를 검색하는 단계와;
    출구 디렉토리들의 개수를 판단하는 단계 및;
    스레드들의 개수를 검색된 상기 스레드들의 개수와 출구 디렉토리들의 개수로바 적게 확립하는 단계를 포함하는 것을 특징으로 하는 컴퓨터 명령을 저장시키는 컴퓨터 판독가능 매체.
  25. 시스템에서 관리되는 데이터베이스 테이블들을 언로드하는 장치에 있어서, 상기 장치는:
    상기 데이터베이스 테이블들을 처리하기 위해 많은 개수의 스레드들을 개시하는 수단과;
    상기 데이터베이스 테이블들 중의 각 하나를 상기 스레드들 중에서 대응하는 스레드로 부여하는 수단 및;
    상기 대응하는 스레드의 프로세스에 의해 각 개별 데이터베이스 테이블을 언로드하는 수단을 구비하는 것을 특징으로 하는 시스템에서 관리되는 데이터베이스 테이블들을 언로드하는 장치.
  26. 제 25 항에 있어서, 상기 개시하는 수단은 사용자로부터 개시될 스레드들의 개수를 검색하는 수단을 추가적으로 구비하는 것을 특징으로 하는 시스템에서 관리되는 데이터베이스 테이블들을 언로드하는 장치.
  27. 제 25 항에 있어서, 상기 개시하는 수단은 개시된 스레드들의 개수를 상기 시스템의 개별 저장 디바이스들에 위치된 출구 디렉토리들의 개수로 한정하는 수단을 구비하는 것을 특징으로 하는 시스템에서 관리되는 데이터베이스 테이블들을 언로드하는 장치.
  28. 제 25 항에 있어서, 상기 언로드하는 수단은:
    개별 데이터베이스 테이블로부터 데이터의 블록들을 판독하고, 상기 대응하는 스레드와 연관된 출구 디렉토리에 판독된 데이터 블록을 저장하는 수단을 구비하는 것을 특징으로 하는 시스템에서 관리되는 데이터베이스 테이블들을 언로드하는 장치.
  29. 제 25 항에 있어서, 상기 장치는 상기 모든 데이터베이스 테이블들이 언로드될 때까지 각 데이터베이스 테이블들을 대응하는 스레드들로 부여하여 각 개별 테이블을 언로드하는 단계를 반복하는 수단을 추가적으로 구비하는 것을 특징으로 하는 시스템에서 관리되는 데이터베이스 테이블들을 언로드하는 장치.
  30. 데이터베이스 테이블들을 언로드하는 장치에 있어서, 상기 장치는:
    상기 데이터베이스 테이블들을 처리하도록 많은 개수의 스레드들을 개시하도록 된 개시 디바이스와;
    상기 데이터베이스 테이블들 각각을 개시된 상기 스레드들의 대응하는 스레드에 부여하도록 된 부여자(assignor) 및;
    각 대응하는 스레드에 구비된 언로더(unloader)를 구비하고, 각 개별 언로더는 상기 언로더의 대응하는 스레드로 부여된 데이터베이스 테이블들을 언로드하도록 되는 것을 특징으로 하는 데이터베이스 테이블들을 언로드하는 장치.
  31. 제 30 항에 있어서, 상기 개시 디바이스는:
    사용자로부터 개시되는 스레드들의 개수를 검색하도록 된 사용자 인터페이스 및;
    개시되는 스레드들의 개수를 상기 시스템의 개별 저장 디바이스들에 위치된 출구 디렉토리들의 개수로 한정하도록 된 한정 디바이스를 구비하는 것을 특징으로 하는 데이터베이스 테이블들을 언로드하는 장치.
  32. 제 30 항에 있어서, 상기 개별 언로더는:
    상기 개별 언로더가 구비된 것과 같은 스레드에 부여된 테이블들 내에서 관리되는 데이터의 블록을 판독하도록 된 판독 디바이스 및;
    상기 개별 언로더가 구비된 것과 같은 스레드에 대응하는 출구 디렉토리로 판독된 상기 데이터 블록들을 저장하도록 된 기록 디바이스를 구비하는 것을 특징으로 하는 데이터베이스 테이블들을 언로드하는 장치.
  33. 제 30 항에 있어서, 상기 부여자는 데이터베이스 테이블을 상기 스레드들 각각에 부여하고, 상기 스레드들 중의 하나의 완료시에, 각 데이터베이스 테이블이 부여될 때까지 상기 완료된 스레드에 상기 데이터베이스 테이블들의 다른 테이블을부여하는 것을 특징으로 데이터베이스 테이블들을 언로드하는 장치.
  34. 제 32 항에 있어서, 상기 장치는:
    각 데이터베이스 테이블이 언로드된 후, 상기 스레드들 각각에서 로드되고 실행된 로더(loader)를 추가적으로 구비하고, 각 로더는 상기 로더를 실행하는 스레드에 대응하는 출구 디렉토리에 저장된 데이터 블록들을 판독하고, 새로운 테이블 공간에 상기 데이터 블록들을 저장하도록 되는 것을 특징으로 하는 데이터베이스 테이블들을 언로드하는 장치.
KR1020017006581A 1998-11-25 1999-11-24 동시 dbms 테이블 동작을 위한 방법 및 장치 KR20010103705A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US09/200,254 US6477535B1 (en) 1998-11-25 1998-11-25 Method and apparatus for concurrent DBMS table operations
US09/200,254 1998-11-25
PCT/US1999/027835 WO2000031635A1 (en) 1998-11-25 1999-11-24 Method and apparatus for concurrent dbms table operations

Publications (1)

Publication Number Publication Date
KR20010103705A true KR20010103705A (ko) 2001-11-23

Family

ID=22740953

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020017006581A KR20010103705A (ko) 1998-11-25 1999-11-24 동시 dbms 테이블 동작을 위한 방법 및 장치

Country Status (13)

Country Link
US (1) US6477535B1 (ko)
EP (1) EP1147469B1 (ko)
JP (1) JP2002530776A (ko)
KR (1) KR20010103705A (ko)
CN (1) CN1331817A (ko)
AT (1) ATE529807T1 (ko)
AU (1) AU770289B2 (ko)
BR (1) BR9915673A (ko)
CA (1) CA2352306A1 (ko)
HK (1) HK1043210A1 (ko)
IL (1) IL143281A0 (ko)
WO (1) WO2000031635A1 (ko)
ZA (1) ZA200104265B (ko)

Families Citing this family (42)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7805423B1 (en) 1999-11-15 2010-09-28 Quest Software, Inc. System and method for quiescing select data modification operations against an object of a database during one or more structural operations
US6834290B1 (en) * 1999-11-15 2004-12-21 Quest Software, Inc. System and method for developing a cost-effective reorganization plan for data reorganization
US7065538B2 (en) * 2000-02-11 2006-06-20 Quest Software, Inc. System and method for reconciling transactions between a replication system and a recovered database
US7231391B2 (en) * 2001-02-06 2007-06-12 Quest Software, Inc. Loosely coupled database clusters with client connection fail-over
US20040162836A1 (en) * 2001-02-06 2004-08-19 Eyal Aronoff System and method for altering database requests and database responses
US20020129146A1 (en) * 2001-02-06 2002-09-12 Eyal Aronoff Highly available database clusters that move client connections between hosts
US7882103B2 (en) * 2002-03-28 2011-02-01 Teradata Us, Inc. Using point-in-time views to provide varying levels of data freshness
US7111128B2 (en) * 2002-12-19 2006-09-19 Intel Corporation Hierarchical virtual model of a cache hierarchy in a multiprocessor system
US7917646B2 (en) * 2002-12-19 2011-03-29 Intel Corporation Speculative distributed conflict resolution for a cache coherency protocol
US7130969B2 (en) * 2002-12-19 2006-10-31 Intel Corporation Hierarchical directories for cache coherency in a multiprocessor system
US7269595B1 (en) * 2003-03-19 2007-09-11 Unisys Corporation Reducing database reorganization time
US20050010595A1 (en) * 2003-07-11 2005-01-13 International Business Machines Corporation System and method for automating an identification mechanism and type information configuration process for a real-time data feed to a database
US7925665B2 (en) * 2004-03-08 2011-04-12 Siebel Systems, Inc. Using query persistence for efficient subquery evaluation in federated databases
US20050240734A1 (en) * 2004-04-27 2005-10-27 Batson Brannon J Cache coherence protocol
US20050262250A1 (en) * 2004-04-27 2005-11-24 Batson Brannon J Messaging protocol
US7822929B2 (en) * 2004-04-27 2010-10-26 Intel Corporation Two-hop cache coherency protocol
US7395381B2 (en) * 2005-03-18 2008-07-01 Intel Corporation Method and an apparatus to reduce network utilization in a multiprocessor system
US7958513B2 (en) * 2005-11-17 2011-06-07 International Business Machines Corporation Method, system and program product for communicating among processes in a symmetric multi-processing cluster environment
US7814045B2 (en) * 2006-10-04 2010-10-12 Sap Ag Semantical partitioning of data
US7747578B2 (en) * 2007-03-09 2010-06-29 Microsoft Corporation Reducing database fragmentation
US7860833B1 (en) * 2007-11-28 2010-12-28 Teradata Us, Inc. Deriving session level statistics for temporary tables
US8135930B1 (en) 2008-07-14 2012-03-13 Vizioncore, Inc. Replication systems and methods for a virtual computing environment
US8046550B2 (en) * 2008-07-14 2011-10-25 Quest Software, Inc. Systems and methods for performing backup operations of virtual machine files
US8060476B1 (en) 2008-07-14 2011-11-15 Quest Software, Inc. Backup systems and methods for a virtual computing environment
US8429649B1 (en) 2008-09-25 2013-04-23 Quest Software, Inc. Systems and methods for data management in a virtual computing environment
US8996468B1 (en) 2009-04-17 2015-03-31 Dell Software Inc. Block status mapping system for reducing virtual machine backup storage
US9778946B2 (en) 2009-08-07 2017-10-03 Dell Software Inc. Optimized copy of virtual machine storage files
CN101739447B (zh) * 2009-11-16 2012-11-28 金蝶软件(中国)有限公司 一种对临时表的管理方法及装置
US8453145B1 (en) 2010-05-06 2013-05-28 Quest Software, Inc. Systems and methods for instant provisioning of virtual machine files
US9569446B1 (en) 2010-06-08 2017-02-14 Dell Software Inc. Cataloging system for image-based backup
US9547562B1 (en) 2010-08-11 2017-01-17 Dell Software Inc. Boot restore system for rapidly restoring virtual machine backups
US8898114B1 (en) 2010-08-27 2014-11-25 Dell Software Inc. Multitier deduplication systems and methods
US9311375B1 (en) 2012-02-07 2016-04-12 Dell Software Inc. Systems and methods for compacting a virtual machine file
US9323812B2 (en) 2013-04-11 2016-04-26 Oracle International Corporation Hybrid bifurcation of intersection nodes
CN104700255B (zh) * 2013-12-06 2020-04-10 腾讯科技(北京)有限公司 多进程处理方法、装置和系统
US20150227586A1 (en) * 2014-02-07 2015-08-13 Futurewei Technologies, Inc. Methods and Systems for Dynamically Allocating Resources and Tasks Among Database Work Agents in an SMP Environment
CN104376082B (zh) * 2014-11-18 2019-06-18 中国建设银行股份有限公司 一种把数据源文件中的数据导入到数据库中的方法
CN104793969B (zh) * 2015-03-27 2018-10-19 小米科技有限责任公司 应用程序卸载方法及装置
US10095721B2 (en) * 2015-03-27 2018-10-09 International Business Machines Corporation Index building in response to data input
US10353885B2 (en) 2016-07-29 2019-07-16 International Business Machines Corporation Storing data records
CN107357885B (zh) * 2017-06-30 2020-11-20 北京奇虎科技有限公司 数据写入方法及装置、电子设备、计算机存储介质
CN108228893A (zh) * 2018-02-05 2018-06-29 广州中元软件有限公司 一种关系数据库数据持久化优化和排队方法

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5093782A (en) * 1987-12-14 1992-03-03 Texas Instruments Incorporated Real time event driven database management system
US5517641A (en) * 1992-05-27 1996-05-14 Cdb Software, Inc. Restartable method to reorganize DB2 tablespace records by determining new physical positions for the records prior to moving using a non sorting technic
US5437032A (en) * 1993-11-04 1995-07-25 International Business Machines Corporation Task scheduler for a miltiprocessor system
US5668993A (en) * 1994-02-28 1997-09-16 Teleflex Information Systems, Inc. Multithreaded batch processing system
US5687372A (en) * 1995-06-07 1997-11-11 Tandem Computers, Inc. Customer information control system and method in a loosely coupled parallel processing environment
US5754771A (en) * 1996-02-12 1998-05-19 Sybase, Inc. Maximum receive capacity specifying query processing client/server system replying up to the capacity and sending the remainder upon subsequent request
US5860070A (en) * 1996-05-31 1999-01-12 Oracle Corporation Method and apparatus of enforcing uniqueness of a key value for a row in a data table
US5884310A (en) * 1996-06-14 1999-03-16 Electronic Data Systems Corporation Distributed data integration method and system
US5761667A (en) * 1996-08-07 1998-06-02 Bmc Software, Inc. Method of optimizing database organization using sequential unload/load operations
US5694602A (en) * 1996-10-01 1997-12-02 The United States Of America As Represented By The Secretary Of The Air Force Weighted system and method for spatial allocation of a parallel load
US5873091A (en) * 1997-04-28 1999-02-16 International Business Machines Corporation System for data structure loading with concurrent statistical analysis
US6122640A (en) * 1998-09-22 2000-09-19 Platinum Technology Ip, Inc. Method and apparatus for reorganizing an active DBMS table

Also Published As

Publication number Publication date
EP1147469B1 (en) 2011-10-19
WO2000031635A1 (en) 2000-06-02
CN1331817A (zh) 2002-01-16
HK1043210A1 (zh) 2002-09-06
ZA200104265B (en) 2002-05-24
US6477535B1 (en) 2002-11-05
JP2002530776A (ja) 2002-09-17
EP1147469A4 (en) 2003-06-18
AU1829700A (en) 2000-06-13
CA2352306A1 (en) 2000-06-02
IL143281A0 (en) 2002-04-21
ATE529807T1 (de) 2011-11-15
AU770289B2 (en) 2004-02-19
BR9915673A (pt) 2002-01-02
EP1147469A1 (en) 2001-10-24

Similar Documents

Publication Publication Date Title
US6477535B1 (en) Method and apparatus for concurrent DBMS table operations
US6772163B1 (en) Reduced memory row hash match scan join for a partitioned database system
US6928450B2 (en) Storage apparatus acquiring static information related to database management system
US5018060A (en) Allocating data storage space of peripheral data storage devices using implied allocation based on user parameters
JP4206586B2 (ja) データベース管理方法および装置並びにデータベース管理プログラムを記録した記憶媒体
Shapiro Join processing in database systems with large main memories
US7299243B2 (en) System and method for controlling free space distribution by key range within a database
US6154852A (en) Method and apparatus for data backup and recovery
US5625815A (en) Relational database system and method with high data availability during table data restructuring
EP0730766B1 (en) Computer method and apparatus for asynchronous ordered operations
US5745915A (en) System for parallel reading and processing of a file
US20050223046A1 (en) Method and system for balancing and scheduling database maintenance tasks
US7035851B1 (en) Reorganization of database records using partition merging
US7080072B1 (en) Row hash match scan in a partitioned database system
US7774304B2 (en) Method, apparatus and program storage device for managing buffers during online reorganization
KR20030094328A (ko) 저장된 데이터를 재편성하는 시스템 및 방법
US7958097B1 (en) Method and system for implementation of data storage quota
US7421446B1 (en) Allocation of storage for a database
US6691121B1 (en) Method and apparatus for online and dynamic extension of IMS data entry databases
US8818953B2 (en) Method and apparatus for loading data into multi-table tablespace
US20050086430A1 (en) Method, system, and program for designating a storage group preference order
JP2010061604A (ja) 整合性検証システム、検証方法およびプログラム
CN117235185B (zh) 数据平衡处理方法、装置及电子设备
JP4604666B2 (ja) 入出力対象変更制御方法
Fritchey et al. Index Fragmentation

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E601 Decision to refuse application