JP3798719B2 - ブロック・レベル・サンプリングを使用してデータベースのクラスタ化係数を判定する装置および方法 - Google Patents

ブロック・レベル・サンプリングを使用してデータベースのクラスタ化係数を判定する装置および方法 Download PDF

Info

Publication number
JP3798719B2
JP3798719B2 JP2002085100A JP2002085100A JP3798719B2 JP 3798719 B2 JP3798719 B2 JP 3798719B2 JP 2002085100 A JP2002085100 A JP 2002085100A JP 2002085100 A JP2002085100 A JP 2002085100A JP 3798719 B2 JP3798719 B2 JP 3798719B2
Authority
JP
Japan
Prior art keywords
database
index
clustering factor
clustering
matrix
Prior art date
Legal status (The legal status 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 status listed.)
Expired - Fee Related
Application number
JP2002085100A
Other languages
English (en)
Other versions
JP2002342136A (ja
Inventor
アブド・エスメイル・アブド
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of JP2002342136A publication Critical patent/JP2002342136A/ja
Application granted granted Critical
Publication of JP3798719B2 publication Critical patent/JP3798719B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • 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
    • 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
    • G06F16/285Clustering or classification
    • 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/912Applications of a database
    • Y10S707/913Multimedia
    • Y10S707/915Image
    • 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/99932Access augmentation or optimizing
    • 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/99933Query processing, i.e. searching
    • 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/99933Query processing, i.e. searching
    • Y10S707/99935Query augmenting and refining, e.g. inexact access
    • 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/99933Query processing, i.e. searching
    • Y10S707/99936Pattern matching access
    • 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/99937Sorting
    • 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

Landscapes

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

Description

【0001】
【発明の属する技術分野】
本発明は、全般的にはコンピュータ・システムに関し、具体的には、コンピュータ・システム内のデータベースに関する。
【0002】
【従来の技術】
コンピュータ時代の始まりから、コンピュータは、進歩し、ますます強力になってきた。現在では、コンピュータが、工学設計、機械制御、プロセス制御、情報保管、および情報アクセスを含む人間の活動の多くの分野で不可欠になっている。コンピュータの主な用途の1つが、情報の保管および検索である。
【0003】
データベース・システムが開発され、これによって、ユーザがデータベース内の特定の情報を探索し、検索できるようにする形で、コンピュータが大量の情報を保管できるようになった。たとえば、保険会社が、その保険証券保有者の全員と、支払い履歴、掛け金、証券番号、証券タイプ、適用範囲に対する除外を含む彼らの現在の口座情報を含むデータベースを有する場合がある。データベース・システムを用いると、保険会社が、そのデータベース内の数千人の、おそらくは数百万人の保険証券保有者の中から単一の保険証券保有者の口座情報を検索できるようになる。
【0004】
データベースには、一般に、情報に関するデータベースの探索を、すべての照会について完全なデータベース探索を実行するよりはるかに効率的にする、1つまたは複数の索引が含まれる。データベース・システムの性能は、ディスクからバッファへページをスワップする、ページングされるメモリ・システムの性能に依存する。特定の索引のキーの順序が、データベース表内のキーの物理的順序に近い場合には、この索引を使用するメモリ・ページング・システムの性能が高まる。というのは、多数のアクセスが、ページ・スワップを実行せずにページ・バッファに対して行われる可能性が高くなるからである。データベース内の列の、物理ストレージ内の対応するデータへの相関の統計的測定を、「クラスタ化係数(clustering factor)」と称する。クラスタ化係数は、物理ストレージ内のデータが物理ストレージ内でクラスタ化される(すなわち、互いに近くにある)度合を示す。
【0005】
【発明が解決しようとする課題】
従来技術のクラスタ化係数は、通常は、メモリ・ページのサイズとページ・バッファのサイズの関数として計算される。この計算を行うことは、ページ・バッファのサイズが既知の時には比較的単純である。ページ・バッファのサイズは、一般に、バッファの仮想サイズを指定する仮想メモリ・システムについて既知である。しかし、IBM iSeries 400などの一部のコンピュータ・プラットフォームは、固定サイズのページ・バッファを提供する仮想メモリ・システムを有するのではなく、単一レベルのストアを有する。単一レベル・ストアの場合、プロセッサのアドレス空間を、オペレーティング・システムとすべてのアプリケーションの間で共用しなければならない。この理由から、ページ・バッファについて固定されたサイズをセットすることは不可能である。というのは、そのサイズが、変化する可能性があり、システム要件が変化する際に動的に変更される可能性があるからである。可変サイズのページ・バッファを有するデータベースでのクラスタ化係数を判定する装置および方法がなければ、索引のクラスタ化係数が、一部のタイプのコンピュータ・プラットフォームについて使用不能になり、クラスタ化係数に基づくデータベース性能の最適化が困難になる。
【0006】
【課題を解決するための手段】
好ましい実施形態によれば、装置および方法が、データベースに対するブロックレベル・サンプリングを実行し、そのデータを処理して1つまたは複数の行列を生成し、1つまたは複数の行列を処理して、選択された範囲のクラスタ化係数を生成する。さらに、好ましい実施形態の装置および方法を用いると、ある範囲にわたるクラスタ化係数の分布を判定でき、これによって、クラスタ化係数が高い範囲およびクラスタ化係数が低い範囲の識別が可能になる。クラスタ化係数分布を使用して、サンプリングされたデータに対応する既存のまたは潜在的な索引を使用する探索のメモリ・ページング性能を予測することができ、したがって、特定のデータベース照会に関する、既存のまたは潜在的な索引を使用するデータベース探索の性能を予測することができる。
【0007】
本発明の前述および他の特徴および長所は、添付図面に示される本発明の好ましい実施形態の以下の詳細な説明から明白になる。
【0008】
【発明の実施の形態】
概要
本発明の装置および方法は、データベースのクラスタ化係数の判定に関する。データベースおよびデータベースのクラスタ化係数に精通していない人のために、関連する概念の簡単な概要をこれから示す。
【0009】
データベース
多くの異なるタイプのデータベースが、現在使用されている。最も一般的なものが、リレーショナル・データベース(RDB)であり、これは、当技術分野でレガシ・データベースとも称する。図1を参照すると、ほとんどのデータベースには、行と列の集合として編成される1つまたは複数の表110が含まれる。各列(またはフィールド)では、通常は、保管されるデータのタイプが指定され、各行は、通常は、データベース内の異なる項目(またはレコード)を表す。したがって、図1の表110Dについて、Col 1(列1)に、従業員の姓が含まれ、Col 2に、従業員の名が含まれ、Col 3に、従業員の性別が含まれ、Col 4に、従業員の雇われた日が含まれると仮定する。この場合、Row1(行1)は、特定の従業員、図1の例ではMary Smithの項目(レコード)を表す。さらに、Row 2には、Beth Jonesのレコードが含まれ、Row 3には、Sue Millerのレコードが含まれ、Row 4には、Bob Johnsonのレコードが含まれ、Row 5には、Ellen Nelsonのレコードが含まれる。これらの従業員の性別およびそれぞれの雇われた日が、各レコードのCol 3およびCol4に示されている。
【0010】
図1のサンプル・データベースの表110Dは、データベース表の概念を示すために、非常に小さい。多くの応用例で、データベース表に、多数の列が含まれる可能性があり、非常に多数の行が含まれる可能性があることは明白である。たとえば、IBM Corporation社の従業員のデータベースは、多数の列を有し、数万行を有する表を有する可能性がある。データベース表にそのように大量のデータがある場合に、完全な表探索の実行に、非常に時間がかかる可能性がある。その結果、索引のキー値に従ってデータベース内のデータをカテゴリ化することによってデータベース探索を高速化するために、索引が開発された。図1を参照すると、2つの索引120Aおよび120Bが、図示されており、これらを、以下ではそれぞれIndex 1およびIndex 2と呼称する。索引には、当技術分野で「述部」と称する、表内の情報を突き止めるための判断基準を指定するキーと、述部を満足するデータベース内の行を指定する値とが含まれる。この例では、Index 1の述部が、従業員の姓が「Jones」であることであると仮定する。Row 2に、Jonesという姓を有する従業員のレコードが含まれ、したがって、Row 2が、この索引でそのキーのとなりに現れ、そのキーを満足するレコードであることが示される。図1のIndex 2に示されているように、多数のレコードが1つのキーを満足する場合があることに留意されたい。
【0011】
Index 2が、従業員の性別が女性(F)であることを指定する述部を伴うキーを有すると仮定する。Row 1、Row 2、Row 3、およびRow 5が、この述部を満足するので、Index 2に、これらの行のそれぞれの項目が含まれる。索引がデータベース表内のデータをどれほど完全に表すかの尺度を、当技術分野で「選択性(selectivity)」と称する。索引が低い選択性を有する場合には、その索引は、データベース表内の比較的少数のレコードを表す。索引が高い選択性を有する場合には、その索引は、データベース表内の比較的多数のレコードを表す。図1のIndex 1は、データベース表110D内の5つのレコードのうちの1つだけを参照し、したがって、20%の選択性を有するが、これは、図1の例について比較的低い選択性である。対照的に、Index 2は、データベース表110D内の5つのレコードのうちの4つを参照し、選択性が80%であり、これは、図1の例に関して比較的高い選択性である。選択性は、基礎となる表内のどれほど多数のレコードが、索引で表されるかの尺度である。ある索引が高い選択性を有する場合に、データベースの検索に関するその索引の使用が制限される。というのは、完全な表探索が、その索引を使用する索引探索とほとんど同程度に速いからである。低い選択性を有する索引は、データベース・レコードの小さい部分だけがその索引で表されるので、データベース探索の性能を大幅に改善する可能性がある。従来技術では、索引の選択性がある閾値を越える場合に、索引を使用するのではなく、一般に完全な表探索が実行される。
【0012】
クラスタ化係数
データベースでは、用語「クラスタ化」が、データが物理ストレージ内で一緒にグループ化される時を示すのに使用される。用語「クラスタ化比」または「クラスタ化係数」は、当技術分野で、索引で表されるデータの物理的順序に関して索引がソートされている度合を表すのに使用されてきた。クラスタ化係数は、ディスクからメモリへページを取り出し、ディスクからメモリへおよびメモリからディスクへのページのスワップを実行する、メモリ・ページング・システムの性能を推定するのに重要な尺度である。低いクラスタ化係数は、索引走査に関するより多くのページ・スワップにつながる。というのは、索引内のデータの最初のアクセスの後に、そのデータを含むページが、そのページが次にアクセスされる時にまだページ・バッファ内にある可能性が低いからである。
【0013】
ほとんどの現代のデータベースは、データベースをチューニングし、これによってその性能を最適化するために、クラスタ化係数の計算をサポートする。クラスタ化係数は、データベース内の索引の相対効率を比較し、潜在的な索引の効率を予測するのに使用することができる。多数の既知のデータベースで、データ・マネージャが、索引ページを効率的に取り出すのを助ける、ページ・バッファ・サイズなどの情報にアクセスしてきた。従来のデータベースでは、データベース・マネージャが、照会を実行する前に、ページ・バッファのサイズを前もって知っている。図2を参照すると、データベース・マネージャは、データベース内の特定の索引または列を走査するのに必要なページ取出し入出力を、図2の行210に示されているように、ページ・バッファ・サイズの関数として判定する。その後、図2の行220に示されているように、クラスタ化係数を、ページ取出し入出力の関数として計算することができる。図2に示されたクラスタ化係数の計算は、仮想メモリ・システムを有し、したがって既知のサイズのページ・バッファを有するコンピュータ・システムについて可能である。しかし、一部のコンピュータ・システムは、固定サイズのページ・バッファを提供できる仮想メモリ・システムを有しない。たとえば、IBM iSeries 400コンピュータ・システムは、仮想メモリをサポートする2レベル・ストアではなく「単一レベル・ストア」を使用する。データベースDB2/400は、iSeries 400コンピュータ・プラットフォームで一般的に実行される、非常に人気のあるデータベースである。しかし、iSeries 400の単一レベル・ストアに起因して、索引のクラスタ化係数を図2に示されているように計算することができない。というのは、データベース用のローカルの(すなわち仮想)専用ページ・バッファがないからである。ページ・バッファのサイズは、システム負荷に従って変更することができ、したがって、ページ・バッファ・サイズを使用してクラスタ化係数を直接に計算する方法がない。下で説明する好ましい実施形態は、単一レベル・ストアを有するコンピュータ・システムならびに2レベル・ストアを有するシステムでデータベース索引のクラスタ化係数を判定するのに使用することができる方法を提供する。
【0014】
詳細な説明
本発明は、ページ・バッファ・サイズの知識に依存しない技法を使用して、データベース内の範囲に関するクラスタ化係数を判定する方法を提供する。ブロック・レベル・サンプリングが、データベースの性能に関する統計を計算するために、現在多数のデータベースで実行される。本明細書の好ましい実施形態では、既に実行されたブロック・レベル・サンプリングからの情報を使用して、索引のクラスタ化係数を判定する。さらに、好ましい実施形態を用いると、特定の範囲にわたるクラスタ係数の計算が可能になり、任意の指定された範囲にわたってクラスタ化係数の分布を判定できるようになる。
【0015】
図3を参照すると、好ましい実施形態によるコンピュータ・システムの1特定の実装が、IBM iSeries 400コンピュータ・システム300である(以前はAS/400コンピュータ・システムと称した)。コンピュータ・システム300には、主記憶320、大容量記憶装置インターフェース330、ディスプレイ・インターフェース340、およびネットワーク・インターフェース350に接続されるプロセッサ310が含まれる。これらのシステム構成要素は、システム・バス360を使用することを介して相互接続される。大容量記憶装置インターフェース330は、大容量記憶装置(直接アクセス記憶装置355など)をコンピュータ・システム300に接続するのに使用される。直接アクセス記憶装置の1特定のタイプが、読取/書込CDROMドライブであり、これは、CDROM395にデータを保管し、CDROM395からデータを読み取ることができる。
【0016】
好ましい実施形態による主記憶320には、データ321、オペレーティング・システム322、データベース324、およびクラスタ化係数計算機構328が含まれる。コンピュータ・システム300では、周知の仮想アドレッシング機構が使用され、これによって、コンピュータ・システム300のプログラムが、主記憶320および直接アクセス記憶装置355などの複数のより小さい記憶実体にアクセスするのではなく、大きい単一の記憶実体へのアクセスだけを有するかのように振る舞うことができるようになる。したがって、データ321、オペレーティング・システム322、データベース324、およびクラスタ化係数計算機構328は、主記憶320内に常駐するものとして図示されているが、当業者は、これらの項目が、必ずしもすべてが同時に完全に主記憶320に含まれるのではないことを諒解するであろう。また、用語「メモリ」が、本明細書では、コンピュータ・システム300のアドレス空間(すなわち仮想メモリ)全体を包括的に指すことに留意されたい。
【0017】
データ321は、コンピュータ・システム300内のあらゆるプログラムへの入力またはプログラムからの出力として働く、すべてのデータを表す。オペレーティング・システム322は、当業界でOS/400として既知のマルチタスク・オペレーティング・システムであるが、当業者は、本発明の趣旨および範囲が、1つのオペレーティング・システムに制限されないことを諒解するであろう。
【0018】
プロセッサ310は、1つまたは複数のマイクロプロセッサおよび/または集積回路から構成することができる。プロセッサ310は、主記憶320に保管されたプログラム命令を実行する。主記憶320には、プロセッサ310がアクセスできるプログラムおよびデータが保管される。コンピュータ・システム300が始動する時に、プロセッサ310は、まず、オペレーティング・システム322を構成するプログラム命令を実行する。オペレーティング・システム322は、コンピュータ・システム300のリソースを管理する精巧なプログラムである。このリソースの一部が、プロセッサ310、主記憶320、大容量記憶装置インターフェース330、ディスプレイ・インターフェース340、ネットワーク・インターフェース350、およびシステム・バス360である。
【0019】
データベース324には、表326と、表326内のデータの索引325が含まれる。図3には1つの表と1つの索引だけが示されているが、当業者は、データベース324などのデータベースに複数の表326および複数の索引325を含めることができることを諒解するであろう。
【0020】
クラスタ化係数計算機構328は、データベース表326内の情報にアクセスして、データベース列内の順序が、物理ストレージ内の基礎となるデータの順序付けとどれほど密に相関するかを判定する。クラスタ化係数計算機構328は、選択された範囲にわたってクラスタ化係数を計算することが好ましく、0から100%の範囲に正規化される。高いクラスタ化係数は、基礎となる物理ストレージ内のデータが、データベース列に関して相対的に順序付けられていることを示し、これは、メモリ・ページング・システムからのよりよい入出力性能をもたらす。低いクラスタ化係数は、基礎となる物理ストレージ内のデータが、データベース列に関して相対的に順序付けられていないことを示し、これは、低いクラスタ化係数を有する索引に基づく探索の時により多くのページ・スワップが必要になるので、メモリ・ページング・システムからの低い入出力性能をもたらす。
【0021】
コンピュータ・システム300は、単一のプロセッサおよび単一のシステム・バスだけを含むものとして図示されているが、当業者は、本発明を、複数のプロセッサまたは複数のバスもしくはその両方を有するコンピュータ・システムを使用して実践できることを諒解するであろう。さらに、好ましい実施形態で使用されるインターフェースのそれぞれに、プロセッサ310から計算集中型処理をオフロードするのに使用される別々の完全にプログラミングされたマイクロプロセッサが含まれる。しかし、当業者は、本発明が、類似する機能を実行するために単純に入出力アダプタを使用するコンピュータ・システムにも同等に適用されることを諒解するであろう。
【0022】
ディスプレイ・インターフェース340は、1つまたは複数のディスプレイ365をコンピュータ・システム300直接接続するのに使用される。ディスプレイ365は、単一の表示装置または完全にプログラム可能なワークステーションとすることができ、システム管理者がコンピュータ・システム300と通信できるようにするのに使用される。
【0023】
ネットワーク・インターフェース350によって、コンピュータ・システム300が、コンピュータ・システムを接続することができるネットワーク370との間でデータを送受信でき、ネットワーク370に結合された1つまたは複数のコンピュータ・システム375と通信できるようになる。ネットワーク370は、ローカル・エリア・ネットワーク(LAN)、広域ネットワーク(WAN)、インターネット、イントラネット、またはこれらの組合せとすることができる。ネットワークへの接続の適当な方法には、既知のアナログ技法および/またはディジタル技法ならびに、将来に開発されるネットワーキング機構が含まれる。多数の異なるネットワーク・プロトコルを使用して、1つのネットワークを実施することができる。これらのプロトコルは、コンピュータがネットワークを介して通信できるようにする、特殊化されたコンピュータ・プログラムである。インターネットを介する通信に使用されるTCP/IP(伝送制御プロトコル/インターネット・プロトコル)が、適当なネットワーク・プロトコルの例である。
【0024】
ここでは、本発明を完全に機能するコンピュータ・システムに関して説明するが、当業者が、本発明をさまざまな形態のプログラム製品として配布できることと、本発明が配布の実行に実際に使用される信号担持媒体の具体的なタイプにかかわらずに同等に適用されることを諒解するであろうことに留意することが重要である。適当な信号担持媒体の例には、CDROM(たとえば図3の395)およびフロッピ(R)・ディスクなどの記録可能型媒体と、ディジタル通信リンクおよびアナログ通信リンクなどの伝送型媒体が含まれる。
【0025】
図4を参照すると、好ましい実施形態による方法400は、データベースからブロックをランダムに選択すること(ステップ410)によって開始される。これらのブロックは、既存の索引に対応するものとすることができ、もしくは、データベース内のある列に対する潜在的な索引の性能を推定するためにその列に基づくブロックとすることができる。ブロック・レベル・サンプリングが、現在、従来技術の多数のデータベース・システムで異なる性能統計を収集するために行われていることに留意されたい。しかし、クラスタ化係数は、過去においてブロック・レベル・サンプリングから計算または導出されなかった。本発明では、ブロック・レベル・サンプリングが、データベースの性能統計を導出するために既に実行されており、したがって、ブロック・レベル・サンプリング情報を使用して、異なるサンプリングを必要とせずにクラスタ化係数を導出できることが認識されている。言い換えると、本発明では、ブロック・レベル・サンプリングが、他の理由から既に実行されており、したがって、この情報が、性能的にごくわずかなコストで簡単に入手可能であることが認識されている。好ましい実施形態では、ステップ410が、他のデータベース性能統計(クラスタ化係数以外)を収集するために現在行われている、従来技術のブロック・レベル・サンプリングのステップである。というのは、この情報が、既に使用可能であり、したがって、追加のサンプルを必要としないからである。しかし、本発明が、当技術分野で既知のデータベース性能統計を収集するために実行されるブロック・レベル・サンプリングと別のブロック・レベル・サンプリングの実行に明白に拡張されることに留意されたい。さらに、ブロック・レベル・サンプリングを実行することによって、クラスタ化係数に基づく性能推定を、索引全体に対する完全な走査を実行するのではなく、データのサンプリングに基づいて行うことができる。
【0026】
物理データのブロック(たとえばページ)をステップ410で選択した後に、キー値および対応するページ番号のリストを生成する(ステップ420)。その後、このリストを、キー値の昇順でソートする(ステップ430)。その後、ソートされたリストを使用して、サンプル内のページ数に等しい深さを有し、索引内のキーの数に等しい幅を有する2次元ビットマップを生成する(ステップ440)。ビットマップを生成した後に、それを処理して三角行列を生成する(ステップ450)。その後、三角行列を処理してサイズを縮小する(ステップ460)。この行列のサイズは、ディジタル画像圧縮技法を使用してさらに縮小することができる(ステップ470)。最後に、圧縮された行列から、指定された範囲のクラスタ化係数を判定することができる(ステップ480)。図4に示された特定のステップが、本明細書に記載の本発明の実践に必要ではないが、好ましい実施形態によるステップの1つの適当な組合せを例示するものであることに留意されたい。本明細書に記載の好ましい実施形態は、サンプリングされたデータから行列を生成し、その行列を処理して、データベースの指定された範囲のクラスタ化係数を判定する、ステップのすべての特定のシーケンスに明白に拡張される。図4の方法400の詳細を、下に示す特定の例に関して説明する。
【0027】
図5は、データベース表からランダムにサンプリングされた、P1からP5というラベルを付けられた、物理ストレージの5ページを表す。サンプリングされたページが、選択されたデータベース索引のキーで指定される述部を満足するページであることに留意されたい。図5のページは、図4のステップ410を使用して選択することができる。好ましい実施形態では、ページのうちの選択された比率が、ランダムに選択される(たとえば10%)。ページをサンプリングした後に、キー値およびそれに対応するページ番号のリストが生成され(ステップ420)、このリストがキー値の昇順でソートされ(ステップ430)、図6に示されたソートされたリスト600がもたらされる。リスト600を生成する際に、ページの空白部分のすべてが除外されることに留意されたい。各キーは、昇順であり(K1からK13)、それに対応するページが、リスト600に示されている。
【0028】
順序付けられたリスト600を使用して、図4のステップ440で説明した、ページの数に等しい深さとキーの数に等しい幅を有する2次元ビットマップを生成することができる。たとえば、図5および図6には、5つのページと13個のキーがある。ビットマップを作成した後に、図7のビットマップ700に示されているように、その値のすべてを0に初期化し、その後、ビットマップの位置[1、1]を1に初期化する。図8の行列800に示されているように、キーの数に等しい深さとキーの数に等しい幅を有する三角行列を作成し、0に初期化し、その最初の位置[1、1]を1に初期化する。行列800の形状は正方形に見えるが、この行列のデータ値は、三角形のパターンになっており、それが、行列800を「三角行列」と呼ぶ理由である。
【0029】
行列の値を、リスト600の情報、ビットマップ700の情報、および行列800の他の項目の情報から生成することができる。行列800の値は、次の論理を使用して生成することができる。
Mは、サンプルのキーの数である
Nは、サンプルのページの数である。
List[M]は、それぞれにKeyValue(キー値)およびPage#(ページ番号)が含まれるレコードの配列である(たとえば図6の600)
BitMap[N][M]は、2次元ビットマップである(図7の700を参照されたい)
Triangular_Matrix[M][M]は、2次元配列である(図8の800を参照されたい)
Figure 0003798719
上の論理を実行することによって、図21に示された、図5から8の例に関する結果の三角行列を生成することができる。しかし、上で示した論理の深みにはまり込まずに図21の結果の三角行列を生成する、はるかに簡単なグラフ法がある。
【0030】
まず、行列800を、図7および図8に示されているようにビットマップ700の下に位置合せし、その結果、ビットマップ700の列K1が、行列800の列K1に位置合せされるようにする。ビットマップ700(図7)および行列800(図8)の両方の位置[1、1]は、1に初期化されており、これが、最初のキーK1に必要な処理である。これが、上の論理がJ=2から始まる理由である。ここでは、図10で矢印によって示されているように、行列の第2行K2から始める。次に、図6のリスト600を見て、どのページ番号がキーK2に対応するかを判定する。リストから、ページP2がK2に対応することがわかる。このために、図9で矢印によって示されているように、ビットマップ内でP2に対応する行を見る。次に、P2の行を、問題のキーの数値の順序に対応する項目数だけ進む。検討中のキーは、2番目のキーなので、行P2で2位置だけ進む必要がある。この論理は非常に単純である。ビットマップのページ行の値が0である場合には、その値を1に変更し、図10の行の対応する位置の値に、その上の値+1を与える。ビットマップのページ行の値が1の場合には、図10の行の対応する位置の値に、その上の値を与える。この方法を使用することによって、リスト600(図6)、ビットマップ700、および三角行列800の情報から三角行列の値を簡単に生成することができる。
【0031】
図9および図10の特定の例について上で説明したこのグラフ法を使用すると、ページ行P2の最初の値が0であり、したがって、その値が1に変更され、図10のK2行の対応する位置の値が、その上の値(1)+1すなわち合計2になる。同様の形で、ページ行の第2項目が、0であり、1に変更され、行列の対応する列の値が、その上の値(0)+1すなわち合計1になる。問題のキーK2が2番目のキーなので、図9のページ行の2つの位置を処理しただけであることに留意されたい。
【0032】
ここで、図12で矢印によって示されているように、次のキー、K3を検討する。図6のリスト600を参照すると、図11で矢印によって示されているように、K3が対応するページ番号P5を有することがわかる。ここで、三角行列800の行K3に書き込む。P5行の最初の位置(K1)は0であり、したがって、これを1に変更し、行列のK3行のK1位置の値は、その上の値より1つ大きくなる。その上の値は2なので、図12に示されているように、値3がK3行の最初の位置に配置される。同様の形で、P5行の次の2つの0が、1に変更され、三角行列の対応する位置が、それらの上の値より1つ大きくなる。図11および図12に示されたビットマップ700および三角行列800が、K3を含むK3までの処理を表す。K3がリスト600(図6)の3番目のキーなので、行列800の行K3に非0項目が3つだけあることに留意されたい。
【0033】
ここで、図14で矢印によって示されているように、次のキー、K4を検討する。図6のリスト600を参照すると、図13で矢印によって示されているように、K4が対応するページ番号P3を有することがわかる。ここで、三角行列800の行K4に書き込む。P3行の最初の位置(K1)は0なので、これを1に変更し、K4行のK1位置の値が、その上の値より1つ大きくなる。上の値は3なので、図14に示されているように、値4がK4行の最初の位置に配置される。同様の形で、P3行の次の3つの0が1に変更され、三角行列の対応する位置が、その上の値より1つ大きくなる。図13および図14に示されたビットマップ700および三角行列800が、K4を含むK4までの処理を表す。K4がリスト600(図6)の4番目のキーなので、行K4に非0項目が4つだけあることに留意されたい。
【0034】
ここで、図16で矢印によって示されているように、次のキー、K5を検討する。図6のリスト600を参照すると、図15で矢印によって示されているように、K5が対応するページ番号P1を有することがわかる。ここで、三角行列800の行K5に書き込む。P1行の最初の位置(K1)は1なので、K5行のK1位置の値が、その上の値と同一になる。上の値は4なので、図16に示されているように、値4がK5行の最初の位置に配置される。P1行の2番目の位置(K2)は0なので、これを1に変更し、K5行のK2位置の値が、その上の値より1つ大きくなる。上の値は3なので、図16に示されているように、値4がK5行の2番目の位置に配置される。同様の形で、P1行の次の3つの0が1に変更され、三角行列の対応する位置が、その上の値より1つ大きくなる。図15および図16に示されたビットマップ700および三角行列800が、K5を含むK5までの処理を表す。K5がリスト600(図6)の5番目のキーなので、行K5に非0項目が5つだけあることに留意されたい。
【0035】
ここで、図18で矢印によって示されているように、K6を検討する。図6のリスト600を参照すると、図17で矢印によって示されているように、K6が対応するページ番号P5を有することがわかる。ここで、三角行列800の行K6に書き込む。P5行の最初の3つの位置K1からK3は、図15に示されているように、すべて1であるから、K6行のK1からK3位置の値は、その上の値と同一になる。同様に、P5行の位置K4からK6は、すべて0なので(図15を参照されたい)、これらを1に変更し、K6行の位置K4からK6の値が、その上の値より1つ大きくなる。図17および図18に示されたビットマップ700および三角行列800が、K6を含むK6までの処理を表す。K6がリスト600(図6)の6番目のキーなので、行K6に非0項目が6つだけあることに留意されたい。
【0036】
行K7からK13の処理が、同様の形で進行し、その結果のビットマップを図19に示し、結果の三角行列を図20に示す。軸が、その上のビットマップに位置合せするために入れ替えられたので、図20の三角行列を反転する必要があることに留意されたい。このために、行列の軸を変更し、その結果の三角行列を、図21に示す。
【0037】
本明細書に示し、図5から21で述べた例が、好ましい実施形態の概念を示すために極端に簡略化されていることに留意されたい。13個のキーと5つのページだけでも、非常に大きい(13×13)行列で終わる。行列のサイズは、サンプルのキーの数によって決定される。M個のキーを含むN個のページをサンプリングする場合には、三角行列内にM(M−1)/2個の項目を有することになる。実世界の応用例では、キーの数およびページの数が非常に大きくなる可能性がある。その結果、結果の三角行列のサイズが、値のすべてを行列内に保管できるようにするには大きくなりすぎる可能性がある。このために、好ましい実施形態では、図4のステップ460および470に示されるように、結果の三角行列を処理して、そのサイズを縮小する。
【0038】
三角行列(図21に示されたものなど)で、(100/M)%から(100M/M)%まで変化する選択性を記憶する。しかし、クラスタ化比は、索引が十分に選択的である(すなわち、12%などの閾値を超える)時に限って検討する必要がある。行列のサイズを縮小する方法の1つが、照会に関して索引の使用に値するには高すぎる選択性を有する索引の項目を削除することである。たとえば、次の照会を仮定する。
SELECT * FROM lineitem
WHERE 1_orderkey BETWEEN 1 AND 100000
AND 1_partkey BETWEEN 1 and 1000
ここで、1_orderkeyに対するものと1_partkeyに対するものの2つの索引がある。「1_orderkey between 1 and 100000」の選択性が90%であり、「1_partkey between 1 and 1000」の選択性が5%である。この場合に、データベースの最適化プログラムは、索引クラスタ化に無関係に、データへのアクセス・パスとして1_partkeyを選ぶ。その結果、選択性マージンを満足する索引だけに対するクラスタ化統計を保存することが望ましい。選択性マージンが、(i*100/M)%から(100*j/M)%までであり、i≦jである場合に、行列の項目数が、[(j−i+1)(2M−(i+j))/2]に減らされる。たとえば、選択性のマージンが、それぞれi=2%およびj=30%である場合に、項目数は(0.2352M**2+0.84M)であり、行列のサイズは、(0.2352M**2+0.84M)/(0.5M**2+0.5M)すなわち約2.3倍に減らされる。この特定の例で、索引の選択性に従って三角行列の値をスクリーニングすることによって、項目の数が2.3倍だけ減らされたが、これは、処理された三角行列が、元の項目の44%未満を有することを意味する。
【0039】
三角行列の項目の数を減らすもう1つの方法は、重複したキーを除去し、両端のキーを残すことである。たとえば、key5からkey9までが同一の値(「Mary」など)を有する場合に、行列内の、key6、key7、およびkey8に対応する行および列を除去し、両端の値key5およびkey9を残す。図6のリスト600はソートされているので、下の論理によって示されるように、新しい値が見つかるまでキーの値を単純にバッファリングする。
Figure 0003798719
【0040】
三角行列は、キーを分位数に分割することによって、さらにサイズを減らすことができる。言い換えると、2つの連続する対の間の距離が等しくなるように、キーのサブセットを選択することができる。たとえば、行列の残りのキーが、K1、K2、K3、…、K100である場合に、K10、K20、K30、K40、K50、K60、K70、K80、K90、およびK100が選択された分位数になり、2つの分位数の間の距離が10キーになるように、対応する分位数の行および列を保つことによって、10個の分位数を選択して行列サイズを減らすことができる。その結果、行列サイズが、100列から10列に減り、行列のサイズが90%縮小される。この縮小方法では、元の行列の近似である行列が作られ、選択される分位数が多いほど、結果の行列が元の行列を正確に近似するようになる。より正確に元の行列を近似するのに十分な分位数を選択する場合には、結果の行列が、まだ大きすぎる可能性がある。
【0041】
元の三角行列(たとえば図21の)および上の縮小技法から生じる結果の行列のすべての分析から、行列の各項目が、その近傍に強く相関することが示される。この意味で、行列は、画像内の各画素が行列項目に写像される行列を使用して表現することができるディジタル画像に類似する。ディジタル画像では、各画素が、その近傍に相関する。したがって、好ましい実施形態では、ディジタル画像を圧縮する既知の技法を使用して、三角行列を圧縮することができる。KLM、高速フーリエ変換、離散コサイン変換、特異値分解(SVD)を含む、ディジタル画像を圧縮する多数の既知の技法がある。実装を簡単にするために、三角行列を圧縮するのに適する技法としてSVDを選択した。SVDに関する全般的な情報および詳細については、画像処理または線形代数の参考文献を参照されたい。
【0042】
SVDは、行列を2つの直交行列および1つの対角行列の積に書き直す周知の技法である。UおよびVが、行列AのSVD表現の2つの直交行列であり、Sが、行列AのSVD表現の対角行列であるならば、
【数1】
Figure 0003798719
である。Uの列は、AAtの固有ベクトルであり、Vの列は、AtAの固有ベクトルである。Sの対角線の特異値rは、AAtおよびAtAの両方の非0固有値の平方根である。これらの特異値は、大きさの降順で配置される。ベクトルuiが、行列Uの列であり、ベクトルviが、行列Vの列であり、siが、Aの特異値を表すならば、式(2)に示された関係が得られる。
【数2】
Figure 0003798719
SVDの特性の1つが、行列内の最大の重みの情報を最小の重みの情報から分離できることである。行列Aのk個の最大の特異値(および対応する固有ベクトル)によって、行列内の最大の重みの情報が取り込まれる。k個の最大の特異値およびそれに対応する固有ベクトル(k<<r)を保管することによって、行列を近似することができる。
【0043】
k個の最大の特異値およびそれに対応する固有ベクトルを維持しながら、下記の論理を使用することによって別個のページの数(Distinct_Pages)を判定することができる。
N=ページ・サイズ(行数);
R=指定された索引範囲に含まれる行数
Figure 0003798719
その後、式(3)からクラスタ化係数を判定することができる。
クラスタ化係数=R/(N*Distinct_Pages) (3)
【0044】
第1の索引範囲のクラスタ化係数を判定した後に、第1の索引範囲のクラスタ化係数を、第2の索引または範囲のクラスタ化係数と比較して、第2の索引範囲の使用と比較した第1の索引範囲を使用するデータベース照会の実行の相対効率を比較することができる。その後、相対効率に基づいてデータベース照会に適当な索引および範囲を選択することができ、これによって照会の性能が改善される可能性が高い。
【0045】
好ましい実施形態では、図2に示された従来技術でもたらされるクラスタ化係数のなまの推定から使用可能な、はるかに大量の情報が可能である。たとえば、好ましい実施形態では、選択された索引の指定された範囲に関するクラスタ化係数を判定できるので、索引全体にわたるクラスタ化係数の分布を、好ましい実施形態によって容易に判定することができる。クラスタ化係数の分布によって、アクセスされる索引の予想される範囲に基づく、使用すべき索引範囲の決定が可能になる。したがって、ある索引のクラスタ化係数分布によって、従来技術では入手可能でない追加情報が与えられて、索引の期待される範囲に基づいて、どの索引を使用すべきかに関する決定が、さらに洗練される。
【0046】
本実施形態のもう1つの長所は、ほとんどのデータベース・システムで既に収集されているブロック・レベル・サンプルからクラスタ化係数およびクラスタ化係数分布を判定する能力であり、これによって、サンプルが、データベース・システム内の他の有用な統計を収集するために既に存在するので、クラスタ化係数および分布の判定が性能に及ぼす影響が最小になる。たとえば、データの分布および別個の値の数の推定が、当技術分野で既知の統計である。さらに、クラスタ化係数およびクラスタ化係数分布が、好ましい実施形態では仮定されるページ・バッファ・サイズにかかわらずに判定されるので、好ましい実施形態は、単一レベル・ストアを有するコンピュータ・システムならびに仮想記憶システム(すなわち2レベル・ストア)を有するコンピュータ・システムでのクラスタ化係数およびクラスタ化係数分布の判定に成功する。
【0047】
したがって、本明細書に開示された好ましい実施形態は、選択された索引の指定された範囲でのクラスタ化係数およびクラスタ化係数分布を判定する装置および方法を提供する。その後、クラスタ化係数情報をデータベース・マネージャによって使用して、他の索引よりすばやくデータベース探索を実行する可能性が高い適当な索引を選択することができる。さらに、データベースの列に関するクラスタ化係数を判定して、その列に対する索引の性能を推定することができる。
【0048】
当業者は、本発明の範囲内で多数の変形形態が可能であることを諒解するであろう。したがって、本発明の好ましい実施形態に関して本発明を具体的に図示し、説明してきたが、形態および詳細におけるこれらおよび他の変更を、本発明の趣旨および範囲から逸脱せずにその中で行うことができることが、当業者に理解されるであろう。
【0049】
まとめとして、本発明の構成に関して以下の事項を開示する。
【0050】
(1)少なくとも1つのプロセッサと、
前記少なくとも1つのプロセッサに結合されたメモリと、
前記メモリ内に常駐するデータベースであって、前記データベースに対する照会を管理するデータベース・マネージャを含む、データベースと、
前記メモリ内に常駐し、前記少なくとも1つのプロセッサによって実行されるクラスタ化係数計算機構であって、前記クラスタ化係数計算機構が、前記データベースからの複数のランダムな物理データ・ページのブロック・サンプリングを実行し、前記ブロック・サンプリングでの情報から少なくとも1つの行列を生成し、前記データベース内の指定された範囲に関するクラスタ化係数を判定するために前記少なくとも1つの行列を処理する、クラスタ化係数計算機構と
を含み、前記データベース・マネージャが、前記クラスタ化係数に基づいて前記データベースに対する照会の性能を推定する
装置。
(2)前記データベースが、それぞれが少なくとも1つのキーと前記キーを満足する前記データベース内の少なくとも1つの対応するレコードへの参照とを有する複数の索引を含み、前記クラスタ化係数計算機構が、第1索引内の第1範囲に関する前記クラスタ化係数を判定し、第2索引内の第2範囲に関する前記クラスタ化係数を判定し、前記データベース・マネージャが、前記第1索引の前記クラスタ化係数を前記第2索引の前記クラスタ化係数と比較することによって、前記第2索引と比較した前記第1索引の相対効率を判定し、前記データベース・マネージャが、前記それぞれのクラスタ化係数によって示される相対効率に基づいて、前記データベースの照会のために前記第1索引および前記第2索引の1つを選択する、上記(1)に記載の装置。
(3)前記データベース・マネージャが、前記それぞれのクラスタ化係数によって示される相対効率に基づいて、前記データベースの照会のために前記第1索引および前記第2索引の1つを選択する、上記(1)に記載の装置。
(4)前記クラスタ化係数計算機構が、さらに、前記選択された索引の異なる範囲での前記クラスタ化係数の分布を判定する、上記(1)に記載の装置。
(5)前記クラスタ化係数計算機構が、前記ブロック・サンプリングから生成されたキーと前記キーに対応するページとの順序付けられたリストから前記少なくとも1つの行列を生成する、上記(1)に記載の装置。
(6)前記クラスタ化係数計算機構が、少なくとも1つのディジタル画像圧縮技法を使用して、前記少なくとも1つの行列のサイズを縮小する、上記(1)に記載の装置。
(7)前記ディジタル画像圧縮技法が、特異値分解を含む、上記(6)に記載の装置。
(8)少なくとも1つのプロセッサと、
前記少なくとも1つのプロセッサに結合されたメモリと、
前記メモリ内に常駐するデータベースであって、それぞれが少なくとも1つのキーと前記キーを満足する前記データベース内の少なくとも1つの対応するレコードへの参照とを有する複数の索引を含み、さらに、前記データベースへの照会を管理するデータベース・マネージャを含む、データベースと、
前記メモリ内に常駐し、前記少なくとも1つのプロセッサによって実行されるクラスタ化係数計算機構であって、前記クラスタ化係数計算機構が、前記データベース内の選択された索引からの複数のランダムな物理データ・ページのブロック・サンプリングを実行し、前記ブロック・サンプリングからのキーの、前記キーに対応するページを伴う順序付きリストを生成し、前記順序付きリストから2次元ビットマップを生成し、少なくとも1つの行列を生成するために前記2次元ビットマップを処理し、少なくとも1つのディジタル画像圧縮技法を使用して前記少なくとも1つの行列のサイズを縮小し、前記選択された索引の指定された範囲に関するクラスタ化係数を判定するために前記縮小された行列を処理し、前記クラスタ化係数計算機構が、前記データベースの第1索引内の第1範囲に関する前記クラスタ化係数を判定し、前記データベースの第2索引内の第2範囲に関する前記クラスタ化係数を判定する、クラスタ化係数計算機構と
を含み、前記データベース・マネージャが、前記第1索引の前記クラスタ化係数を前記第2索引の前記クラスタ化係数と比較することによって、前記第2索引と比較した前記第1索引の相対効率を判定し、前記データベース・マネージャが、前記それぞれのクラスタ化係数によって示される相対効率に基づいて、前記データベースの照会のために前記第1索引および前記第2索引の1つを選択する
装置。
(9)データベース内の指定された範囲に関するクラスタ化係数を判定する方法であって、
(A)前記指定された範囲から複数のランダムな物理データ・ページをブロック・サンプリングするステップと、
(B)前記ブロック・サンプリングでの情報から少なくとも1つの行列を生成するステップと、
(C)前記データベースの前記指定された範囲に関するクラスタ化係数を判定するために前記少なくとも1つの行列を処理するステップと
を含む方法。
(10)前記データベース内の前記指定された範囲が、前記データベースの索引の少なくとも一部を含む、上記(9)に記載の方法。
(11)さらに、前記データベースの異なる範囲での前記クラスタ化係数の分布を判定するステップを含む、上記(9)に記載の方法。
(12)ステップ(B)が、
(B1)前記ブロック・サンプリングからのキーの、前記キーに対応するページを伴う順序付きリストを生成するステップと、
(B2)前記順序付きリストから2次元ビットマップを生成するステップと、(B3)前記少なくとも1つの行列を生成するために前記2次元ビットマップを処理するステップと
を含む、上記(9)に記載の方法。
(13)少なくとも1つのディジタル画像圧縮技法を使用して前記少なくとも1つの行列のサイズを縮小するステップをさらに含む、上記(9)に記載の方法。
(14)前記ディジタル画像圧縮技法が、特異値分解を含む、上記(13)に記載の方法。
(15)1回目に、第1索引に関するクラスタ化係数を判定するために、ステップ(A)、(B)、および(C)が実行され、
2回目に、第2索引に関するクラスタ化係数を判定するために、ステップ(A)、(B)、および(C)が実行され、
前記第1索引および前記第2索引の前記クラスタ化係数に基づいて、前記データベースの照会のために前記第1索引および前記第2索引の1つを選択するステップをさらに含む
上記(9)に記載の方法。
(16)データベース内の複数の範囲に関するクラスタ化係数分布を判定する方法であって、
(A)前記データベースから複数のランダムな物理データ・ページをブロック・サンプリングするステップと、
(B)前記ブロック・サンプリングからのキーの、前記キーに対応するページを伴う順序付きリストを生成するステップと、
(C)前記順序付きリストから2次元ビットマップを生成するステップと、
(D)少なくとも1つの行列を生成するために前記2次元ビットマップを処理するステップと
(E)少なくとも1つのディジタル画像圧縮技法を使用して前記少なくとも1つの行列のサイズを縮小するステップと、
(F)前記データベース内の指定された範囲に関するクラスタ化係数を判定するために前記少なくとも1つの行列を処理するステップと、
(G)前記データベース内の前記複数の範囲のそれぞれに関するクラスタ化係数を判定するためにステップ(A)から(F)を繰り返すステップと
を含む方法。
(17)データベース内の複数のランダムな物理データ・ページのブロック・サンプリングを実行し、前記ブロック・サンプリングでの情報から少なくとも1つの行列を生成し、前記データベース内の指定された範囲に関するクラスタ化係数を判定するために前記少なくとも1つの行列を処理する、クラスタ化係数計算手順をコンピュータに実行させるためのプログラムを記録したコンピュータ可読記録媒体。
(18)前記クラスタ化係数計算手順が、第1索引内の第1範囲に関する前記クラスタ化係数を判定し、第2索引内の第2範囲に関する前記クラスタ化係数を判定し、前記第1索引の前記クラスタ化係数を前記第2索引の前記クラスタ化係数と比較することによって、前記第2索引と比較した前記第1索引の相対効率を判定する手順である、上記(17)に記載の記録媒体。
(19)前記信号担持媒体上に常駐し、前記それぞれのクラスタ化係数によって示される相対効率に基づいて、前記データベースの照会のために前記第1索引および前記第2索引の1つを選択する、データベース・マネージャをさらに含む、上記(17)に記載の記録媒体。
(20)前記クラスタ化係数計算手順が、さらに、前記選択された索引の異なる範囲での前記クラスタ化係数の分布を判定する、上記(17)に記載の記録媒体。
(21)前記クラスタ化係数計算手順が、前記ブロック・サンプリングから生成されたキーと前記キーに対応するページとの順序付きリストから前記少なくとも1つの行列を生成する、上記(17)に記載の記録媒体。
(22)前記クラスタ化係数計算手順が、少なくとも1つのディジタル画像圧縮技法を使用して前記少なくとも1つの行列のサイズを縮小する、上記(17)に記載の記録媒体。
(23)前記ディジタル画像圧縮技法が、特異値分解を含む、上記(22)に記載の記録媒体。
(24)データベースであって、
(A)データベース内の選択された索引からの複数のランダムな物理データ・ページのブロック・サンプリングを実行し、前記ブロック・サンプリングからのキーの、前記キーに対応するページを伴う順序付きリストを生成し、前記順序付きリストから2次元ビットマップを生成し、少なくとも1つの行列を生成するために前記2次元ビットマップを処理し、少なくとも1つのディジタル画像圧縮技法を使用して前記少なくとも1つの行列のサイズを縮小し、前記選択された索引の指定された範囲に関するクラスタ化係数を判定するために前記縮小された行列を処理するクラスタ化係数計算機構であって、前記クラスタ化係数計算機構が、前記データベースの第1索引内の第1範囲に関する前記クラスタ化係数を判定し、前記データベースの第2索引内の第2範囲に関する前記クラスタ化係数を判定する、クラスタ化係数計算機構と、
(B)前記第1索引の前記クラスタ化係数を前記第2索引の前記クラスタ化係数と比較することによって、前記第2索引と比較した前記第1索引の相対効率を判定するデータベース・マネージャであって、前記データベース・マネージャが、前記それぞれのクラスタ化係数によって示される前記相対効率に基づいて、前記データベースの照会のために前記第1索引および前記第2索引の1つを選択する、データベース・マネージャと
を含むデータベースが記録されたコンピュータ可読記録媒体。
【図面の簡単な説明】
【図1】従来技術のデータベースのブロック図である。
【図2】データベース索引のクラスタ化係数が従来技術で計算される方法を示す図である。
【図3】好ましい実施形態による装置のブロック図である。
【図4】好ましい実施形態による、クラスタ化係数分布を判定する方法の流れ図である。
【図5】データ・ベースからランダムにサンプリングされるブロックである5つのページを示すブロック図である。
【図6】図5に示されたページの、キー値およびそれに対応するページのページ番号のソートされたリストのブロック図である。
【図7】好ましい実施形態による、初期化されたビットマップのブロック図である。
【図8】好ましい実施形態による、初期化された三角行列のブロック図である。
【図9】好ましい実施形態による、第1の索引キーK1を処理した後の図7のビットマップのブロック図である。
【図10】好ましい実施形態による、第1の索引キーK1を処理した後の図8の三角行列のブロック図である。
【図11】好ましい実施形態による、第2の索引キーK2を処理した後の図7のビットマップのブロック図である。
【図12】好ましい実施形態による、第2の索引キーK2を処理した後の図8の三角行列のブロック図である。
【図13】好ましい実施形態による、第3の索引キーK3を処理した後の図7のビットマップのブロック図である。
【図14】好ましい実施形態による、第3の索引キーK3を処理した後の図8の三角行列のブロック図である。
【図15】好ましい実施形態による、第4の索引キーK4を処理した後の図7のビットマップのブロック図である。
【図16】好ましい実施形態による、第4の索引キーK4を処理した後の図8の三角行列のブロック図である。
【図17】好ましい実施形態による、第5の索引キーK5を処理した後の図7のビットマップのブロック図である。
【図18】好ましい実施形態による、第5の索引キーK5を処理した後の図8の三角行列のブロック図である。
【図19】好ましい実施形態による、索引キーK1からK13のすべてを処理した後の図7のビットマップのブロック図である。
【図20】好ましい実施形態による、索引キーK1からK13のすべてを処理した後の図8の三角行列のブロック図である。
【図21】好ましい実施形態による、図20の三角行列から生成された三角行列のブロック図である。
【符号の説明】
300 コンピュータ・システム
310 プロセッサ
320 主記憶
321 データ
322 オペレーティング・システム
324 データベース
325 索引
326 表
328 クラスタ化係数計算機構
330 大容量記憶装置インターフェース
340 ディスプレイ・インターフェース
350 ネットワーク・インターフェース
355 直接アクセス記憶装置
360 システム・バス
365 ディスプレイ
370 ネットワーク
375 コンピュータ・システム
395 CDROM

Claims (24)

  1. 少なくとも1つのプロセッサと、
    前記少なくとも1つのプロセッサに結合されたメモリと、
    前記メモリ内に常駐するデータベースであって、前記データベースに対する照会を管理するデータベース・マネージャを含む、前記データベースと、
    前記メモリ内に常駐し、前記少なくとも1つのプロセッサによって実行されるクラスタ化係数計算機構であって、前記クラスタ化係数計算機構が、前記データベースからの複数のランダムな物理データ・ページのブロック・サンプリングを実行し、前記ブロック・サンプリングでの情報から少なくとも1つの行列を生成し、前記少なくとも1つの行列を処理して前記データベース内の指定された範囲に関するクラスタ化係数を判定し、ここで前記データベース内の前記指定された範囲が前記データベースの索引の少なくとも一部を含む、前記クラスタ化係数計算機構と
    を含み、前記データベース・マネージャが、前記判定されたクラスタ化係数に基づいて前記データベースに対する照会の性能を推定する
    装置。
  2. 少なくとも1つのプロセッサと、
    前記少なくとも1つのプロセッサに結合されたメモリと、
    前記メモリ内に常駐するデータベースであって、前記データベースに対する照会を管理するデータベース・マネージャを含む、前記データベースと、
    前記メモリ内に常駐し、前記少なくとも1つのプロセッサによって実行されるクラスタ化係数計算機構であって、前記クラスタ化係数計算機構が、前記データベースからの複数のランダムな物理データ・ページのブロック・サンプリングを実行し、前記ブロック・サンプリングでの情報から少なくとも1つの行列を生成し、前記少なくとも1つの行列を処理して前記データベース内の指定された範囲に関するクラスタ化係数を判定する、前記クラスタ化係数計算機構と
    を含み、前記データベースが複数の索引を含み、前記複数の索引のそれぞれが少なくとも1つのキーと、前記キーを満足する前記データベース内の少なくとも1つの対応するレコードへの参照とを有し、前記クラスタ化係数計算機構が、第1索引内の第1範囲に関する前記クラスタ化係数を判定し、第2索引内の第2範囲に関する前記クラスタ化係数を判定し、前記データベース・マネージャが、前記第1索引の前記クラスタ化係数を前記第2索引の前記クラスタ化係数と比較することによって、前記第2索引と比較した前記第1索引の相対効率を判定し、前記データベース・マネージャが、前記それぞれのクラスタ化係数によって示される相対効率に基づいて、前記データベースの照会のために前記第1索引および前記第2索引の1つを選択し、前記データベース・マネージャが、前記判定されたクラスタ化係数に基づいて前記データベースに対する照会の性能を推定する
    装置。
  3. 前記データベースが複数の索引を含み、前記複数の索引のそれぞれが少なくとも1つのキーと、前記キーを満足する前記データベース内の少なくとも1つの対応するレコードへの参照とを有し、前記クラスタ化係数計算機構が、第1索引内の第1範囲に関する前記クラスタ化係数を判定し、第2索引内の第2範囲に関する前記クラスタ化係数を判定し、前記データベース・マネージャが、前記第1索引の前記クラスタ化係数を前記第2索引の前記クラスタ化係数と比較することによって、前記第2索引と比較した前記第1索引の相対効率を判定し、前記データベース・マネージャが、前記それぞれのクラスタ化係数によって示される相対効率に基づいて、前記データベースの照会のために前記第1索引および前記第2索引の1つを選択する、請求項1に記載の装置。
  4. 前記データベース・マネージャが、前記それぞれのクラスタ化係数によって示される 相対効率に基づいて、前記データベースの照会のために前記第1索引および前記第2索引の1つを選択する、請求項2又は3に記載の装置。
  5. 前記クラスタ化係数計算機構が、さらに、前記データベース内の選択された索引の異なる範囲での前記クラスタ化係数の分布を判定する、請求項1又は2に記載の装置。
  6. 前記クラスタ化係数計算機構が、前記ブロック・サンプリングから生成されたキーと前記キーに対応するページとの順序付けられたリストから前記少なくとも1つの行列を生成し、前記キーはデータベース内の情報を突き止めるための判断基準を指定する、請求項1又は2に記載の装置。
  7. 前記クラスタ化係数計算機構が、少なくとも1つのディジタル画像圧縮技法を使用して、前記少なくとも1つの行列のサイズを縮小する、請求項1又は2に記載の装置。
  8. 前記ディジタル画像圧縮技法が、特異値分解を含む、請求項に記載の装置。
  9. 少なくとも1つのプロセッサと、
    前記少なくとも1つのプロセッサに結合されたメモリと、
    前記メモリ内に常駐するデータベースであって、前記データベースが複数の索引を含み、前記複数の索引のそれぞれが少なくとも1つのキーと、前記キーを満足する前記データベース内の少なくとも1つの対応するレコードへの参照とを有前記データベースが、前記データベースへの照会を管理するデータベース・マネージャをさらにみ、前記キーはデータベース内の情報を突き止めるための判断基準を指定する、前記データベースと、
    前記メモリ内に常駐し、前記少なくとも1つのプロセッサによって実行されるクラスタ化係数計算機構であって、前記クラスタ化係数計算機構が、前記データベース内の選択された索引からの複数のランダムな物理データ・ページのブロック・サンプリングを実行し、前記ブロック・サンプリングからのキー前記キーに対応するページとの順序付けられたリストを生成し、前記順序付けられたリストから2次元ビットマップを生成し、前記2次元ビットマップを処理して少なくとも1つの行列を生成、少なくとも1つのディジタル画像圧縮技法を使用して前記少なくとも1つの行列のサイズを縮小し、前記縮小された行列を処理して前記選択された索引の指定された範囲に関するクラスタ化係数を判定し、前記クラスタ化係数計算機構が、前記データベースの第1索引内の第1範囲に関する前記クラスタ化係数を判定し、前記データベースの第2索引内の第2範囲に関する前記クラスタ化係数を判定する、クラスタ化係数計算機構と
    を含み、前記データベース・マネージャが、前記第1索引の前記クラスタ化係数を前記第2索引の前記クラスタ化係数と比較することによって、前記第2索引と比較した前記第1索引の相対効率を判定し、前記データベース・マネージャが、前記それぞれのクラスタ化係数によって示される相対効率に基づいて、前記データベースの照会のために前記第1索引および前記第2索引の1つを選択する
    装置。
  10. データベース内の指定された範囲に関するクラスタ化係数を判定する方法であって、前記データベースを含む装置内の少なくとも1つのプロセッサが、クラスタ化係数計算機構を用いて、
    (A)前記指定された範囲から複数のランダムな物理データ・ページをブロック・サンプリングするステップと、
    (B)前記ブロック・サンプリングでの情報から少なくとも1つの行列を生成するステップと、
    (C)前記少なくとも1つの行列を処理して前記データベースの前記指定された範囲に関するクラスタ化係数を判定するステップであって、前記データベース内の前記指定され た範囲が、前記データベースの索引の少なくとも一部を含む、前記判定するステップ
    実行する方法。
  11. データベース内の指定された範囲に関するクラスタ化係数を判定する方法であって、前記データベースを含む装置内の少なくとも1つのプロセッサが、クラスタ化係数計算機構を用いて、
    (A)前記指定された範囲から複数のランダムな物理データ・ページをブロック・サンプリングするステップと、
    (B)前記ブロック・サンプリングでの情報から少なくとも1つの行列を生成するステップと、
    (C)前記少なくとも1つの行列を処理して前記データベースの前記指定された範囲に関するクラスタ化係数を判定するステップと
    を実行し、前記データベース内の選択された索引の異なる範囲での前記クラスタ化係数の分布を判定するステップをさらに実行する、方法。
  12. データベース内の指定された範囲に関するクラスタ化係数を判定する方法であって、前記データベースを含む装置内の少なくとも1つのプロセッサが、クラスタ化係数計算機構を用いて、
    (A)前記指定された範囲から複数のランダムな物理データ・ページをブロック・サンプリングするステップと、
    (B)前記ブロック・サンプリングでの情報から少なくとも1つの行列を生成するステップと、
    (C)前記少なくとも1つの行列を処理して前記データベースの前記指定された範囲に関するクラスタ化係数を判定するステップと
    を実行し、
    ステップ(B)が、
    (B1)前記ブロック・サンプリングからのキー前記キーに対応するページとの順序付けられたリストを生成するステップと、
    (B2)前記順序付けられたリストから2次元ビットマップを生成するステップと、
    (B3)前記2次元ビットマップを処理して前記少なくとも1つの行列を生成するステップと
    を含む、方法。
  13. データベース内の指定された範囲に関するクラスタ化係数を判定する方法であって、前記データベースを含む装置内の少なくとも1つのプロセッサが、クラスタ化係数計算機構を用いて、
    (A)前記指定された範囲から複数のランダムな物理データ・ページをブロック・サンプリングするステップと、
    (B)前記ブロック・サンプリングでの情報から少なくとも1つの行列を生成するステップと、
    (C)前記少なくとも1つの行列を処理して前記データベースの前記指定された範囲に関するクラスタ化係数を判定するステップと
    を実行し、さらに少なくとも1つのディジタル画像圧縮技法を使用して前記少なくとも1つの行列のサイズを縮小するステップを実行する、方法。
  14. 前記ディジタル画像圧縮技法が、特異値分解を含む、請求項13に記載の方法。
  15. 1回目に、第1索引に関するクラスタ化係数を判定するために、ステップ(A)、(B)、および(C)が実行され、
    2回目に、第2索引に関するクラスタ化係数を判定するために、ステップ(A)、(B)、および(C)が実行され、
    前記少なくとも1つのプロセッサが、クラスタ化係数計算機構を用いて、前記第1索引および前記第2索引の前記クラスタ化係数に基づいて、前記データベースの照会のために前記第1索引および前記第2索引の1つを選択するステップをさらに実行する
    請求項10〜14のいずれか一項に記載の方法。
  16. データベース内の複数の範囲に関するクラスタ化係数分布を判定する方法であって、前記少なくとも1つのプロセッサが、クラスタ化係数計算機構を用いて、
    (A)前記データベースから複数のランダムな物理データ・ページをブロック・サンプリングするステップと、
    (B)前記ブロック・サンプリングからのキー前記キーに対応するページとの順序付けられたリストを生成するステップであって、前記キーはデータベース内の情報を突き止めるための判断基準を指定する、前記生成するステップと、
    (C)前記順序付けられたリストから2次元ビットマップを生成するステップと、
    (D)前記2次元ビットマップを処理して少なくとも1つの行列を生成するステップと
    (E)少なくとも1つのディジタル画像圧縮技法を使用して前記少なくとも1つの行列のサイズを縮小するステップと、
    (F)前記少なくとも1つの行列を処理して前記データベース内の指定された範囲に関するクラスタ化係数を判定するステップと、
    (G)前記データベース内の前記複数の範囲のそれぞれに関するクラスタ化係数を判定するためにステップ(A)から(F)を繰り返すステップと
    実行する方法。
  17. クラスタ化係数計算手順をコンピュータに実行させるためのプログラムを記録したコンピュータ可読記録媒体であって、
    前記クラスタ化係数計算手順が、データベースからの複数のランダムな物理データ・ページのブロック・サンプリングを実行し、前記ブロック・サンプリングでの情報から少なくとも1つの行列を生成し、前記少なくとも1つの行列を処理して前記データベース内の指定された範囲に関するクラスタ化係数を判定する手順であり、ここで前記データベース内の前記指定された範囲が前記データベースの索引の少なくとも一部を含む、コンピュータ可読記録媒体。
  18. クラスタ化係数計算手順をコンピュータに実行させるためのプログラムを記録したコンピュータ可読記録媒体であって、
    前記クラスタ化係数計算手順が、データベースからの複数のランダムな物理データ・ページのブロック・サンプリングを実行し、前記ブロック・サンプリングでの情報から少なくとも1つの行列を生成し、前記少なくとも1つの行列を処理して前記データベース内の指定された範囲に関するクラスタ化係数を判定する手順であり、
    前記クラスタ化係数計算手順がさらに、第1索引内の第1範囲に関する前記クラスタ化係数を判定し、第2索引内の第2範囲に関する前記クラスタ化係数を判定し、前記第1索引の前記クラスタ化係数を前記第2索引の前記クラスタ化係数と比較することによって、前記第2索引と比較した前記第1索引の相対効率を判定する手順である、コンピュータ記録媒体。
  19. 前記それぞれのクラスタ化係数によって示される前記相対効率に基づいて、前記データベースの照会のために前記第1索引および前記第2索引の1つを選択する、データベース・マネージャをさらに含む、請求項1に記載の記録媒体。
  20. 前記クラスタ化係数計算手順が、前記データベース内の選択された索引の異なる範囲での前記クラスタ化係数の分布を判定する手順をさらに含む、請求項17又は18に記載の記録媒体。
  21. 前記クラスタ化係数計算手順が、前記ブロック・サンプリングから生成されたキーと前記キーに対応するページとの順序付けられたリストから前記少なくとも1つの行列を生成する手順をさらに含み、前記キーはデータベース内の情報を突き止めるための判断基準を指定する、請求項17又は18に記載の記録媒体。
  22. 前記クラスタ化係数計算手順が、少なくとも1つのディジタル画像圧縮技法を使用して前記少なくとも1つの行列のサイズを縮小する手順をさらに含む、請求項17又は18に記載の記録媒体。
  23. 前記ディジタル画像圧縮技法が、特異値分解を含む、請求項22に記載の記録媒体。
  24. データベースであって、
    (A)データベース内の選択された索引からの複数のランダムな物理データ・ページのブロック・サンプリングを実行し、前記ブロック・サンプリングからのキーと、前記キーに対応するページとの順序付けられたリストを生成し、前記順序付けられたリストから2次元ビットマップを生成し、前記2次元ビットマップを処理して少なくとも1つの行列を生成し、少なくとも1つのディジタル画像圧縮技法を使用して前記少なくとも1つの行列のサイズを縮小し、前記縮小された行列を処理して前記選択された索引の指定された範囲に関するクラスタ化係数を判定するクラスタ化係数計算機構であって、前記クラスタ化係数計算機構が、前記データベースの第1索引内の第1範囲に関する前記クラスタ化係数を判定し、前記データベースの第2索引内の第2範囲に関する前記クラスタ化係数を判定する、前記クラスタ化係数計算機構と、
    (B)前記第1索引の前記クラスタ化係数を前記第2索引の前記クラスタ化係数と比較することによって、前記第2索引と比較した前記第1索引の相対効率を判定するデータベース・マネージャであって、前記データベース・マネージャが、前記それぞれのクラスタ化係数によって示される前記相対効率に基づいて、前記データベースの照会のために前記第1索引および前記第2索引の1つを選択する、前記データベース・マネージャと
    を含むデータベースが記録されたコンピュータ可読記録媒体。
JP2002085100A 2001-03-27 2002-03-26 ブロック・レベル・サンプリングを使用してデータベースのクラスタ化係数を判定する装置および方法 Expired - Fee Related JP3798719B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US09/818044 2001-03-27
US09/818,044 US6785684B2 (en) 2001-03-27 2001-03-27 Apparatus and method for determining clustering factor in a database using block level sampling

Publications (2)

Publication Number Publication Date
JP2002342136A JP2002342136A (ja) 2002-11-29
JP3798719B2 true JP3798719B2 (ja) 2006-07-19

Family

ID=25224505

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2002085100A Expired - Fee Related JP3798719B2 (ja) 2001-03-27 2002-03-26 ブロック・レベル・サンプリングを使用してデータベースのクラスタ化係数を判定する装置および方法

Country Status (3)

Country Link
US (1) US6785684B2 (ja)
JP (1) JP3798719B2 (ja)
CA (1) CA2373224A1 (ja)

Families Citing this family (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030005087A1 (en) * 2001-05-24 2003-01-02 Microsoft Corporation Server side sampling of databases
US7360067B2 (en) 2002-12-12 2008-04-15 International Business Machines Corporation Method and data processing system for microprocessor communication in a cluster-based multi-processor wireless network
US7493417B2 (en) 2002-12-12 2009-02-17 International Business Machines Corporation Method and data processing system for microprocessor communication using a processor interconnect in a multi-processor system
US7359932B2 (en) 2002-12-12 2008-04-15 International Business Machines Corporation Method and data processing system for microprocessor communication in a cluster-based multi-processor system
US7356568B2 (en) 2002-12-12 2008-04-08 International Business Machines Corporation Method, processing unit and data processing system for microprocessor communication in a multi-processor system
US7437397B1 (en) * 2003-04-10 2008-10-14 At&T Intellectual Property Ii, L.P. Apparatus and method for correlating synchronous and asynchronous data streams
US20050246330A1 (en) * 2004-03-05 2005-11-03 Giang Phan H System and method for blocking key selection
US7406477B2 (en) * 2004-03-12 2008-07-29 Sybase, Inc. Database system with methodology for automated determination and selection of optimal indexes
US20050223019A1 (en) * 2004-03-31 2005-10-06 Microsoft Corporation Block-level sampling in statistics estimation
US20060064365A1 (en) * 2004-09-21 2006-03-23 Yancey William F System and method for audit sampling
US7966343B2 (en) * 2008-04-07 2011-06-21 Teradata Us, Inc. Accessing data in a column store database based on hardware compatible data structures
US8176021B2 (en) * 2008-06-02 2012-05-08 Microsoft Corporation Optimized reverse key indexes
US8433959B1 (en) 2009-09-09 2013-04-30 The United States Of America As Represented By The Secretary Of The Navy Method for determining hard drive contents through statistical drive sampling
JP5061173B2 (ja) * 2009-11-13 2012-10-31 株式会社日立製作所 データベース管理方法、データベース管理装置及びデータベース管理プログラム
US8626770B2 (en) 2010-05-03 2014-01-07 International Business Machines Corporation Iceberg query evaluation implementing a compressed bitmap index
US8341181B2 (en) * 2010-10-21 2012-12-25 Unisys Corporation Method for performance tuning a database
US9021050B2 (en) * 2012-08-31 2015-04-28 Yume, Inc. Network service system and method with off-heap caching
EP2770446A4 (en) * 2012-12-28 2015-01-14 Huawei Tech Co Ltd DATA PROCESSING AND DEVICE
US9390428B2 (en) * 2013-03-13 2016-07-12 Salesforce.Com, Inc. Systems, methods, and apparatuses for rendering scored opportunities using a predictive query interface
US9262938B2 (en) 2013-03-15 2016-02-16 International Business Machines Corporation Combining different type coercion components for deferred type evaluation
CN106227739B (zh) * 2016-07-13 2020-01-21 克拉玛依红有软件有限责任公司 一种实现基于多任务的数据请求方法
US10817540B2 (en) 2016-09-02 2020-10-27 Snowflake Inc. Incremental clustering maintenance of a table

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5544352A (en) * 1993-06-14 1996-08-06 Libertech, Inc. Method and apparatus for indexing, searching and displaying data
US5926812A (en) * 1996-06-20 1999-07-20 Mantra Technologies, Inc. Document extraction and comparison method with applications to automatic personalized database searching
US6807537B1 (en) * 1997-12-04 2004-10-19 Microsoft Corporation Mixtures of Bayesian networks
US6389436B1 (en) * 1997-12-15 2002-05-14 International Business Machines Corporation Enhanced hypertext categorization using hyperlinks
US6374251B1 (en) * 1998-03-17 2002-04-16 Microsoft Corporation Scalable system for clustering of large databases
US6049797A (en) * 1998-04-07 2000-04-11 Lucent Technologies, Inc. Method, apparatus and programmed medium for clustering databases with categorical attributes
US6347313B1 (en) * 1999-03-01 2002-02-12 Hewlett-Packard Company Information embedding based on user relevance feedback for object retrieval
US6591007B1 (en) * 1999-11-16 2003-07-08 International Business Machines Corporation Method and apparatus for representing colored surfaces via a surface color code book
US6633882B1 (en) * 2000-06-29 2003-10-14 Microsoft Corporation Multi-dimensional database record compression utilizing optimized cluster models
US6728728B2 (en) * 2000-07-24 2004-04-27 Israel Spiegler Unified binary model and methodology for knowledge representation and for data and information mining
US6654743B1 (en) * 2000-11-13 2003-11-25 Xerox Corporation Robust clustering of web documents
US6519591B1 (en) * 2000-12-22 2003-02-11 Ncr Corporation Vertical implementation of expectation-maximization algorithm in SQL for performing clustering in very large databases

Also Published As

Publication number Publication date
US6785684B2 (en) 2004-08-31
CA2373224A1 (en) 2002-09-27
JP2002342136A (ja) 2002-11-29
US20020188601A1 (en) 2002-12-12

Similar Documents

Publication Publication Date Title
JP3798719B2 (ja) ブロック・レベル・サンプリングを使用してデータベースのクラスタ化係数を判定する装置および方法
Wei et al. AnalyticDB-V: a hybrid analytical engine towards query fusion for structured and unstructured data
US9805077B2 (en) Method and system for optimizing data access in a database using multi-class objects
US7987200B2 (en) Method and apparatus for predicting selectivity of database query join conditions using hypothetical query predicates having skewed value constants
JP6639420B2 (ja) フラッシュ最適化データ・レイアウトのための方法、フラッシュ最適化記憶のための装置、およびコンピュータ・プログラム
US5655080A (en) Distributed hash group-by cooperative processing
US6418430B1 (en) System for efficient content-based retrieval of images
US6374232B1 (en) Method and mechanism for retrieving values from a database
US7603370B2 (en) Method for duplicate detection and suppression
US20100257181A1 (en) Dynamic Hash Table for Efficient Data Access In A Relational Database System
US20070239673A1 (en) Removing nodes from a query tree based on a result set
US20110208754A1 (en) Organization of Data Within a Database
US20070143246A1 (en) Method and apparatus for analyzing the effect of different execution parameters on the performance of a database query
JPH11242674A (ja) 多次元データを表示する方法、プログラム記憶装置及び計算機用プログラム製品
JP2003030222A (ja) 大規模データベースにおける主要クラスタおよびアウトライア・クラスタの検索、検出および同定のための方法、システム、記録媒体、およびサーバ
JP2008525897A (ja) 適応型クエリ識別及び加速のためのシステム及び方法
US20040249782A1 (en) Method and system for highly efficient database bitmap index processing
US7925617B2 (en) Efficiency in processing queries directed to static data sets
US6925463B2 (en) Method and system for query processing by combining indexes of multilevel granularity or composition
US20230153286A1 (en) Method and system for hybrid query based on cloud analysis scene, and storage medium
Chen et al. Efficient similarity search in nonmetric spaces with local constant embedding
US7756853B2 (en) Frequent itemset counting using subsets of bitmaps
US20080215539A1 (en) Data ordering for derived columns in a database system
JP2004046612A (ja) データマッチング方法、データマッチング装置、データマッチングプログラムおよびコンピュータで読み取り可能な記録媒体
JP6562478B2 (ja) 情報処理装置、情報処理方法、及びプログラム

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20051122

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20060124

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20060124

RD12 Notification of acceptance of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7432

Effective date: 20060124

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20060126

TRDD Decision of grant or rejection written
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20060331

RD14 Notification of resignation of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7434

Effective date: 20060331

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20060331

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20060420

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090428

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100428

Year of fee payment: 4

LAPS Cancellation because of no payment of annual fees