JPH08255170A - ソート付き検索処理装置 - Google Patents

ソート付き検索処理装置

Info

Publication number
JPH08255170A
JPH08255170A JP7083217A JP8321795A JPH08255170A JP H08255170 A JPH08255170 A JP H08255170A JP 7083217 A JP7083217 A JP 7083217A JP 8321795 A JP8321795 A JP 8321795A JP H08255170 A JPH08255170 A JP H08255170A
Authority
JP
Japan
Prior art keywords
index
sort
record
sorting
records
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.)
Pending
Application number
JP7083217A
Other languages
English (en)
Inventor
Makoto Kodera
誠 小寺
Akiyoshi Usui
明寿 碓氷
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.)
Oki Electric Industry Co Ltd
Original Assignee
Oki Electric Industry Co Ltd
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 Oki Electric Industry Co Ltd filed Critical Oki Electric Industry Co Ltd
Priority to JP7083217A priority Critical patent/JPH08255170A/ja
Publication of JPH08255170A publication Critical patent/JPH08255170A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

(57)【要約】 【目的】 データベースの検索処理を高速化する。 【構成】 アプリケーションプログラム30からレコー
ド11のソートキーとソート順が指定されると、インデ
クスソート可否判断処理機構21はインデクス12とそ
の検索条件とを比較する。インデクス12の予めソート
された値がソートキーと一致すれば、インデクス12を
利用してソート無しに既にソートされたレコードをソー
トキー順に取り出せる。インデクス12の構造によって
は、ソートキーが2以上あってもこれが可能となる。ま
た、インデクスのソート順と検索条件のソート順が逆の
場合には、インデクスを逆に読むことによって、同様の
取り出しが可能となる。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、データベース等の大量
のレコードを格納している装置から、指定された条件を
満たすレコードを、指定された順序に取り出す処理を高
速に実行するためのソート付き検索処理装置に関するも
のである。
【0002】
【従来の技術】関係型(リレーショナル)データベース
等のデータベースでは、多くはレコード単位でデータを
格納している。なお、関係型データベースのレコード
は、行あるいはタプルとも呼ばれている。これらのレコ
ードは、論理的に区切られた1つ以上の列、あるいはア
トリビュートと呼ばれる項目から構成されている。
【0003】データベースはこのようなレコードをディ
スク等の二次記憶装置上に格納するが、どのような順序
でこれらのレコードを格納するかは特に規定されていな
い。多くの場合、レコードは投入された順序に二次記憶
装置上に格納されていく。しかし、レコードの投入と削
除を頻繁に繰り返すような処理が行われる場合には、デ
ィスク上の領域を有効に利用する必要性から、削除され
たレコードの領域に、新たに投入されたレコードが重ね
て格納される。このような場合に、データベースに投入
されたレコードがどのような順序で格納されているか、
データベースをアクセスする側およびDBMS(データ
ベース管理システム)からも予め知ることはできない。
なお、この明細書において、データベースをアクセスす
る側のことを、以後アプリケーションプログラムと呼ぶ
ことにする。
【0004】一方、アプリケーションプログラムの観点
からは、データベースに格納したレコードを、ある順序
で取り出すことが必要な場合が多い。その多くの場合、
レコードを構成するいずれかの項目の値の昇順あるいは
降順に、レコードを順序づけて取り出す。さらに、格納
したレコードを無条件で全て取り出すほか、ある条件を
指定して、その条件を満足するレコードだけを、指定し
た順序でアプリケーション側に取り出すことを要求され
ることも多い。このような要求の代表的なものとして、
下記の文献の規定するSQL言語中のORDER BY句、GROU
P BY句の処理、および各種の集合演算とその拡張機能が
ある。 参考文献:日本規格協会、データベース言語SQL JI
S-X-3005-1990 これらのデータベース検索処理は、いずれも条件に該当
するレコードを全てデータベースから取り出して所定の
順序にソートし直す。以下その手順を説明する。
【0005】(1) まず、アプリケーションプログラム
が、DBMSに対して処理要求を送信する。この処理要
求の内容は、例えば、「ある条件を満たすレコードを探
し出し、これに、指定された条件のもとにソート処理を
加えてアプリケーション側に返却せよ」というものであ
る。 (2) DBMSは指定された条件を満足するレコードすべ
てを、一旦二次記憶装置や主記憶装置上のバッファ領域
にあるデータベースから取り出し、他のソートワークエ
リアに格納する。
【0006】(3) そのソートワークエリアを使って、取
り出したレコード全てを指定された順序にソートし直
す。既に述べたように、DBMSも、レコードがどのよ
うな順序でディスク上に格納されているか予め知ること
ができないからである。 (4) その後指定された条件に該当するレコード全てを取
り出し、DBMSは、ソートの終了したレコードをアプ
リケーションに返却する。
【0007】次に、このようなソートを伴う検索処理
を、より高速に実行するために、ソート処理装置を付加
した場合の処理手順を説明する。なお、ここで付加した
ソート処理装置は、ソートの対象となるレコードのデー
タベースからの取り出しと、そのソートし直しの処理を
高速化するための専用のハードウェアで、DBMSの行
っていたレコードの取り出しとソート処理を実行する。 (1) まず、アプリケーションプログラムから、ソートを
伴うレコードの検索処理要求を受け取ったDBMSは、
「条件に該当するレコードを取り出して、指定された順
序にソートせよ」という要求をソート処理装置上のソー
トエンジンに送信する。
【0008】(2) ソートエンジンはデータベースより、
処理要求に指定された条件を満足するレコードを取り出
し、ソート処理装置内のソートワークエリアを使って、
指定された順序にそれらのレコードをソートし直す。 (3) 更に、指定された条件を満足するレコードを全てデ
ータベースから取り出して、所定の順序にソートし直し
終えると、ソートエンジンはDBMSに対してソートを
完了したレコードの返却を開始する。 (4) また、あるいはDBMSがソートエンジンから処理
の完了を通知されると、DBMSが、ソートワークエリ
アから逐次にソート済みのレコードを取り出してアプリ
ケーションに返却する処理を行う。
【0009】
【発明が解決しようとする課題】ところで、上記のよう
な従来の検索処理装置には次のような解決すべき課題が
あった。 (1) 処理時間が長くかかる 条件に該当するレコードをすべてデータベースから取り
出してソートし直す処理が必須であるために、処理の対
象となるレコードが極めて多数に上る場合、アプリケー
ション側にレコードが返却されるに至るまでに長大な時
間を必要とする。例えば、該当レコード中の最大値を求
める処理では、アプリケーション側に最終的に返却する
必要のあるレコードがただの1件であるにもかかわら
ず、条件を満たすレコードが数千件に上った場合には、
この数千件のレコードを取り出してソートし直す処理を
要求される。このため、処理時間は技術的に満足できる
レベルに達しなかった。
【0010】(2) ソート処理装置を使う場合の制約が大
きい 専用のハードウェア装置を使用するとシステムが高価
である。 特定の計算機にしか接続できないことが多く、使用上
の制約が大きい。 汎用の計算機の高速化に対して、専用のハードウェア
の高速化が追いつかず、すみやかに陳腐化する。
【0011】
【課題を解決するための手段】本発明は上記の点を解決
するため次の構成を採用する。本発明の装置は、順不同
にレコードを格納するための記憶装置と、この記憶装置
に格納されたレコード中の特定の値をソートして、その
値とレコード格納場所を示すポインタと対応付けたイン
デクスと、アプリケーションプログラムに対して、レコ
ードの検索処理に際しての任意のソートキー指定と、指
定されたソートキーに対して昇順または降順のソート方
向指定を許す検索条件指定機構と、検索条件とインデク
スの構造とを比較して、指定されたソート処理を別途行
うべきか、ソート処理を省略しインデクスを経由したレ
コードの読み出しによっても、指定されたソートと同じ
効果を得られるか否かを判断するためのインデクスソー
ト可否判断処理機構とを備える。
【0012】なお、検索条件とインデクスの構造とを比
較して、ソート処理を省略しても、指定されたソートと
同じ効果を得られると判断した場合に、その効果を得る
ためのレコードの読み出し方法を決定するレコード読み
出し機構を備えるとよい。また、ソート処理を省略して
も、指定されたソートと同じ効果を得られると判断した
場合に、ツリー構造のインデクスを利用して、昇順、降
順の何れの方向のソート指定に対してもソート処理を省
略して同じソートの効果を得るレコードの読み出し機構
を持つとよい。
【0013】
【作用】アプリケーションプログラムからレコードのソ
ートキーとソート順が指定されると、インデクスソート
可否判断処理機構はインデクスとその検索条件とを比較
する。インデクスの予めソートされた値がソートキーと
一致すれば、インデクスを利用してソート無しに既にソ
ートされたレコードをソートキー順に取り出せる。イン
デクスの構造によっては、ソートキーが2以上あっても
これが可能となる。また、インデクスのソート順と検索
条件のソート順が逆の場合には、インデクスを逆に読む
ことによって、同様の取り出しが可能となる。
【0014】本発明ではデータベースのレコードとは別
に用意されたインデクスをデータ取り出しに用いる。ソ
ート処理を行った後でレコードを読み出す代わりに、イ
ンデクス順に読み出しを行う。こうすれば、レコード全
件を取り出した上でソートし直し、該当するレコードを
取り出すといった処理を回避して、全体としてデータベ
ース検索処理時間を短縮できる。なお、二次記憶装置に
はレコードが任意の順に格納されていればよく、インデ
クスは少なくともレコード中の特定の値をソートして、
その値とレコード格納場所を示すポインタとを対応付け
た構成のものであればよい。この場合、その値は1個で
も複数でもよい。検索条件とインデクスとの構造比較
は、具体的にはソートキーとインデクスの値が一致する
かどうかの比較となる。
【0015】
【実施例】以下、本発明を図の実施例を用いて詳細に説
明する。 [ハードウェア]図1は、本発明のソート付き検索処理
装置の実施例を示すブロック図である。データベース1
0はアプリケーションプログラム30によりデータベー
ス管理システム(DBMS)20を介してアクセスされ
る。データベース10は関係型データベースを構成する
レコード11とインデクス12により構成され、磁気デ
ィスク等の二次記憶装置に格納されている。DBMS2
0の内部で従来のデータベース管理の処理を行うのが制
御部本体23である。
【0016】インデクスソート可否判断処理機構21
は、アプリケーションプログラム30からの、ソートを
伴ったレコード検索要求の内容と、データベース10に
格納されたインデクス12の構造を比較した上で、イン
デクス12を経由したレコードの読み出しにより、改め
てソート処理を行わなくても、指定された順序にレコー
ドを取り出してくることが可能であるか否かを判断する
モジュールである。レコード読み出し機構22は、イン
デクスソート可否判断処理機構21の判断に基づき、イ
ンデクス12を経由することで、改めてソート処理を施
すことなく指定された順序にレコードを取り出してくる
処理モジュールである。検索条件指定機構24はアプリ
ケーションプログラム30から入力する検索条件を受け
入れて保持するレジスタ等から構成される。
【0017】[インデクス]一方、既に説明したように
インデクス12自体は、レコードに対して付加される別
のデータ構造であり、レコード11の検索を高速化する
ために古くから使われてきた。インデクス12の構造と
動作の詳細については、以下の参考文献に詳細に解説さ
れている。以下、簡単にそのインデクスの構造と動作の
概要を説明する。 参考文献:滝沢誠、「データベースシステム入門技術解
説〜基礎から詳細技術まで〜」、ソフト・リサーチ・セ
ンタ、1991年
【0018】図2は、インデクス12の代表的な構造を
示す説明図である。図2に示すように、インデクス12
は木(ツリー)構造を持つ。インデクス12は、レコー
ド11の項目の値に対して索引をつける機構と考えてよ
い。ツリー構造を持ったインデクス12は、根(root:
ルート)、中間(interior:インテリア)、葉(leaf:
リーフ)という単位から構成される。以下では、これら
の単位をノード(node)と呼ぶ。各ノードはポインタの
集合である。ルートノードからはその直下のインテリア
ノードへのポインタが張られており、各インテリアノー
ドからは更にその直下のノードへのポインタが伸びてい
る。レコードの件数により、ルートノードからリーフノ
ードに達するまでの段数(深さ、または高さ)は変化す
る。
【0019】リーフノードには、インデクスの付けられ
ている列の値(以後、キー値と呼ぶ)がソートされて格
納されていることが特徴である。キー値を持つ実レコー
ドが実際に格納されている論理的な(あるいは物理的
な)アドレスは、リーフノードにセットで格納されてい
る。以下、このセットを「エントリ」と呼ぶ。リーフノ
ードに格納されているエントリのキー値は、左側のリー
フノードN1から右側のリーフノードN20の方向に一
定順序にソートされている。ソートの方向は多くは昇順
であるが、降順であってもよい。
【0020】アプリケーションが「ある条件に該当する
レコードを検索せよ」とする要求を出した場合、その条
件は、1つ以上のレコードの項目に対する等号、あるい
は不等号条件の組み合わせである。「項目1の値がXに
等しいものを求めよ」とは、条件の例としてもっとも単
純なものの例の1つである。このような条件を与えられ
たDBMSは、その項目(項目1)につけられたインデ
クスをたどる。最も上位又は(下位)のノード(ルート
ノード)内部のエントリから、該当するレコードに関す
る情報がインテリアノードN6に格納されていることを
知ったDBMS20は、インテリアノードN6を読み、
ついでインテリアノードN6内部のエントリの情報から
リーフノードN18に「項目1がXに等しい」レコード
の格納位置の情報が配置されていることを知る。
【0021】リーフノードN18のエントリ情報から該
当レコードの格納位置を知ることで、DBMS20はイ
ンデクス12を持たない場合に比較してはるかに少ない
二次記憶装置からの読み出し回数で、該当レコードを取
り出すことが可能になる。このようにインデクスは本
来、与えられた条件を満足するレコードを高速に取り出
すための付加的なデータ構造であって、ソートを伴う検
索処理とは直接の関連を持たないものだった。本発明で
はこのインデクスをソート用のツールとして利用する。
【0022】[検索条件]以下に、本発明のソート付き
検索処理装置の動作を説明する。図3は検索条件の内容
説明図で、図4は図1に示した装置の動作説明図であ
る。アプリケーションプログラム30は、検索条件指定
機構24を介して、DBMS20を構成する制御部本体
23に対してソートを伴うレコードの検索要求を発行す
る(ステップS1)。これは検索終了まで、検索条件指
定機構24に保持される。最初に、説明の簡単のために
SQLの構文を用いて、図3に示すような処理の要求を
発行するものとする。
【0023】図3は、「RECORD」と名前づけられたレコ
ードのならび(関係型データベースでは表と呼ばれる)
から、そのレコードの項目「COLUMN1 」の値が“10”
を超え、かつ「COLUMN2 」の値が“20”に等しいレコ
ードすべてについて、レコードの項目「COLUMN1 」で昇
順にソートを行って、アプリケーションに返却せよとい
う要求である。以降、レコードの項目「COLUMN1 」がソ
ートの対象となるキー値であるという意味で「ソートキ
ー」と呼ぶことにする。
【0024】[検索実行]このような処理要求を受け取
った制御部本体23は、インデクスソート可否判断処理
機構21に、検索条件からインデクスを経由した処理が
可能であるか否かの判断を要求する(ステップS2)。
この要求に対して、インデクスソート可否判断処理機構
21は、検索条件と検索の対象となっているレコード1
1のならびに付加されているインデクス12の構造を比
較検討して、どのような処理を行えば、改めてレコード
11をソートせずに要求された順序にレコード11を取
り出し得るかを判断する。上述したSQLによる例であ
れば、インデクスソート可否判断処理機構21は以下の
手順で判断を行うことができる。
【0025】まず、検索条件と検索の対象となっている
レコードのならびに付加されているインデクス12の構
造を比較する。この場合では、例えば検索条件とソート
の条件とに共通の項目「COLUMN1 」が現れることが直ち
に検出される。インデクス12が項目「COULMN1 」に対
して付加されていたものであるとする。この場合、まず
項目「COULMN1 」の値が10を超えるレコードの物理的
な格納位置を、インデクス12を経由して特定して、実
際のレコードを取り出せば、既に述べたインデクスの構
造の特徴から、取り出されるレコードが必ず項目「COUL
MN1 」の値で一定方向にソートされていることが保証さ
れることが明らかである。
【0026】ついで、取り出された実際のレコードにつ
いて、項目「COLUMN2 」の値が20に等しい物だけをア
プリケーションに返却すれば、改めてレコードをソート
し直すことなく、指定された条件を満足し、かつ指定さ
れた方向にソートされたレコードが取り出されてくる。
従って、インデクスソート可否判断処理機構21は、イ
ンデクス12を経由することでソート処理を省略するこ
とが可能である旨とその方法を制御部本体23に通知す
る(ステップS3)。もし、このような条件を満足でき
なければ、インデクスソート可否判断処理機構21は、
インデクス12を経由してのソート処理の省略は不可能
と判断して、やはりその旨を制御部本体23に通知する
(同ステップS3)。このような判断をもとに、制御部
本体23は、インデクスソート可否判断処理機構21か
ら受け取った処理の方法に関する情報に従い、インデク
ス12とレコード11の読み出し処理を実行し(ステッ
プS4)、得た結果を逐次にアプリケーションプログラ
ム30に返却する(ステップS5、S6)。
【0027】[検索条件]SQL等では、さらに複雑な
ソートを伴う検索処理の要求を許している。その1例
を、やはりSQLの構文で示すと以下の通りとなる。図
5は、検索条件の内容説明図(その2)である。これ
は、「RECORD」と名前づけられたレコードのならび(関
係型データベースでは表と呼ばれる)から、そのレコー
ドの項目「COLUMN1 」の値が10を超え、かつ「COLUMN
2 」の値が20を超えるレコードすべてについて、レコ
ードの項目「COLUMN1 」で昇順にソートを行い、そのそ
れぞれのレコードに対してレコードの項目「COLUMN2 」
で昇順にソートを行った上でアプリケーションに返却せ
よという要求である。
【0028】[検索実行]レコード11に対して付加さ
れたインデクス12が、項目「COLUMN1 」に対してのみ
作成されたものである場合、このような要求に対して
は、インデクスソート可否判断処理機構21はインデク
スを経由してソート処理を省略することが不可能と判断
する。しかし、複数の検索条件を組み合わせる場合、多
くのDBMSではそれら複数の検索条件に現れる複数の
項目を組み合わせたインデクスをレコードに対して付加
させて、検索の効率を上げる手段を提供している。その
ような組み合わせインデクス(以降、複合インデクス)
のエントリは、一般的に次のような構造を持つ。
【0029】図6及び図7は、実際の数値の例を当ては
めた複合インデクスの具体例を示したものである。図6
のように、複合インデクスのエントリは、項目「COLUMN
1 」の値でソートされ、同じ項目「COLUMN1 」の値を持
つレコードの項目「COLUMN2 」の値でソートされてい
る。これは、図5の検索条件で要求されているレコード
のソートの順序と一致する。図7を見れば、その構造が
より具体的に理解できる。項目イの順にソートされたレ
コードが、更に項目ロの順にソートされている。このた
め、複数のソートの項目を指定されている場合にも、適
切な複合インデクスが定義されていれば、インデクスソ
ート可否判断処理機構21は、インデクス12を経由す
る処理で、ソート処理を省略するレコードの読み出しが
可能と判断できる。
【0030】[ソート方向の相違への対応]既に述べた
ように、アプリケーション側はソートの方向を昇順、ま
たは降順に指定することができる。これまでの例で説明
したような、インデクス内部のエントリがある方向にソ
ートされている特性を利用しただけでは、例えばエント
リが昇順にソートされているインデクスだけをつかって
降順のソート指定には対処できない。本発明では、さら
にレコード読み出し機構22によって、昇順/降順のい
ずれの方向のソート指定にも対処させることができる。
以下、エントリが昇順にソートされているツリー構造の
インデクスを使い、降順のソートを伴う検索処理要求
を、ソート処理を回避しながら実行できることを示す。
【0031】説明の簡単のために、以下のようなSQL
文による検索処理を例として使う。図8に、検索条件の
内容説明図(その3)を示す。これは図5で示したSQ
L文と検索の条件は同じ内容だが、ソートの方向が降順
である点だけが異なっている。この場合、図4におい
て、インデクスソート可否判断処理機構21は、検索条
件、ソート指示の内容と、インデクスの内容から、イン
デクスを経由する処理が可能である旨を制御部本体23
に伝える。この情報をもとに制御部本体23はレコード
読み出し機構22に検索処理の実行を要求する(ステッ
プS7)。これを受け取ったレコード読み出し機構22
は、次のような手順で、インデクス12を経由したアク
セスと該当レコードの取り出しを実行し、取り出したレ
コードを逐次にアプリケーションに返却する(ステップ
S4,S5,S6)。
【0032】図9と図10には、このような本発明の装
置の動作フローチャートを示す。まず、この図9のステ
ップS1において、検索条件中のソート方向が昇順か降
順かを判断する。昇順でない場合にはステップS2にお
いて、インデクス12を経由し、この検索条件を満足す
るソートキーの最大値の組合せのエントリを持つリーフ
ノードを捜し出す。即ち、図2の例で言えば、最もソー
トキーの大きいリーフノードN20を見つけ出す。そし
て、ステップS3において、条件を満足するレコードを
取り出す。次に、ステップS4において、条件に該当す
るレコードがまだあるかどうかを判断し、まだあるよう
であればステップS5に移り、現在のエントリが現在の
リーフノードで最小のものかどうかを判断する。
【0033】最小のものでなければステップS6に移
り、同じリーフノードの中で1つ前のエントリを探す。
即ち、ステップS5,S6ではリーフノードの最もソー
トキーの大きいものから順にポインタを取り出し、これ
に対するレコードを読む。そして、ステップS3,S
4,S5,S6のループを繰り返し、現在のエントリで
最小のソートキーが参照された後はステップS7に移
り、インデクスの構造を辿って1つ前のリーフノードを
読み出す。
【0034】こうして、ソートキーの最大値を持つリー
フノードから順番にソートキーの最小値を持つリーフノ
ードに向かってリーフノードを参照しレコードを読み取
る。こうして、全てのレコード読み取りが終了すると処
理が終了する。一方、ステップS1において、ソート方
向が昇順であると判断されると図10のステップS8に
移り、今度はインデクスを経由し条件を満足するソート
キーの最小値の組合せのエントリを持つリーフノードを
捜し出す。即ち、図2において、リーフノードN1を見
つける。こうして、ステップS9において、条件を満足
するレコードを取り出し、ステップS10において、条
件に該当するレコードがまだあるか判断し、ステップS
11において、現在のエントリが現在のリーフノードで
最大のものかどうかを判断する。更に、ステップS12
では、同じリーフノードの次のエントリを探し、ステッ
プS13では次のリーフノードを読み出す。これは、検
索条件のソート方向とインデクス中の値のソート方向と
が一致したため、図3や図5の実施例の検索処理を行っ
ている部分である。
【0035】このように、リーフノードを捜し出す条件
判断を行えば、インデクスのソート方向と順方向はもと
より逆方向の検索条件が設定されても、データ読み出し
後のソートを回避して目的の順にソートされたレコード
を読み出すことが可能になる。
【0036】本発明は以上の実施例に限定されない。イ
ンデクスは従来よく知られたリレーショナルデータベー
スの1以上任意の数の値について、所定の順にソートさ
れたものとポインタとを対応付けた構成のものであれば
よい。また、データベース管理システムには、制御部本
体、インデクスソート可否判断処理機構、レコード読み
出し機構、検索条件指定機構等を区別して設けるように
しても、これらをそれぞれ自由に一体化しあるいは分割
するようにしても差し支えない。また、アプリケーショ
ンプログラム自身は自動的に検索条件をDBMSに送り
込むようにしてもよいし、またオペレータを経由して送
り込むようにしてもよい。このような場合、検索条件指
定機構24はキーボード等から構成されることになる。
【0037】
【発明の効果】以上説明した本発明のソート付き検索処
理装置は、従来のDBMSに対してインデクスソート可
否判断処理機構と、レコード読み出し機構を付加し、イ
ンデクスソート可否判断処理機構で、検索条件とソート
キーの条件、および検索の対象となるレコードに付加さ
れたインデクスの構造等を比較検討させることによっ
て、従来技術で見られたような改めてのソート処理を回
避するためのレコード検索処理の方式を決定できる。ま
た、レコード読み出し機構に昇順、降順のいずれの方向
のソート指示に対してもインデクスの構造を利用したレ
コード読み出しの機能をもたせることで以下の効果を得
ることができる。
【0038】(1) 条件を満たせば、インデクスを経由し
たレコード検索処理だけでソートの処理済みのレコード
抽出が実行できる。仮に検索条件を満たすレコードがN
件あり、それらの各レコードの読み出しにnの時間を必
要とするものであれば、従来技術では最初のレコードが
アプリケーションに返却され始めるまでにN×nの時間
を必要とした。これに対して、本発明を適用すること
で、最初のレコードがアプリケーションに返却され始め
るまでにnの時間が必要となるだけとなる。 (2) 複数のソートキー指定に対しても、インデクスの構
造を理解した処理によって同様の効果が得られる。 (3) 昇順と降順のいずれのソート方向指定に対しても、
読み出し方向の選択によって同様の効果を得ることがで
きる。
【図面の簡単な説明】
【図1】本発明のソート付き検索処理装置実施例を示す
ブロック図である。
【図2】インデクスの構造説明図である。
【図3】検索条件の内容説明図(その1)である。
【図4】本発明のソート付き検索処理動作説明図であ
る。
【図5】検索条件の内容説明図(その2)である。
【図6】複合インデクスのエントリ例説明図(その1)
である。
【図7】複合インデクスのエントリ例説明図(その2)
である。
【図8】検索条件の内容説明図(その3)である。
【図9】本発明の装置の動作フローチャート(その1)
である。
【図10】本発明の装置の動作フローチャート(その
2)である。
【符号の説明】
10 データベース 11 レコード 12 インデクス 20 データベース管理システム(DBMS) 21 インデクスソート可否判断処理機構 22 レコード読み出し機構 23 制御部本体 24 検索条件指定機構 30 アプリケーションプログラム

Claims (3)

    【特許請求の範囲】
  1. 【請求項1】 順不同にレコードを格納するための記憶
    装置と、 この記憶装置に格納された前記レコード中の特定の値を
    ソートして、その値とレコード格納場所を示すポインタ
    と対応付けたインデクスと、 アプリケーションプログラムに対して、前記レコードの
    検索処理に際しての任意のソートキー指定と、指定され
    たソートキーに対して昇順または降順のソート方向指定
    を許す検索条件指定機構と、 前記検索条件とインデクスの構造とを比較して、指定さ
    れたソート処理を別途行うべきか、ソート処理を省略し
    前記インデクスを経由したレコードの読み出しによって
    も、指定されたソートと同じ効果を得られるか否かを判
    断するためのインデクスソート可否判断処理機構とを備
    えたことを特徴とするソート付き検索処理装置。
  2. 【請求項2】 検索条件とインデクスの構造とを比較し
    て、ソート処理を省略しても、指定されたソートと同じ
    効果を得られると判断した場合に、その効果を得るため
    のレコードの読み出し方法を決定するレコード読み出し
    機構を備えたことを特徴とする請求項1記載のソート付
    き検索処理装置。
  3. 【請求項3】 ソート処理を省略しても、指定されたソ
    ートと同じ効果を得られると判断した場合に、ツリー構
    造のインデクスを利用して、昇順、降順の何れの方向の
    ソート指定に対してもソート処理を省略して同じソート
    の効果を得るレコードの読み出し機構を持つことを特徴
    とする請求項1記載のソート付き検索処理装置。
JP7083217A 1995-03-15 1995-03-15 ソート付き検索処理装置 Pending JPH08255170A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP7083217A JPH08255170A (ja) 1995-03-15 1995-03-15 ソート付き検索処理装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP7083217A JPH08255170A (ja) 1995-03-15 1995-03-15 ソート付き検索処理装置

Publications (1)

Publication Number Publication Date
JPH08255170A true JPH08255170A (ja) 1996-10-01

Family

ID=13796156

Family Applications (1)

Application Number Title Priority Date Filing Date
JP7083217A Pending JPH08255170A (ja) 1995-03-15 1995-03-15 ソート付き検索処理装置

Country Status (1)

Country Link
JP (1) JPH08255170A (ja)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH113342A (ja) * 1997-04-18 1999-01-06 Fujitsu Ltd グループバイ処理方式
JPH11306200A (ja) * 1998-04-27 1999-11-05 Fujitsu Ltd グループバイ処理装置および方法
JP2004062898A (ja) * 1997-04-18 2004-02-26 Fujitsu Ltd 相関のあるデータ組み合わせの数え上げ方式
JP2012256318A (ja) * 2011-06-07 2012-12-27 Nhn Corp 多重範囲スキャンでのnソートクエリを最適に処理する方法及び装置
JP2014524090A (ja) * 2011-07-08 2014-09-18 アビニシオ テクノロジー エルエルシー 範囲に基づく検索のためのデータ格納の管理

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH113342A (ja) * 1997-04-18 1999-01-06 Fujitsu Ltd グループバイ処理方式
JP2004062898A (ja) * 1997-04-18 2004-02-26 Fujitsu Ltd 相関のあるデータ組み合わせの数え上げ方式
JPH11306200A (ja) * 1998-04-27 1999-11-05 Fujitsu Ltd グループバイ処理装置および方法
JP2012256318A (ja) * 2011-06-07 2012-12-27 Nhn Corp 多重範囲スキャンでのnソートクエリを最適に処理する方法及び装置
JP2014524090A (ja) * 2011-07-08 2014-09-18 アビニシオ テクノロジー エルエルシー 範囲に基づく検索のためのデータ格納の管理
US9811570B2 (en) 2011-07-08 2017-11-07 Ab Initio Technology Llc Managing storage of data for range-based searching

Similar Documents

Publication Publication Date Title
US7158996B2 (en) Method, system, and program for managing database operations with respect to a database table
US6185557B1 (en) Merge join process
JP3849279B2 (ja) インデクス作成方法および検索方法
US5465352A (en) Table-and-cache-based database assist method
US5089985A (en) System and method for performing a sort operation in a relational database manager to pass results directly to a user without writing to disk
US20060074858A1 (en) Method and apparatus for querying relational databases
US20140136510A1 (en) Hybrid table implementation by using buffer pool as permanent in-memory storage for memory-resident data
JP3914662B2 (ja) データベース処理方法及び実施装置並びにその処理プログラムを記憶した媒体
JPH0675265B2 (ja) 情報検索方法及びシステム
Choi et al. T*-tree: a main memory database index structure for real time applications
US20060074857A1 (en) Method and apparatus for querying relational databases
JPH08255170A (ja) ソート付き検索処理装置
US6269359B1 (en) Relational data base system and method for rapidly realizing a query to a database
JP3653333B2 (ja) データベース管理方法およびシステム
US20020138464A1 (en) Method and apparatus to index a historical database for efficient multiattribute SQL queries
JPH04340163A (ja) キーワード検索方式
KR20000041817A (ko) 음절 단위 패턴으로 구성한 패턴 테이블을 이용한 문자열 부분검색 시스템 및 그 방법
JP2000250921A (ja) データベースの管理方法およびシステム
JP2000090115A (ja) インデクス作成方法および検索方法
CN112989130A (zh) B+树操作装置
JPH09305611A (ja) データベースの検索装置
JP2682448B2 (ja) 索引検索方式
Ryu et al. Hybrid-th: a hybrid access mechanism for real-time memory-resident database systems
JPS59146339A (ja) 情報検索方式
JPH06214849A (ja) データベースシステム