JP3798719B2 - ブロック・レベル・サンプリングを使用してデータベースのクラスタ化係数を判定する装置および方法 - Google Patents
ブロック・レベル・サンプリングを使用してデータベースのクラスタ化係数を判定する装置および方法 Download PDFInfo
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/28—Databases characterised by their database models, e.g. relational or object models
- G06F16/284—Relational databases
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/28—Databases characterised by their database models, e.g. relational or object models
- G06F16/284—Relational databases
- G06F16/285—Clustering or classification
-
- Y—GENERAL 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
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/912—Applications of a database
- Y10S707/913—Multimedia
- Y10S707/915—Image
-
- Y—GENERAL 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
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99931—Database or file accessing
- Y10S707/99932—Access augmentation or optimizing
-
- Y—GENERAL 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
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99931—Database or file accessing
- Y10S707/99933—Query processing, i.e. searching
-
- Y—GENERAL 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
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99931—Database or file accessing
- Y10S707/99933—Query processing, i.e. searching
- Y10S707/99935—Query augmenting and refining, e.g. inexact access
-
- Y—GENERAL 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
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99931—Database or file accessing
- Y10S707/99933—Query processing, i.e. searching
- Y10S707/99936—Pattern matching access
-
- Y—GENERAL 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
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99931—Database or file accessing
- Y10S707/99937—Sorting
-
- Y—GENERAL 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
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99941—Database schema or data structure
- Y10S707/99942—Manipulating 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
【発明の属する技術分野】
本発明は、全般的にはコンピュータ・システムに関し、具体的には、コンピュータ・システム内のデータベースに関する。
【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を参照されたい)
上の論理を実行することによって、図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はソートされているので、下の論理によって示されるように、新しい値が見つかるまでキーの値を単純にバッファリングする。
【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】
である。Uの列は、AAtの固有ベクトルであり、Vの列は、AtAの固有ベクトルである。Sの対角線の特異値rは、AAtおよびAtAの両方の非0固有値の平方根である。これらの特異値は、大きさの降順で配置される。ベクトルuiが、行列Uの列であり、ベクトルviが、行列Vの列であり、siが、Aの特異値を表すならば、式(2)に示された関係が得られる。
【数2】
SVDの特性の1つが、行列内の最大の重みの情報を最小の重みの情報から分離できることである。行列Aのk個の最大の特異値(および対応する固有ベクトル)によって、行列内の最大の重みの情報が取り込まれる。k個の最大の特異値およびそれに対応する固有ベクトル(k<<r)を保管することによって、行列を近似することができる。
【0043】
k個の最大の特異値およびそれに対応する固有ベクトルを維持しながら、下記の論理を使用することによって別個のページの数(Distinct_Pages)を判定することができる。
N=ページ・サイズ(行数);
R=指定された索引範囲に含まれる行数
その後、式(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つのプロセッサと、
前記少なくとも1つのプロセッサに結合されたメモリと、
前記メモリ内に常駐するデータベースであって、前記データベースに対する照会を管理するデータベース・マネージャを含む、前記データベースと、
前記メモリ内に常駐し、前記少なくとも1つのプロセッサによって実行されるクラスタ化係数計算機構であって、前記クラスタ化係数計算機構が、前記データベースからの複数のランダムな物理データ・ページのブロック・サンプリングを実行し、前記ブロック・サンプリングでの情報から少なくとも1つの行列を生成し、前記少なくとも1つの行列を処理して前記データベース内の指定された範囲に関するクラスタ化係数を判定する、前記クラスタ化係数計算機構と
を含み、前記データベースが複数の索引を含み、前記複数の索引のそれぞれが少なくとも1つのキーと、前記キーを満足する前記データベース内の少なくとも1つの対応するレコードへの参照とを有し、前記クラスタ化係数計算機構が、第1索引内の第1範囲に関する前記クラスタ化係数を判定し、第2索引内の第2範囲に関する前記クラスタ化係数を判定し、前記データベース・マネージャが、前記第1索引の前記クラスタ化係数を前記第2索引の前記クラスタ化係数と比較することによって、前記第2索引と比較した前記第1索引の相対効率を判定し、前記データベース・マネージャが、前記それぞれのクラスタ化係数によって示される相対効率に基づいて、前記データベースの照会のために前記第1索引および前記第2索引の1つを選択し、前記データベース・マネージャが、前記判定されたクラスタ化係数に基づいて前記データベースに対する照会の性能を推定する
装置。 - 前記データベースが複数の索引を含み、前記複数の索引のそれぞれが少なくとも1つのキーと、前記キーを満足する前記データベース内の少なくとも1つの対応するレコードへの参照とを有し、前記クラスタ化係数計算機構が、第1索引内の第1範囲に関する前記クラスタ化係数を判定し、第2索引内の第2範囲に関する前記クラスタ化係数を判定し、前記データベース・マネージャが、前記第1索引の前記クラスタ化係数を前記第2索引の前記クラスタ化係数と比較することによって、前記第2索引と比較した前記第1索引の相対効率を判定し、前記データベース・マネージャが、前記それぞれのクラスタ化係数によって示される相対効率に基づいて、前記データベースの照会のために前記第1索引および前記第2索引の1つを選択する、請求項1に記載の装置。
- 前記データベース・マネージャが、前記それぞれのクラスタ化係数によって示される前 記相対効率に基づいて、前記データベースの照会のために前記第1索引および前記第2索引の1つを選択する、請求項2又は3に記載の装置。
- 前記クラスタ化係数計算機構が、さらに、前記データベース内の選択された索引の異なる範囲での前記クラスタ化係数の分布を判定する、請求項1又は2に記載の装置。
- 前記クラスタ化係数計算機構が、前記ブロック・サンプリングから生成されたキーと前記キーに対応するページとの順序付けられたリストから前記少なくとも1つの行列を生成し、前記キーはデータベース内の情報を突き止めるための判断基準を指定する、請求項1又は2に記載の装置。
- 前記クラスタ化係数計算機構が、少なくとも1つのディジタル画像圧縮技法を使用して、前記少なくとも1つの行列のサイズを縮小する、請求項1又は2に記載の装置。
- 前記ディジタル画像圧縮技法が、特異値分解を含む、請求項7に記載の装置。
- 少なくとも1つのプロセッサと、
前記少なくとも1つのプロセッサに結合されたメモリと、
前記メモリ内に常駐するデータベースであって、前記データベースが複数の索引を含み、前記複数の索引のそれぞれが少なくとも1つのキーと、前記キーを満足する前記データベース内の少なくとも1つの対応するレコードへの参照とを有し、前記データベースが、前記データベースへの照会を管理するデータベース・マネージャをさらに含み、前記キーはデータベース内の情報を突き止めるための判断基準を指定する、前記データベースと、
前記メモリ内に常駐し、前記少なくとも1つのプロセッサによって実行されるクラスタ化係数計算機構であって、前記クラスタ化係数計算機構が、前記データベース内の選択された索引からの複数のランダムな物理データ・ページのブロック・サンプリングを実行し、前記ブロック・サンプリングからのキーと前記キーに対応するページとの順序付けられたリストを生成し、前記順序付けられたリストから2次元ビットマップを生成し、前記2次元ビットマップを処理して少なくとも1つの行列を生成し、少なくとも1つのディジタル画像圧縮技法を使用して前記少なくとも1つの行列のサイズを縮小し、前記縮小された行列を処理して前記選択された索引の指定された範囲に関するクラスタ化係数を判定し、前記クラスタ化係数計算機構が、前記データベースの第1索引内の第1範囲に関する前記クラスタ化係数を判定し、前記データベースの第2索引内の第2範囲に関する前記クラスタ化係数を判定する、クラスタ化係数計算機構と
を含み、前記データベース・マネージャが、前記第1索引の前記クラスタ化係数を前記第2索引の前記クラスタ化係数と比較することによって、前記第2索引と比較した前記第1索引の相対効率を判定し、前記データベース・マネージャが、前記それぞれのクラスタ化係数によって示される相対効率に基づいて、前記データベースの照会のために前記第1索引および前記第2索引の1つを選択する
装置。 - データベース内の指定された範囲に関するクラスタ化係数を判定する方法であって、前記データベースを含む装置内の少なくとも1つのプロセッサが、クラスタ化係数計算機構を用いて、
(A)前記指定された範囲から複数のランダムな物理データ・ページをブロック・サンプリングするステップと、
(B)前記ブロック・サンプリングでの情報から少なくとも1つの行列を生成するステップと、
(C)前記少なくとも1つの行列を処理して前記データベースの前記指定された範囲に関するクラスタ化係数を判定するステップであって、前記データベース内の前記指定され た範囲が、前記データベースの索引の少なくとも一部を含む、前記判定するステップと
を実行する方法。 - データベース内の指定された範囲に関するクラスタ化係数を判定する方法であって、前記データベースを含む装置内の少なくとも1つのプロセッサが、クラスタ化係数計算機構を用いて、
(A)前記指定された範囲から複数のランダムな物理データ・ページをブロック・サンプリングするステップと、
(B)前記ブロック・サンプリングでの情報から少なくとも1つの行列を生成するステップと、
(C)前記少なくとも1つの行列を処理して前記データベースの前記指定された範囲に関するクラスタ化係数を判定するステップと
を実行し、前記データベース内の選択された索引の異なる範囲での前記クラスタ化係数の分布を判定するステップをさらに実行する、方法。 - データベース内の指定された範囲に関するクラスタ化係数を判定する方法であって、前記データベースを含む装置内の少なくとも1つのプロセッサが、クラスタ化係数計算機構を用いて、
(A)前記指定された範囲から複数のランダムな物理データ・ページをブロック・サンプリングするステップと、
(B)前記ブロック・サンプリングでの情報から少なくとも1つの行列を生成するステップと、
(C)前記少なくとも1つの行列を処理して前記データベースの前記指定された範囲に関するクラスタ化係数を判定するステップと
を実行し、
ステップ(B)が、
(B1)前記ブロック・サンプリングからのキーと前記キーに対応するページとの順序付けられたリストを生成するステップと、
(B2)前記順序付けられたリストから2次元ビットマップを生成するステップと、
(B3)前記2次元ビットマップを処理して前記少なくとも1つの行列を生成するステップと
を含む、方法。 - データベース内の指定された範囲に関するクラスタ化係数を判定する方法であって、前記データベースを含む装置内の少なくとも1つのプロセッサが、クラスタ化係数計算機構を用いて、
(A)前記指定された範囲から複数のランダムな物理データ・ページをブロック・サンプリングするステップと、
(B)前記ブロック・サンプリングでの情報から少なくとも1つの行列を生成するステップと、
(C)前記少なくとも1つの行列を処理して前記データベースの前記指定された範囲に関するクラスタ化係数を判定するステップと
を実行し、さらに少なくとも1つのディジタル画像圧縮技法を使用して前記少なくとも1つの行列のサイズを縮小するステップを実行する、方法。 - 前記ディジタル画像圧縮技法が、特異値分解を含む、請求項13に記載の方法。
- 1回目に、第1索引に関するクラスタ化係数を判定するために、ステップ(A)、(B)、および(C)が実行され、
2回目に、第2索引に関するクラスタ化係数を判定するために、ステップ(A)、(B)、および(C)が実行され、
前記少なくとも1つのプロセッサが、クラスタ化係数計算機構を用いて、前記第1索引および前記第2索引の前記クラスタ化係数に基づいて、前記データベースの照会のために前記第1索引および前記第2索引の1つを選択するステップをさらに実行する
請求項10〜14のいずれか一項に記載の方法。 - データベース内の複数の範囲に関するクラスタ化係数分布を判定する方法であって、前記少なくとも1つのプロセッサが、クラスタ化係数計算機構を用いて、
(A)前記データベースから複数のランダムな物理データ・ページをブロック・サンプリングするステップと、
(B)前記ブロック・サンプリングからのキーと前記キーに対応するページとの順序付けられたリストを生成するステップであって、前記キーはデータベース内の情報を突き止めるための判断基準を指定する、前記生成するステップと、
(C)前記順序付けられたリストから2次元ビットマップを生成するステップと、
(D)前記2次元ビットマップを処理して少なくとも1つの行列を生成するステップと
(E)少なくとも1つのディジタル画像圧縮技法を使用して前記少なくとも1つの行列のサイズを縮小するステップと、
(F)前記少なくとも1つの行列を処理して前記データベース内の指定された範囲に関するクラスタ化係数を判定するステップと、
(G)前記データベース内の前記複数の範囲のそれぞれに関するクラスタ化係数を判定するためにステップ(A)から(F)を繰り返すステップと
を実行する方法。 - クラスタ化係数計算手順をコンピュータに実行させるためのプログラムを記録したコンピュータ可読記録媒体であって、
前記クラスタ化係数計算手順が、データベースからの複数のランダムな物理データ・ページのブロック・サンプリングを実行し、前記ブロック・サンプリングでの情報から少なくとも1つの行列を生成し、前記少なくとも1つの行列を処理して前記データベース内の指定された範囲に関するクラスタ化係数を判定する手順であり、ここで前記データベース内の前記指定された範囲が前記データベースの索引の少なくとも一部を含む、コンピュータ可読記録媒体。 - クラスタ化係数計算手順をコンピュータに実行させるためのプログラムを記録したコンピュータ可読記録媒体であって、
前記クラスタ化係数計算手順が、データベースからの複数のランダムな物理データ・ページのブロック・サンプリングを実行し、前記ブロック・サンプリングでの情報から少なくとも1つの行列を生成し、前記少なくとも1つの行列を処理して前記データベース内の指定された範囲に関するクラスタ化係数を判定する手順であり、
前記クラスタ化係数計算手順がさらに、第1索引内の第1範囲に関する前記クラスタ化係数を判定し、第2索引内の第2範囲に関する前記クラスタ化係数を判定し、前記第1索引の前記クラスタ化係数を前記第2索引の前記クラスタ化係数と比較することによって、前記第2索引と比較した前記第1索引の相対効率を判定する手順である、コンピュータ記録媒体。 - 前記それぞれのクラスタ化係数によって示される前記相対効率に基づいて、前記データベースの照会のために前記第1索引および前記第2索引の1つを選択する、データベース・マネージャをさらに含む、請求項18に記載の記録媒体。
- 前記クラスタ化係数計算手順が、前記データベース内の選択された索引の異なる範囲での前記クラスタ化係数の分布を判定する手順をさらに含む、請求項17又は18に記載の記録媒体。
- 前記クラスタ化係数計算手順が、前記ブロック・サンプリングから生成されたキーと前記キーに対応するページとの順序付けられたリストから前記少なくとも1つの行列を生成する手順をさらに含み、前記キーはデータベース内の情報を突き止めるための判断基準を指定する、請求項17又は18に記載の記録媒体。
- 前記クラスタ化係数計算手順が、少なくとも1つのディジタル画像圧縮技法を使用して前記少なくとも1つの行列のサイズを縮小する手順をさらに含む、請求項17又は18に記載の記録媒体。
- 前記ディジタル画像圧縮技法が、特異値分解を含む、請求項22に記載の記録媒体。
- データベースであって、
(A)データベース内の選択された索引からの複数のランダムな物理データ・ページのブロック・サンプリングを実行し、前記ブロック・サンプリングからのキーと、前記キーに対応するページとの順序付けられたリストを生成し、前記順序付けられたリストから2次元ビットマップを生成し、前記2次元ビットマップを処理して少なくとも1つの行列を生成し、少なくとも1つのディジタル画像圧縮技法を使用して前記少なくとも1つの行列のサイズを縮小し、前記縮小された行列を処理して前記選択された索引の指定された範囲に関するクラスタ化係数を判定するクラスタ化係数計算機構であって、前記クラスタ化係数計算機構が、前記データベースの第1索引内の第1範囲に関する前記クラスタ化係数を判定し、前記データベースの第2索引内の第2範囲に関する前記クラスタ化係数を判定する、前記クラスタ化係数計算機構と、
(B)前記第1索引の前記クラスタ化係数を前記第2索引の前記クラスタ化係数と比較することによって、前記第2索引と比較した前記第1索引の相対効率を判定するデータベース・マネージャであって、前記データベース・マネージャが、前記それぞれのクラスタ化係数によって示される前記相対効率に基づいて、前記データベースの照会のために前記第1索引および前記第2索引の1つを選択する、前記データベース・マネージャと
を含むデータベースが記録されたコンピュータ可読記録媒体。
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)
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)
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 |
-
2001
- 2001-03-27 US US09/818,044 patent/US6785684B2/en not_active Expired - Fee Related
-
2002
- 2002-02-25 CA CA002373224A patent/CA2373224A1/en not_active Abandoned
- 2002-03-26 JP JP2002085100A patent/JP3798719B2/ja not_active Expired - Fee Related
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 |