JP2510004B2 - リレ―シヨナル・デ―タベ―ス・システムの問合せ文処理方法 - Google Patents

リレ―シヨナル・デ―タベ―ス・システムの問合せ文処理方法

Info

Publication number
JP2510004B2
JP2510004B2 JP1085892A JP8589289A JP2510004B2 JP 2510004 B2 JP2510004 B2 JP 2510004B2 JP 1085892 A JP1085892 A JP 1085892A JP 8589289 A JP8589289 A JP 8589289A JP 2510004 B2 JP2510004 B2 JP 2510004B2
Authority
JP
Japan
Prior art keywords
plan
data
sort
sorted
database system
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
JP1085892A
Other languages
English (en)
Other versions
JPH0212461A (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 JPH0212461A publication Critical patent/JPH0212461A/ja
Application granted granted Critical
Publication of JP2510004B2 publication Critical patent/JP2510004B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

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/24Querying
    • G06F16/245Query processing
    • G06F16/2453Query optimisation
    • 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/24Querying
    • G06F16/245Query processing
    • G06F16/2455Query execution
    • G06F16/24553Query execution of query operations
    • G06F16/24554Unary operations; Data partitioning operations
    • G06F16/24556Aggregation; Duplicate elimination
    • 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/24Querying
    • G06F16/245Query processing
    • G06F16/2457Query processing with adaptation to user needs
    • 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/99937Sorting

Landscapes

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

Description

【発明の詳細な説明】 A.産業上の利用分野 本発明は、コンピユータ化されたデータベースに関
し、さらに詳しくは、リレーシヨナル・データベースに
おけるデータのソート方法に関する。
B.従来技術及びその問題点 データベースは、将来のユーザからのリクエストに応
じた検索のために、大量のデータをストアするのに使わ
れる。ユーザは、アプリケーシヨン・プログラムである
こともあるし、入力デバイスを通じてデータベース・シ
ステムとインターラクトするエンド・ユーザであつても
よい。関連づけられたデータのグループは、普通にリレ
ーシヨナル・データベースで使われているように、デー
タ・フアイルまたはテーブルと呼ばれる。テーブル中の
データの行(ロー)は論理レコードと呼ばれ、データの
カラム(中間)はフイールドと呼ばれる。リレーシヨナ
ル・データベース・システムでは、ユーザは、データを
テーブルとしてのみ知覚し、その他の組織形態、たとえ
ばデータの階層構造の形は知覚しない。
これらのデータベース・システムは、典型的な場合、
データベース・マネジヤーという、ユーザ・インターフ
エースを介して入力される様々なコマンドに応答してデ
ータを記憶・編集・更新・挿入・削除・検索するコンピ
ユータ・プログラムが含まれている。データベース・マ
ネジヤーは、データベースに対するユーザからのすべて
のリクエストを処理し、上記のような様々な機能を実行
する。
特に、データ検索に関しては、サーチ・コマンド、つ
まりデータベース・マネジヤーがそれに応答して要求デ
ータを供給するところの“問合せ”を定式化するため
に、多数のコンピユータ言語が考案されている。これら
の問合せは、基本的には、コンピユータ及び関連するデ
ータベース・マネジヤーをして所望のサーチを実行させ
るべく符号化されたサーチ・インストラクシヨンであ
る。
データベースでの問合せを定式化するためのこれらの
言語には、いくつかの問題点がある。まず、問合せ言語
の多くが普通のプログラミング言語と異なっている。し
たがつて、ユーザにプログラミングの経験があつても、
データベースから有意なデータを取り出すためだけに、
全く新しいコマンドのセツトを学習しなければならなか
つた。コンピユータ経験が全くないユーザ・例えば多く
のターミナル・オペレータの場合には、データベースと
インターラクトするためだけに、1種のコンピユータ・
プログラミングを学習しなければならなかつた。さら
に、かかる問合せ言語は高度かつ複雑なシンタツクス及
びセマンテイクス・ルールを必要とするので、データを
首尾よく検索できる人間は、高度かつ高価な訓練をつん
だ少数の者に限られていた。このため、かかるコンピユ
ータ・システムのユーテイリテイに悪影響が及び、広範
な数の人間による使用を不可能としていた。
構造化問合せ言語(SQL)は、エンド・ユーザが情報
を検索するべくデータベース・マネジヤーとインターフ
エースするにあたつて利用されるインターラクテイブな
問合せ言語であり、かつデータベース・マネジヤーを介
してデータベース中のデータにアクセスすべくアプリケ
ーシヨン・プログラム中に埋め込むことのできるデータ
ベース・プログラミング言語である。SQLは、必要とさ
れる情報のタイプを指定するための簡便な方法である。
かかる問合せ言語の代表は標準問合せ言語、つまり
“SQL"であり、その詳細は、ANA Database Language
SQL、Standard X3.135−1986、American National
Standard Institute刊に記述されている。SQLの詳細
な説明は、“IBM Database 2 SQLReference"ドキユ
メント番号SC26−4346−3、IBM社刊にても行われてい
る。
リレーシヨナル・データベース・システムの大きな利
点は、ユーザの制御による陽の(explicit)操作を実行
する代りに、データベースがユーザから独立して入力を
受け取り、もつてデータ検索性能を向上させることにあ
る。ユーザは、データベースから検索したい情報のタイ
プを指示するだけでよい。例えば、ユーザが2つの異な
るデータ・テーブルの情報を欲するとき、リレーシヨナ
ル・データベース・システムは、両方のテーブルから最
も効率よく情報を検索する方法を導き出す。
リレーシヨナル・データベース・システムより前のデ
ータベース・システムにあつては、プログラマが情報の
検索方法をコントロールしていた。リレーシヨナル・デ
ータベース・システムでは、システムが情報の検索方法
を決定する。
多くのデータベース処理システムにおいて、ソート機
能(フアンクシヨン)はシステムの重要な一部である。
データベース処理システムの計算能力の半分がソート・
フアンクシヨンだけに用いられることさえあり得る。リ
レーシヨナル・データベースでは、ユーザが出力をある
順番で並べたいときに、ユーザによつてソート・コマン
ドが利用される。また、システムがユーザのために能率
よく情報を検索するためには、ソート・フアンクシヨン
が必要であると判断した場合に、データベース・システ
ムによつて用いられる、陰の(implicit)ソートという
ものもある。例えば、2つのテーブルを効率よく結合し
たいときに、リレーシヨナル・データベース・システム
はソートを利用する。
ソート・フアンクシヨンは、処理システムにおいて高
価なフアンクシヨンだと言える。なぜなら、ソート・コ
マンドには比較(コンペア)命令が必要であり、比較命
令を実行するのに多くの処理時間が費やされるからであ
る。さらに加えて、多量のデータがソート対象となると
き、データベース・システムは、ソートされつつあるデ
ータ中間部分を、デイスクまたはハード・フアイルに書
き込むことになる。データのこの部分は、読み戻され
て、さらにソートされる。
ソート対象のすべてのデータがCPUのメモリに一時ス
トアできるならば、I/O操作を伴う外部(エクスターナ
ル)ソートは不要である。ソート対象のすべてのデータ
がCPUのメモリに一時にストアできないならば、当該デ
ータの一部をストアし、結果をデイスクにストアし、さ
らにハード・フアイル上のソートされたデータの一部を
メモリに読み戻してデータの別の未ソート部分とともに
ソートすることになる。
書込及びフアイルからの読戻しは、ソート操作の際に
何回も行われ得る。I/O操作を実行するのに費やされる
時間は、ソート操作の中で極めて高価なものとなり得
る。
ソートの時間的性能は、いくつかの理由で、リレーシ
ヨナル・データベース・プロダクトの重要な競争尺度で
ある。第一に、ソート操作は、リレーシヨナル・データ
ベース・システムにおいて最も頻繁に使用される操作で
ある。第二に、ソート操作を作用する問合せのパフオー
マンスの向上は、問合せの結果待ち時間の短縮という形
をとるがゆえに、エンド・ユーザにとつて知覚可能であ
る。したがつて、リレーシヨナル・データベースにおけ
るソートのパフオーマンスは、データベース・プロダク
トの重要な競争ベンチ・マークとなる。
リレーシヨナル・データベース及びSQL言語について
詳細な説明は、Date、C.J.An Introduction to Data
base Syatems、The Systems Programming Series、V
olume1、Fourth Edition、Addison−Wesley Publishi
ng Company、1986を参考にされたい。
C.問題点を解決するための手段 したがつて、本発明の目的は、リレーシヨナル・デー
タベースにおけるソート操作のパフオーマンスを向上さ
せることにある。
大量のデータ、すなわちCPUのメモリに一時にストア
できる量よりも多いデータをソートするときには、メモ
リに一時にストアできる量だけのデータが使用され、次
いでハード・フアイル・デイスクにストアされる。典型
的には、ソート後の順番でデイスクにストアされる。続
いて、後続グループのデータがCPUのメモリにストアさ
れ、ソートされ、そしてデイスクにストアされる。この
ようなステツプが全データが別々にグループ化され、ソ
ートされ、そして別々にデイスクにストアされ尽くすま
で、繰り返される。
デイスクに置かれたソート済データのグループは、次
に一緒にマージされる。すべてのグループについてその
第1の部分が待ち寄られ、ソートされ、そしてデイスク
にストアされ直す。このようなステツプが、データ・グ
ループの残りの部分が一緒にソートされ、デイスクにス
トアされ直すまで続く。
本発明によれば、最終ソート済データをデイスクに書
き出合すI/O操作をなくすことにより、ユーザに見える
形でリレーシヨナル・データベースのパフオーマンスが
向上する。ソート後の結果をデイスクに書き出す代り
に、データアが最終ソート順序に組み込まれると、該デ
ータがユーザへ提示される。最終ソート済データをデイ
スクへ書き込んだ後にメモリに読み戻すオーバーヘツド
がなくなる。データが実際に並べられると、その調整済
となつたところのデータがリクエスターに渡されるの
で、リクエスターはデータ全部が整理され尽くすまで待
つ必要がない。
本発明を用いる、リレーシヨナル・データベース・マ
ネジヤーの要素であるソート・サービスは、データ行を
受け取つて、それらをリクエストに応じて昇順または降
順に並べる。
ソートには2つの主要な部分がある。第1はインサー
ト・フエーズである。ここでは、リレーシヨナル・デー
タ・サービス(RDS)から受け取つたデータ行を、並べ
換えて順序ストリングにする。第2は、データ行をすべ
て受け取つた後に実行されるマージ・フエーズである。
マージ・フエーズは、順序ストリングで受け取つて、整
理された単一のおデータ・ストリングにマージする。従
前のデータベース管理システムでは、この最終データ・
ストリングをデイスクの一時フアイルに出力していた。
デイスクへの書込みここではデイスク出力モードと呼ぶ
ことにする。本発明では、高速直接出力モードの下で、
RDSは必要に応じて最終ソート結果のデータを読み取る
ことができる。
オプテイマイザ・ルーチンは、所与の問合せ文に対し
て、デイスク出力モード又は高速直接出力モードのどち
らが効率的かを判断する。モードの選択は、問合せ文が
ソート済データが使う回数が1回だけかそれとも複数回
かに応じて決まる。
いくつかのSQL操作、例えば、ORDERBY、GROUP BY、
あるいはMERGE/JOINの外部パスにおいては、直接出力モ
ードの方が、マージ・フエーズのオーバヘツドの多くを
除去できる点で、デイスク出力モードよりも効率がよ
い。インサート・フエーズは、出力が出力フアイルの形
をとろうとも、あるいは出力がRDSへ直接向かおうと
も、そういつたことに関係なく、同じように実行され
る。
マージ・フエーズの開始時に、ソート・サービスは、
最終ソート済データをデイスクに整理済一時フアイルの
形で置く必要性をRDSのオプテイマイザ・ルーチンが表
示しているか否かを知るためのテストを行う。データを
デイスクに置く必要がないならば、ソート・サービス
は、最終パスに達するまでマージを続ける。
最終パスであることの認識は、残つている順序ストリ
ングの数もマージ・バツフアの数と比較することにより
行われる。マージ・バツフアの数が順序ストリングの数
以上であるなら、最終パスに至つたわけである。これ
は、全順序ストリングのトツプ・エントリから選んだ行
の各々が、最終ソート出力における後続エントリになる
ことを意味する。ソート・サービスが最終マージ・パス
の開始準備が整つたことを認識し、しかも高速直接出力
を行うときは、RDSにリターンして、RDSからのソート・
フエツチの受入準備の整つたことを表示する。RDSがソ
ート・フエツチを行うと、ソート・サービスは残つてい
る順序ストリングの中から後続の行を正しく選び、それ
をRDSに返す。このプロセスは、すべての行がRDSに返さ
れるまで繰り返される。
本発明を用いてパフオーマンスが向上する主要な領域
が2つある。第1は、ソート済の全データのデイスクへ
の書込及び読出しを実行しないで済ませるようにしたの
で、トータルのソート時間が減少することである。第2
は、ソート済の各々の行について、応答時間が改善され
ることである。その理由は、すべてのデータがソートさ
れ尽くすのを待ってからソート済データをRDSを介して
ユーザに返すのではなくて、レコードが最終ソート順に
配されたなら、レコードをRDSを介してユーザに返すよ
うにしたからである。
D.実施例 第1A図と第1B図は、本発明を実施するのに用いられる
処理装置の概要を示す。
第1A図は、IBM社のパーソナル・システム/2(商標)
で用いられているような、パーソナル・コンピユータ・
アーキテクチヤの1例を示す。このアーキテクチヤの焦
点は、マイクロプロセツサ1からなる。マイクロプロセ
ツサ1はバス2につながれる。バス2は、データ・ライ
ンのセツト、アドレス・ラインのセツト、及びコントロ
ール・ラインのセツトからなる。複数のI/Oデバイス、
メモリ、記憶装置3〜8が、それぞれアダプタ9〜14を
介して、バス2に接続されている。例えば、デイスプレ
イ4はIBMパーソナル/システム・カラー・デイスプレ
イ8514であつてよく、その場合は、アダプタ10をプレナ
・ボードに集積化することができる。その他のデバイス
3、5〜8及びアダプタ9、11〜14は、IBMパーソナル
・システム/2の一部として含まれていてもよいし、IBM
社製のプラグ・イン・オプシヨンとしてアベイラブルで
あつてもよい。例えば、RAM6、ROM7、及びこれに対応す
るアダプタ12、13は、IBMパーソナル・システム/2の標
準準備であるけれども、RAM6を補うためにプラグ・イン
・メモリ・エクスパンシヨン・オプシヨンを介してRAM
をさらに付加してもよい。
ROM7の中には、マイクロプロセツサ1によつて実行さ
れる、BIOS(基本入出力オペレーテイング・システム)
として知られる複数の命令が記憶されている。BIOSは、
コンピユータの基本動作をコントロールする。OS/2(商
標)等のオペレーテイング・システムはメモリ6にロー
ドされ、ROM7に記憶されたBIOSと協同する。もつとも、
BIOSの一部ないし全部をROM7ではなくメモリ6に記憶さ
せてもよい。そうすることにより、基本的なシステム動
作の修正を、BIOSプログラムの変更によつて吸収し、か
つ変更したBIOSプログラムをRAM6に即座にロードするこ
とができる。
パーソナル・システム/2とOS/2に関しては、以下のマ
ニユアルを参照されたい。
Technical Reference Manual、Personal System/2
(Model 50、60 Systems)、IBM コーポレーシヨ
ン、パーツ・ナンバー68X2224、オーダー・ナンバー S
68X−2224. Technical Reference Manual、Personal
System/2(Model 80)、IBMコーポレーシヨン、パー
ツ・ナンバー 68X2256、オーダー・ナンバー S68X−2
256. IBM Operating System/2 version1.0 Standa
rd Edition Technical Reference、IBM コーポレー
シヨン、パーツ・ナンバー 6280201、オーダー・ナン
バー5871−AAA. Iacobucci、Ed、OS/2 Programmer′s Guide、McGr
aw Hill、1988. 本発明の装置では、リレーシヨナル・データベース・
マネジヤー等のアプリケーシヨン・プログラム18は、メ
モリ6にロードされたり、あるいはメデイア5に常駐し
たりする。メデイア5はデイスケツトまたはハード・フ
アイルを含むが、これに限定されるものではない。リレ
ーシヨナル・データベース・マネジヤー20は、オペレー
テイング・システム15の拡張と考えてもよい。
リレーシヨナル・データベース・マネジヤー20は、リ
レーシヨナル・データベース・マネジヤー・タスクの包
括的なセツトを含んでなる。リレーシヨナル・データベ
ース・マネジヤー・タスクには、ソート・タスク23、リ
レーシヨナル・データ・サービス・タスク25、及びオプ
テイマイザ・タスク27が含まれるけれども、これらに限
定されるわけではない。
リレーシヨナル・データベース・マネジヤー20は、リ
レーシヨナル・データベース・マネジヤー・タスクの包
括的なセツトであり、マイクロプロセツサ1にインスト
ラクシヨンを与えて、第1A図及び第1B図に示される処理
システムをしてリレーシヨナル・データベース機能を営
ませる。メモリ6にロードされたアプリケーシヨン・プ
ログラム18は、メモリ6に先にロードされたオペレーテ
イング・システムと協同する。
第1A図及び第1B図の処理システムにおいて、オペレー
タは、キーボード3のオペレータ・コントロール・キー
を介して、リレーシヨナル・データベース・マネジヤー
20にアクセスする。バス2を介してデイスプレイ4、メ
デイア・ストレージ5、及びメモリ6に接続されたプロ
セツサ1は、キーボードによつてドライブされる。ユー
ザが、キーボード3を介して、リレーシヨナル・データ
ベース・マネジヤー20とインターラクトするアプリケー
シヨン・プログラムとインターラクトするとき、リレー
シヨナル・データベース・マネジヤー20とそのデータは
デイスプレイ4を通してユーザに表示される。データベ
ース・マネジヤー20とインターラクトするユーザに加え
て、アプリケーシヨン18も、アプリケーシヨン18中のSQ
Lコマンドを介してデータベース・マネジヤー20とイン
ターラクトすることができる。
本発明の説明を、第2A図及び第2B図に示す。
データベース・テーブルを参照して行う。SQL言語で
は、第2A図のデータベース・テーブル22は、ユーザによ
つて、以下のように定義される。
CREATE TABLE STAFF (ID INTEGER,NAME VARCHAR(10)) CREATE TABLE(テーブル作成)は、SQLデータ定義文
の1例である。CREATETABLE文の各々は、作成されるテ
ーブル22の名前24、そのカラム26と28の名前、及びこれ
らのカラムのデータ・タイプを与える。ユーザがテーブ
ル作成文を実行した後、テーブルは最初は空である。つ
まり、テーブルにはデータ行202が1つも存在していな
い。しかしながら、ユーザはSQLのINSERT(挿入)文を
使って直ちにデータ行202を挿入し、第2A図に示される
ようなテーブルを作ることができる。こうして、ユーザ
は、このテーブルに関して、第2B図に示されるうような
作成済の他のテーブルと一緒に、有用な操作をなすこと
が可能になる。例えば、ユーザはテーブル22のデータを
ID番号順に並べることもできるし、テーブル22を別のテ
ーブル21と結合(join)することもできる。(ここで、
テーブル21は、ID番号、部門(DEPT)、及び給料(SALA
RY)という3つのカラムを持つている。)また、ユーザ
は、最高給料を選んだり部門毎にグループ化したりする
GROUP BY操作を実行することだつてできる。マルチプ
ル・テーブルを一時に2つ結合するためにMERGE JOIN
操作が用いられたなら、リレーシヨナル・データベース
・マネジヤーは、インテツクスが使えない場合は、テー
ブルの行をシーケンシヤルに並べるためにソート操作を
実行する。第3図を参照するに、ユーザ19またはアプリ
ケーシヨン18は、望む操作のための文(ステートメン
ト)を入力する(ステツプ31)。例えば、ユーザまたは
アプリケーシヨンが以下の文を発することが考えられ
る。
SELECT * FROM STAFF ORDER BY ID コマンドSELECT *は、ある行のすべてのカラムを取
得するのに用いられる。
第1A図及び第1B図のオプテイマイザ27は、ユーザまた
はアプリケーシヨンが入力した操作文にどの出力モード
を使うかを決定する(第3図のステツプ32)。デフオル
トはデイスク出力モードであるけれども(ステツプ3
4)、あるソート・プランのために、オプテイマイズ・
ルーチン32によつて、モードが高速直接出力モードに変
更される場合がある。オプテイマイザ27は、リレーシヨ
ナル・データ・サービス25の一構成要素であり、データ
・アクセスのいくつかの方法、すなわちプランのうち、
所与の問合せ文に使うべきものはどれであるかを決定す
る。例えば、インデツクスを使うべきか、シーケンシヤ
ルなスキヤニングにするのか、またはソート操作を実行
すべきなのか、といつたことを決定する。オプテイマイ
ズ・ルーチン(第3図のステツプ32)の詳細な説明は第
7図で行うが、このルーチンは、オプテイマイザ27が問
合せ文の処理に必要なすべてのプランを作成した後に呼
び出されるものである。プランは、問合せの結果を作成
するために用いられるジヨイン(結合)やテーブル・ア
クセス等のテーブル操作を表現する。例えば、ジヨイン
・プランには、2つのプランがある。1つは外部(oute
r)テーブル用であり、他の1つは内部(inner)テーブ
ル用である。外部テーブルへのアクセスは、まず、内部
テーブルのマツチする行の外部テーブルの各行と結合さ
せつつ、行われる。オプテイマイザ・ルーチン32は、問
合せのためのプランごとに呼び出される。ソート・プラ
ンが最初作成されたとき、そのプランはデイスク出力オ
プシヨンを伴つている。以下で述べるオプテイマイザ・
ルーチン32は、あるソート・プランのデイスク出力オプ
シヨンを、高速直接出力オプシヨンに変えることができ
る。
第7図のオプテイマイザ・ルーチン32では、まず、当
該プランがテーブル・アクセス・プランであるか否かの
判断が行われる(ステツプ121)。テーブル・アクセス
・プランは、一時にテーブルを1行ずつ読み取るリクエ
ストである。当該プランがテーブル・アクセス・プラン
であるならば、ステツプ123において、該プランが問合
せのルート・プランであるか否かの判断が行われる。ル
ート・プランは、問合せの最終結果を生成する。もしル
ート・プランでないなら、ルーチンは高速直接出力をイ
ネーブルにする(活動させる)ことなくリターンする。
もしルート・プランであるなら、ステツプ125へ進み、
テーブル・アクセス・プランがソート入力プランを有す
るか否かが判断される。判断結果がイエスであるなら、
高速直接出力がイネーブルとされる(ステツプ127)。
そうでないならば、高速直接出力はイネーブルとされ
ず、ルーチンを出ることになる。
もし当該プランがテーブル・アクセス・プランでなか
つたならば(ステツプ121)、ステツプ129へ進んで、該
プランがジヨイン・プランであるか否かの判断が行われ
る。ジヨイン・プランは、2つのテーブルにアスセス
し、かつこれらを組み合わせることを表わす。判断結果
がノーであるなら、高速直接出力は活動せず、ルーチン
を出る。もしジヨイン・プランであるなら、ステツプ13
1へ進み、ジヨイン・プランの外部プランがテーブル・
アクセス・プランであるか否かの判断が行われる。判断
結果がノーであるなら、高速直接出力は活動せず、ルー
チンを出る。判断結果がイエスなら、ステツプ133へ進
み、該テーブル・アクセス・プランが入力ソート・プラ
ンを有するか否かの判断が行われる。答がイエスなら、
当該ソート・プランのために高速直接出力が活動化し
て、ルーチンを出る。答がノーなら、高速直接出力は活
動せず、ルーチンを出る。
第3図に戻ると、ユーザ/アプリケーシヨンが問合せ
文を入力し(ステツプ31)、さらにオプテイマイザが当
該操作のために適切な出力モードを判断した後、リレー
シヨナル・データ・サービス25は、デイスク5にストア
済のテーブル22(第2A図)から、行211〜218を、一度に
1行ずつ取り出す(ステツプ33)。ORDER BY文を含む
いくつかの問合せ文は、リレーシヨナル・データベース
・マネジヤー20に対して、データ202(第2A図)の行を
要求した順に取得するために、ソート操作を実行するこ
とを要請する。
第3図に示されるように、ソート・フアンクシヨン23
には3つの大きなフエーズがある。インサート・フエー
ズ41では、ソート23が行を未知の順序で受け取る。イン
サート・フエーズ41の詳しい説明は第4図で行う。ソー
ト23のオープン・フエーズ45では、ソート23がソート済
の順で返すべくデータを準備する。オープン・フエーズ
43の詳しい説明は第5図で行う。ソート23のフエツチ・
フエーズ51では、データがリレーシヨナル・データ・サ
ービス25を経て、コーラー(caller)へ、ソート済の順
序で返される。フエツチ・フエーズ51の詳しい説明は第
6図で行う。
リレーシヨナル・データ・サービス25がテーブル22か
ら行211を受け取ると(第3図のステツプ33)、リレー
シヨナル・データ・サービス25は、この行211を、ソー
ト・インサート・フエーズにあるソート・フアンクシヨ
ン23へ渡す(ステツプ41)。ソート・インサート・フエ
ーズでは、データ行がデータベース・マネジヤー20のリ
レーシヨナル・データ・サービス要素25によつて受け取
られる。このデータは未整理の形で受け取られる。しか
も、受け取られることになるデータ量を示す微表は何も
ない。
ソート・インサート・フエーズの詳しい説明を、第4
図及び第8図を参照して行う。ソート・インサート・フ
エーズの間、ソートは、リレーシヨナル・データ・サー
ビス25から呼ばれる度に1データ行を受け取る。ステツ
プ61では、内部バツフア62(第8図)の中に当該データ
に利用可能なスペースがあるか否かのテストが行われ
る。スペースがあるなら、ソース23は、(第2A図の)デ
ータ211〜218を、受け取つた順に内部バツフア62に置く
(ステツプ65)。次にソート23は、バツフア62内のデー
タ行をポイントするべく、バランス・バイナリー・ツリ
ー(balanced binary tree)64のためのエントリを作
成する(ステツプ67)。バイナリー・ツリー64は、ソー
ト後の順番のデータを追跡するのに使われる。
ステツプ61にて内部バツフア62が満杯なら、データ
は、全バツフアの全データを組み合わせた整理済順序ス
トリング66(第8図)としてデイスクに書き込まれる
(ステツプ63)。リレーシヨナル・データ・サービス25
からさらに行を受け取ると、内部バツフア62は再び充填
されていき、受け取つたデータを処理するのに要する回
数だけ処理が繰り返される。内部バツフア62がデイスク
5へ書き込まれる度に(ステツプ63)、新たに充填され
たバツフア62からの全データから新たな順序ストリング
66が形成されるわけである。
第3図を再び参照すると、リレーシヨナル・データ・
サービス25によつてすべての行がテーブルから取り出さ
れてソート・インサート・フエーズへ送られてしまつた
なら(ステツプ37)、リレーシヨナル・データ・サービ
ス25は、ソートの対象であるデータの終了を合図する
(ステツプ43)。ソート・フアンクシヨンの第2フエー
ズであるソート・オープン45は、ソート23に渡すデータ
行がもはやないことを知らせるリレーシヨナル・データ
・サービス(RDS)25からのコールによつて呼び出され
る。ここで、ソート23は、ソート済の行をRDS25へ返す
準備を行う。
本発明によれば、ソート済行のRDS25への返し方とし
て、2つのモードのどちらかが選ばれる。1つはデイス
ク出力モードであり、すべてのソート済データが整理済
一時フアイルの形でデイスクに書き込まれることにな
る。もう1つのモードは高速直接モードと呼ばれる。こ
のモードでは、1つ1つの行が最終的なソート済順序に
配置されたなら、当該行を、リクエストを出したユーザ
/アプリケーシヨンへRDS25を介して、直接返すことが
可能である。どちらのモードが有利であるかは、結果の
使われ方によつて決まる。ソート済データの使用回数が
1回だけであるとオプテイマイザ・ルーチン32(第7
図)によつて判断されるなら、フアイルに書き込んで後
でそれを検索する手間を省くために、ソート済データを
直に返すのが最良である。しかしながら、ソート済デー
タが2回以上使われるのなら、該データは複数回の使用
に先立つて一旦ソートされたにすぎないわけだから、デ
ータをデイスクに書き込むのが最良である。例えば、オ
プテイマイザ・ルーチン32(第7図)によつて、プラン
がルート・プランだと判断された場合、ソート済データ
は1度だけ使われることになるのであつて、高速直接出
力モードが活性化される。また、外部テーブルが結合さ
れる場合も、ソート済データは1回使われるだけであ
り、高速直接出力モードが活性化される。そうでない場
合は、内部テーブルが結合され、ソート済データは2回
以上使用されることになる。この場合、高速直接出力モ
ードは活動を開始しない。
RDS25は、ソート23を要求するSQL文をプレ・コンパイ
ルする。RDS25は、ソート済データをRDS25へ直に返す方
が効率がよいのか、それともデイスクへ書き出す方が効
率がよいのかを判断するプロセスを経る。判断のための
フアクタは、データの使用回数が1回か、それとも複数
回か、ということである。RDS25は、要求された操作タ
イプを調べることによつて、このことを認識する。一般
的に言つて、ORDERBYまたはGROUP BY操作が要求されて
いるのであれば、データをRDS25へ直接に返すことがで
きる。しかしながら、MERGE/JOIN操作の場合には、出力
モードは、データの処理されつつある部分に依存するこ
とになる。MERGE/JOINの外部パス(outer pass)が実行
されるとき、パフオーマンス向上のために直接出力モー
ドを使うことができる。MERGE/JOIN操作の際に要求され
るその他のすべてのソートについては、デイスクへ出力
するモードの方が好ましい。RDS25のオプテイマイザ27
は、ユーザ/アプリケーシヨンによるアクシヨンの特別
な知識を必要とせずに、ソート出力に最適な方法を選択
する。
ソート・オープン・フエーズ45の詳細は、第5図、第
8図、及び第9図で説明する。RDS25のオプテイマイザ2
7がデイスクへ出力するモードを選ぶと、以下のステツ
プが実行される。
まず、ソート23は、内部バツフア62(第8図)に残つ
ているデータを、整理済順序ストリング66としてデイス
ク5へ書き込む(ステツプ77)。デイスクにある順序ス
トリングが1つだけであるならば(ステツプ84)、デー
タは最終的なソート済順序に並べている。そしてソート
23は、順序ストリング66の第1ページを読み取る(ステ
ツプ89)。ソート・オープン・フエーズ45はこれで完了
する。デイスクにある順序ストリングが複数ならば、ソ
ート23は、マージ(merge)操作によつてそれらをまと
めて、単一の順序ストリングにしなければならない(ス
テツプ81)。マージ操作(第9回)には、各順序ストリ
ング66の先頭(トツプ)行221を比較すること、全体的
に整理された順序の中の次の行を順序ストリングの中か
ら選ぶこと、及びそれをマージ済順序ストリング68の中
に置くことが含まれる。このプロセスは、すべてのソー
ト済データをその内容とする最新順序ストリング68がデ
イスクに1つだけ残る状態が来るまで、続けられる。
第3図に戻つて説明すると、デイスク出力モードの際
には、フエツチ・フエーズ51と呼ばれるソート23の第3
フエーズが、インサート・フエーズ41及びオープン・フ
エーズ45の完了後に呼び出される。フエツチ・フエーズ
51は、RDSがソート済データの行ごとにフエツチ・リク
エストを出すことからなる(ステツプ44)。フエツチの
各々に応答して、ソート23は、デイスク上に最終順序ス
トリングから1データ行を検索し、RDS25へ渡す。
上記デイスク出力モードは、ソート済データを繰り返
し使用することになるときに用いられる。この場合、高
速直接出力モードは活動せず、ソート・フアンクシヨン
23は上述の如くして作動する。高速直接モードが活動す
るのは、RDSによつてソート済データが1回だけアクセ
スされる場合である。RDSは、ORDER BY、GROUP BY、
あるいはMERGE/JOINの外部パス等のSQL操作の場合に、
高速直接出力モードを活動させる。
直接出力モードの場合、ソート23は、上述のような3
つのフエーズを経過する。インサート・フエーズ41(第
4図)は、デイスク出力モード又は直接出力モードの選
択に関係なしに、どちらのモードの場合も同様に実行さ
れる。しかしながら、オープン・フエーズ45(第5図)
とフエツチ・フエーズ51(第6図)は、直接出力モード
が選ばれた場合に変更されることになる。
第3図を参照すると、ソート23がRDS25によつて呼ば
れてオープンした場合(ステツプ41)、RDSがエンド・
オブ・データ(ステツプ43)、及びフエツチ操作の準備
を知らせる。第5図に示すようにソート・オープン・フ
エーズ45では、RDSが高速直接出力モードを活動させた
か否かを知るためのテストが行われる(ステツプ73)。
もし高速直接出力モードが活性化されていたなら、最終
のソート済データが整理済の一時フアイルの形でデイス
クに置かれることはない。
ソート23は、すべてのデータがメモリにあるか否かを
テストする(ステツプ71、第5図)。もしすべてのデー
タがメモリにあるならば、ソート23は、バツフア内のデ
ータ行を指すポインタのアレイを作成する(ステツプ7
5)。次にソート23はRDS25にリターンし、ソート23がRD
S25からのソート・フエツチを受け入れる準備ができた
ことを表示する(ステツプ91)。メモリに適合するデー
タを上回るデータがあり、かつ高速直接出力モードが選
択されていた場合には、ソートは、既述のようにステツ
プ77、79、及び81(第5図)を実行する。順序ストリン
グが多数ある場合、ソートは、最終パスのための準備が
整うまで、それらのマージを続行する。最終パスの段階
に至つたかどうかは、残つている順序ストリングの数を
マージ・バツフアの数と比較することによつてわかる
(ステツプ79)。マージ・バツフアの数が順序ストリン
グの数以上であれば、最終パスである。このとき、すべ
ての順序ストリングの先頭エントリから選ばれた行の各
々が、最終ソート済出力における後続エントリである
(ステツプ89)。ソートが最終マージ・パスを始められ
る(つまり、マージ・パスが必要だつたとしても、せい
ぜい1回だけ)と認識したなら、RDS25にリターンし、
ソート23がRDS25からのソート・フエツチを受け入れら
れることを表示する(ステツプ91)。
第3図を参照すると、オープン・フエーズ・ステツプ
45が完了した後、RDS25はソート23からソート済データ
行を取り出せる状態にある。ソート・フエツチ・フエー
ズ51の詳しい説明は第6図で行う。RDSがソート・フエ
ツチ操作のためにソートを呼ぶたびに、ソート・フエツ
チは、後続行の有無を判断する(ステツプ101)。後続
行がなければ、ソート・フエツチは、RDSのためにデー
タ終了表示をセツトして(ステツプ103)、RDSへ戻る
(ステツプ117)。後続行があつて、かつ高速直接が選
択されていた場合には、データがデイスクから来るの
か、それともメモリから来るのかを判断するテストが行
われる(ステツプ107)。すべてのデータがメモリにあ
るならば、ソート・フエツチはバツフアから後続行を選
び、該行をRDSに返す(ステツプ113、115)。データが
デイスク上に順序ストリングから来るならば、ソート・
フエツチ・フエーズは全ストリングの先頭(トツプ)か
ら後続行を選択する(ステツプ109)。このことは第9
図に示されている。当該データ行はRDSに渡される(ス
テツプ115)。順序ストリングが多数あるとき、直接出
力を伴うソートは、実際、残りのすべての行が単一の整
理済ストリングにマージされるのに先立つて、データ行
を返す。RDSは、すべての行がRDSに返されるまで、フエ
ツチ・コールの処理を続行する。RDSにとつて、データ
が高速直接出力モードで返されるのか否かはトランスペ
アレントである。
本発明によれば、ソートに関連するオーバーヘツドが
減少し、ソート済データのコーラー(caller)へのリタ
ーンが速くなる。その結果、2つの利点が生じる。1つ
はシステムの負荷が減ることであり、その分他のフアン
クシヨンに能力を振り向けることができる。もう1つ
は、ソート・フアンクシヨンのユーザへの応答時間とス
ループツトの改善である。
本発明の高速直接出力法においては、ソートは、最終
ソート済データを、従来のデータベース・システムの場
合のようにデイスク上の一時フアイルに書き出さない。
その代り、ソートはデータをコーラーへ直に返す。この
方法では、すべてのデータが最終ソート済順序になるの
を待たないで、ソート済データをコーラーヘ返し始める
ことができる。本発明の高速直接出力法を使うなら、ソ
ートがデータを最終的にソート済順序に配置し始めたこ
とを認識すると、ソートは、ソート済順序における後続
行として1つの行を取り出すや否や当該行をコーラーへ
直に渡す。
この技術からいくつかの利点が得られる。最終ソート
済データをデイスク上の一時フアイルへ書き出した後に
ユーザのリクエストに応じて読み戻すことをやめたの
で、トータルのソート時間が削減される。また、デイス
クの読み書きがなくなったので、システムにとつての負
荷が減少し、その分他のユーザにシステムの能力を振り
向けることができる。別の利点は、ソート済の各行の応
答時間である。すべての行をソートし尽くしてからコー
ラーへ行を返し始めるのではなくて、最終ソート済順序
に行が配置された直後に当該行が返されるので、各ソー
ト済行の応答時間は改善される。コーラーがソート済デ
ータを取り戻したなら、コーラーは直ちにそれをユーザ
に表示することもできるし、オペレーシヨンの別のステ
ツプで使うこともできる。何れにせよ、個々の応答時間
の改善は有益である。
E.効果 本発明によれば、リレーシヨナル・データベース・シ
ステムにおけるソート操作のパフオーマンスが向上す
る。
【図面の簡単な説明】
第1A図と第1B図は、それぞれ、本発明におけるデータ処
理の概要を説明する図である。 第2A図と第2B図は、それぞれ、リレーシヨナル・データ
ベースにおいて使われるサンプルのテーブルを説明する
図である。 第3図は、本発明の方法の全体的な流れを示すフロー・
チヤートである。 第4図は、ソート・インサート・フエーズを示すフロー
・チヤートである。 第5図は、ソート・オープン・フエーズを示すフロー・
チヤートである。 第6図は、ソート・フエツチ・フエーズを示すフロー・
チヤートである。 第7図は、出力モードを決定するオプテイマイザの処理
ステツプを示すフロー・チヤートである。 第8図は、メモリ内の内部バツフア中のデータと、デイ
スク上にできる多数の順序ストリングとの説明図であ
る。 第9図は、多数の順序ストリングを最終ソート済ストリ
ングにソートした結果を、デイスクへ、またはRDSを介
してユーザへ渡す様子を示す説明図である。
───────────────────────────────────────────────────── フロントページの続き (72)発明者 テイモシイ・レイ・マルケムズ アメリカ合衆国テキサス州ラウンド・ロ ツク、ロツク・クリーク・ドライブ1602 番地 (72)発明者 レベツカ・アン・ロツドリーグズ アメリカ合衆国テキサス州フイルジヤー ヴイル、ウイローウツド・レーン606番 地 (72)発明者 フイリツプ・ジヨン・ウエルテイ アメリカ合衆国テキサス州ラウンド・ロ ック、オークリツヂ・ドライブ1305番地 (56)参考文献 日経エレクトロニクスNo.378 (1985−9−23)P.235−280 データベース・システムの原理(昭 60)日本コンピュータ協会,P.326− 333

Claims (4)

    (57)【特許請求の範囲】
  1. 【請求項1】リレーショナル・データベース・システム
    における、問合せ文の処理方法において、 前記問合せ文を、前記リレーショナル・データベース・
    システムに読み込みステップと、 前記リレーショナル・データベース・システムにおい
    て、前記問合せ文の処理プランを生成するステップと、 前記リレーショナル・データベース・システムにより、
    前記問合せ文処理プランがテーブル・アクセス・プラン
    のルート・プランへのソート入力プランを有するかどう
    かを分析するステップと、 前記プランの前記分析に応答して、前記プランがテーブ
    ル・アクセス・プランのルート・プランへのソート入力
    プランを有する場合には、前記ソート操作の前記出力を
    ディスクに書き込まずに前記リレーショナル・データベ
    ース・システムの利用者に直接返す第1のモードを、ま
    たは前記プランがテーブル・アクセス・プランのルート
    ・プランへのソート入力プランを有しない場合には、前
    記ソート操作の前記出力をディスクへの書き込みのみを
    する第2のモードを選択するステップと を含む方法。
  2. 【請求項2】リレーショナル・データベース・システム
    における、問合せ文の処理方法において、 前記問合せ文を前記データベース・システムに読み込む
    ステップと、 前記データベース・システムにおいて、前記問合せ文の
    処理のプランを生成するステップと、 前記リレーショナル・データベース・システムによっ
    て、前記問合せ文のソート操作のソート済み出力データ
    が複数回使用されるかどうかを判断するステップと、 前記ソート済み出力データが複数回使用される場合、前
    記ソート済み出力をディスクに書き込むステップと、 前記ソート済み出力データが唯一度使用される場合、ソ
    ート済み出力が整理済みであるとき、ソート済み出力デ
    ータをディスクに書き込まずに前記リレーショナル・デ
    ータベース・システムの利用者に直接返すステップと を含む前記の方法。
  3. 【請求項3】リレーショナル・データベース・システム
    における、問合せ文の処理方法において、 前記問合せ文を前記データベース・システムに読み込む
    ステップと、 前記データベース・システムにおいて、前記問合せ文の
    処理のプランを生成するステップと、 前記リレーショナル・データベース・システムによっ
    て、前記問合せ文のソート操作のソート済み出力データ
    が所定の回数使用されるかどうかを判断するステップ
    と、 ソート済み出力データが所定の回数使用される場合、前
    記ソート済み出力をディスクに書き込みのみをするステ
    ップと、 前記ソート済み出力データが所定の回数未満しか使用さ
    れない場合、前記ソート済み出力が整理済みであると
    き、前記ソート済み出力データをディスクに書き込まず
    に前記リレーショナル・データベース・システムの利用
    者に直接返すステップと を含む方法。
  4. 【請求項4】問合せ文を処理するためのリレーショナル
    ・データベース・システムにおいて、 問合せ文を前記リレーショナル・データベース・システ
    ムに読み込む手段と、 リレーショナル・データベース・マネジャー内にあり、
    前記問合せ文の処理のプランを生成し、かつ問合せ文処
    理の前記プランがテーブル・アクセス・プランのルート
    プランへのソート入力プランを有するかどうかを分析す
    るためのオプティマイザと、 前記プランの前記分析に応答して、前記プランのソート
    操作の出力を直接利用者に渡すかそれともディスクに入
    れるかを指定するモードを選択する手段であって、前記
    プランがテーブル・アクセス・プランのルートプランへ
    のソート入力プランを有する場合、前記ソート操作の前
    記出力をディスクに書き込まずに前記リレーショナル・
    データベース・システムの利用者に直接渡す第1のモー
    ドを、前記プランがテーブル・アクセス・プランのルー
    トプランへのソート入力プランを有しない場合、前記ソ
    ート操作の前記出力をディスクのみに渡す第2モードを
    選択するものと を含むシステム。
JP1085892A 1988-04-07 1989-04-06 リレ―シヨナル・デ―タベ―ス・システムの問合せ文処理方法 Expired - Fee Related JP2510004B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US179181 1988-04-07
US07/179,181 US5089985A (en) 1988-04-07 1988-04-07 System and method for performing a sort operation in a relational database manager to pass results directly to a user without writing to disk

Publications (2)

Publication Number Publication Date
JPH0212461A JPH0212461A (ja) 1990-01-17
JP2510004B2 true JP2510004B2 (ja) 1996-06-26

Family

ID=22655565

Family Applications (1)

Application Number Title Priority Date Filing Date
JP1085892A Expired - Fee Related JP2510004B2 (ja) 1988-04-07 1989-04-06 リレ―シヨナル・デ―タベ―ス・システムの問合せ文処理方法

Country Status (6)

Country Link
US (1) US5089985A (ja)
EP (1) EP0336584B1 (ja)
JP (1) JP2510004B2 (ja)
BR (1) BR8901616A (ja)
CA (1) CA1290456C (ja)
DE (1) DE68927743T2 (ja)

Families Citing this family (36)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0833799B2 (ja) * 1988-10-31 1996-03-29 富士通株式会社 データ入出力制御方式
DE69032576T2 (de) * 1990-02-27 1999-04-15 Oracle Corp Dynamische Optimierung eines einzelnen relationalen Zugriffs
US5717928A (en) * 1990-11-07 1998-02-10 Matra Hachette Sa System and a method for obtaining a mask programmable device using a logic description and a field programmable device implementing the logic description
JPH0827755B2 (ja) * 1991-02-15 1996-03-21 インターナショナル・ビジネス・マシーンズ・コーポレイション データの単位を高速度でアクセスする方法
US5794240A (en) * 1992-05-26 1998-08-11 Fujitsu Limited Multi-threaded sorting system for a data processing system
US5765005A (en) * 1992-06-01 1998-06-09 Hitachi, Ltd. Method for preparing form
US5423035A (en) * 1992-12-23 1995-06-06 Hughes Aircraft Company Method for evaluating relational database queries with automatic indexing and ordering of join components
US5581473A (en) * 1993-06-30 1996-12-03 Sun Microsystems, Inc. Method and apparatus for managing timing requirement specifications and confirmations and generating timing models and constraints for a VLSI circuit
US6163783A (en) * 1993-12-16 2000-12-19 Bmc Software, Inc. Check data operation for DB2
US5579515A (en) * 1993-12-16 1996-11-26 Bmc Software, Inc. Method of checking index integrity in a DB2 database
US5623693A (en) * 1994-02-17 1997-04-22 International Business Machines Corporation System for performing action by sorting actions into immediate and deferred queues, processing immediate queue while still sorting, and appending deferred queue to immediate after sorting
US5689697A (en) * 1994-06-27 1997-11-18 International Business Machines Corporation System and method for asynchronous database command processing
US5809501A (en) * 1996-01-30 1998-09-15 Telefonaktiebolaget L M Ericsson (Publ) Method and system of database management in an asynchronous transfer mode (ATM) environment
US5884297A (en) * 1996-01-30 1999-03-16 Telefonaktiebolaget L M Ericsson (Publ.) System and method for maintaining a table in content addressable memory using hole algorithms
US5799210A (en) 1996-04-18 1998-08-25 Oracle Corporation Method for allocating either private or shared buffer memory for storing data from sort operations in accordance with an assigned value or threshold value
US5895465A (en) * 1997-09-09 1999-04-20 Netscape Communications Corp. Heuristic co-identification of objects across heterogeneous information sources
US6263348B1 (en) * 1998-07-01 2001-07-17 Serena Software International, Inc. Method and apparatus for identifying the existence of differences between two files
US6408292B1 (en) 1999-08-04 2002-06-18 Hyperroll, Israel, Ltd. Method of and system for managing multi-dimensional databases using modular-arithmetic based address data mapping processes on integer-encoded business dimensions
US6385604B1 (en) 1999-08-04 2002-05-07 Hyperroll, Israel Limited Relational database management system having integrated non-relational multi-dimensional data store of aggregated data elements
US20020029207A1 (en) 2000-02-28 2002-03-07 Hyperroll, Inc. Data aggregation server for managing a multi-dimensional database and database management system having data aggregation server integrated therein
US7127416B1 (en) * 2001-06-18 2006-10-24 I2 Technologies Us, Inc. Distributed processing of sorted search results in an electronic commerce system and method
US20030093566A1 (en) * 2001-11-09 2003-05-15 Jardin Cary A. System and method for network and application transparent database acceleration
US7124137B2 (en) * 2002-12-19 2006-10-17 International Business Machines Corporation Method, system, and program for optimizing processing of nested functions
US7243098B2 (en) * 2002-12-19 2007-07-10 International Business Machines Corporation Method, system, and program for optimizing aggregate processing
US7080060B2 (en) * 2003-01-08 2006-07-18 Sbc Properties, L.P. System and method for intelligent data caching
US7827282B2 (en) * 2003-01-08 2010-11-02 At&T Intellectual Property I, L.P. System and method for processing hardware or service usage data
US7120864B2 (en) 2004-01-27 2006-10-10 International Business Machines Corporation Eliminating superfluous namespace declarations and undeclaring default namespaces in XML serialization processing
US8046354B2 (en) * 2004-09-30 2011-10-25 International Business Machines Corporation Method and apparatus for re-evaluating execution strategy for a database query
US7343367B2 (en) * 2005-05-12 2008-03-11 International Business Machines Corporation Optimizing a database query that returns a predetermined number of rows using a generated optimized access plan
US8055665B2 (en) * 2008-03-13 2011-11-08 International Business Machines Corporation Sorted search in a distributed directory environment using a proxy server
US7904464B2 (en) * 2008-08-27 2011-03-08 International Business Machines Corporation Virtual list view support in a distributed directory
JP5199317B2 (ja) * 2010-08-25 2013-05-15 株式会社日立製作所 データベース処理方法、データベース処理システム及びデータベースサーバ
JP5458330B2 (ja) * 2012-11-06 2014-04-02 株式会社日立製作所 データベース処理方法及びデータベース処理システム
KR101679011B1 (ko) * 2014-06-26 2016-11-24 주식회사 알티베이스 데이터베이스에서 데이터 이동을 처리하는 방법 및 장치
US20180097886A1 (en) * 2015-03-27 2018-04-05 Nec Corporation Sensor network system
CN106843803B (zh) * 2016-12-27 2019-04-23 南京大学 一种基于归并树的全排序加速器及应用

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4210961B1 (en) * 1971-10-08 1996-10-01 Syncsort Inc Sorting system
US4510567A (en) * 1981-05-18 1985-04-09 International Business Machines Corp. Qualifying and sorting file record data
US4514826A (en) * 1981-05-18 1985-04-30 Tokyo Shibaura Denki Kabushiki Kaisha Relational algebra engine
US4417332A (en) * 1981-06-15 1983-11-22 Rca Corporation Turntable speed control
JPS583031A (ja) * 1981-06-30 1983-01-08 Fujitsu Ltd リレ−シヨナル・モデルにおけるジヨイン演算処理方式
US4451901A (en) * 1982-01-21 1984-05-29 General Electric Company High speed search system
US4628483A (en) * 1982-06-03 1986-12-09 Nelson Raymond J One level sorting network
US4506326A (en) * 1983-02-28 1985-03-19 International Business Machines Corporation Apparatus and method for synthesizing a query for accessing a relational data base
US4587628A (en) * 1983-12-05 1986-05-06 International Business Machines Corporation Method and apparatus for dynamic invocation of utilities
US4611280A (en) * 1984-03-12 1986-09-09 At&T Bell Laboratories Sorting method
US4829427A (en) * 1984-05-25 1989-05-09 Data General Corporation Database query code generation and optimization based on the cost of alternate access methods
US4799152A (en) * 1984-10-12 1989-01-17 University Of Pittsburgh Pipeline feedback array sorter with multi-string sort array and merge tree array
US4991134A (en) * 1988-03-30 1991-02-05 International Business Machines Corporation Concurrent sorting apparatus and method using FIFO stacks

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
データベース・システムの原理(昭60)日本コンピュータ協会,P.326−333
日経エレクトロニクスNo.378(1985−9−23)P.235−280

Also Published As

Publication number Publication date
JPH0212461A (ja) 1990-01-17
DE68927743T2 (de) 1997-08-14
US5089985A (en) 1992-02-18
CA1290456C (en) 1991-10-08
EP0336584A2 (en) 1989-10-11
EP0336584A3 (en) 1992-09-30
DE68927743D1 (de) 1997-03-20
EP0336584B1 (en) 1997-02-05
BR8901616A (pt) 1989-11-21

Similar Documents

Publication Publication Date Title
JP2510004B2 (ja) リレ―シヨナル・デ―タベ―ス・システムの問合せ文処理方法
US6249783B1 (en) Method and apparatus for efficiently executing built-in functions
EP0326927B1 (en) Method and apparatus for processing a database
US5574900A (en) System and method for optimizing parallel processing of database queries
JP2509444B2 (ja) オブジェクトの図形的関連づけ装置及び方法
US5727196A (en) Optimized query interface for database management systems
US5940819A (en) User specification of query access paths in a relational database management system
US6567806B1 (en) System and method for implementing hash-based load-balancing query processing in a multiprocessor database system
US6003022A (en) Database execution cost and system performance estimator
US7080062B1 (en) Optimizing database queries using query execution plans derived from automatic summary table determining cost based queries
US5809495A (en) Method for obtaining information regarding the current activity of a database management system from a viritual table in a memory of the database management system
US7565342B2 (en) Dynamic semi-join processing with runtime optimization
US7945561B1 (en) Methods and apparatus for processing a query joining tables stored at different data sources
JP2549247B2 (ja) データベース用表示装置及び方法
US6285996B1 (en) Run-time support for user-defined index ranges and index filters
US7783625B2 (en) Using data in materialized query tables as a source for query optimization statistics
US6343286B1 (en) Efficient technique to defer large object access with intermediate results
US6694310B1 (en) Data flow plan optimizer
US20080059408A1 (en) Managing execution of a query against selected data partitions of a partitioned database
CA2104226A1 (en) Database management system graphical query front end
JP2002538546A (ja) Abapコードコンバータの仕様
US6748377B1 (en) Facilitating query pushdown in a multi-tiered database environment
US8041726B2 (en) System for executing a query having multiple distinct key columns
US6253196B1 (en) Generalized model for the exploitation of database indexes
US6192358B1 (en) Multiple-stage evaluation of user-defined predicates

Legal Events

Date Code Title Description
LAPS Cancellation because of no payment of annual fees