JP6110785B2 - アプリケーション開発段階でクエリにかかる経過応答時間を予測するシステム及び方法 - Google Patents

アプリケーション開発段階でクエリにかかる経過応答時間を予測するシステム及び方法 Download PDF

Info

Publication number
JP6110785B2
JP6110785B2 JP2013264633A JP2013264633A JP6110785B2 JP 6110785 B2 JP6110785 B2 JP 6110785B2 JP 2013264633 A JP2013264633 A JP 2013264633A JP 2013264633 A JP2013264633 A JP 2013264633A JP 6110785 B2 JP6110785 B2 JP 6110785B2
Authority
JP
Japan
Prior art keywords
query
database
emulated
size
access
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.)
Active
Application number
JP2013264633A
Other languages
English (en)
Other versions
JP2015049891A (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.)
Tata Consultancy Services Ltd
Original Assignee
Tata Consultancy Services 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 Tata Consultancy Services Ltd filed Critical Tata Consultancy Services Ltd
Publication of JP2015049891A publication Critical patent/JP2015049891A/ja
Application granted granted Critical
Publication of JP6110785B2 publication Critical patent/JP6110785B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Prevention of errors by analysis, debugging or testing of software
    • G06F11/3668Testing of software
    • G06F11/3696Methods or tools to render software testable
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/04Forecasting or optimisation specially adapted for administrative or management purposes, e.g. linear programming or "cutting stock problem"

Landscapes

  • Engineering & Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Human Resources & Organizations (AREA)
  • Economics (AREA)
  • Strategic Management (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Operations Research (AREA)
  • Game Theory and Decision Science (AREA)
  • Tourism & Hospitality (AREA)
  • Marketing (AREA)
  • General Business, Economics & Management (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Development Economics (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Debugging And Monitoring (AREA)

Description

本発明は、全体的に、クエリにかかる経過応答時間を予測するシステム及び方法に関する。詳細には、本システム及び方法は、アプリケーション開発段階でクエリにかかるディスクアクセスの応答時間を予測するシステム及び方法に関する。
データベースアプリケーションの開発環境において、アプリケーション開発段階で最も重要な要因は、アプリケーションのテスト中にクエリにかかる検索時間である。アプリケーションを開発した後、様々なデータベースに対して必要な結果すべてを調査するテストをする。クエリの実行及びその応答時間は、データベースのサイズに極めて大きく左右される。データベースのサイズは、むしろクエリの応答時間に影響を及ぼす最重要要因の1つである。その上、クエリの応答時間は、データベースのサイズが大きくなるにつれて劇的に影響を受ける。そのため、データベースのサイズが大きい場合にクエリの経過応答時間を予測、調査することが極めて重要である。データベースのサイズは、アプリケーションの性能に不都合な影響を及ぼすことがある。
アプリケーション開発段階でのクエリ経過応答時間、及び様々なサイズのデータベースに対してかかるクエリ経過応答時間に関する対策を提供するために、様々な負荷生成ツールが市販されている。最も広く用いられている手法は、データベースの一部を使用してアプリケーションをテストするものである。多くの場合、問題に関わる資源は、テストプロセスにも影響を及ぼす。テストに必要な膨大な量のデータ及びレコードを格納するためには、大きく高性能のストレージサーバが必要である。このような膨大なレコードの場合、データの負荷も直面することの多い問題の1つである。
本発明は、追加の資源を消費することなく、より短時間でテストを実行できる対策を提供することを課題とする。
ここでは、アプリケーション開発段階でクエリにかかる経過応答時間を予測するためのシステム及び方法に関する局面を紹介し、この局面を以下の説明でさらに詳細に記載する。この概要は、特許請求する主題の本質的な特徴を特定することを意図するものではなく、特許請求する主題の範囲を決定または限定するために使用することを意図するものでもない。
アプリケーション開発段階でクエリにかかる経過応答時間を予測するためのシステムを開示する。このシステムは、プロセッサ、及びこのプロセッサに接続するメモリを備えている。プロセッサは、メモリに格納された複数のモジュールを実行することができる。複数のモジュールは、データベースに対してクエリを実行するように構成されたクエリ実行モジュールと、エミュレートしたデータベースを得るためにデータベースをエミュレートするように構成されたエミュレーションモジュールと、クエリによりデータベースへアクセスするモードに基づいてクエリを分類するように構成された分類モジュールと、小サイズのデータベースに対して1つ以上のパラメータに沿ったアクセスパターンを決定するように構成されたパラメータ決定モジュールとを含む。アクセスパターン及びパラメータは、データベースのサイズに影響を受けやすい。モジュールは、さらに、アクセスパターン及び1つ以上のパラメータに対して特殊分類技術を用いることによって、エミュレートしたデータベースに対してクエリにかかる入出力アクセス時間を計算するように構成されるとともに、この入出力アクセス時間を用いてデータベースのサイズを変更することによって、エミュレートしたデータベースに対するクエリの経過応答時間を算出するように構成された計算モジュールを備えている。
アプリケーション開発段階でクエリにかかる経過応答時間を予測する方法を開示する。本方法は、クエリをデータベースに対して実行することと、エミュレートしたデータベースを得るためにデータベースをエミュレートすることと、このように実行したクエリを、クエリによりデータベースへアクセスするモードに基づいて分類することと、データベースのサイズに対して1つ以上のパラメータに沿ったアクセスパターンを決定することとを含む。アクセスパターン及びパラメータは、データベースのサイズに影響を受けやすい。本方法は、さらに、アクセスパターン及び1つ以上のパラメータに対して特殊分類技術を用いることによって、エミュレートしたデータベースに対するクエリにかかる入出力アクセス時間を計算することと、この入出力アクセス時間を用いてデータベースのサイズを変更することによって、クエリにかかる経過応答時間を算出することとを含む。この場合、1つ以上のパラメータに沿ったアクセスパターンの実行、分類、決定、経過応答時間のエミュレート、計算及び算出は、プロセッサによって実施される。
アプリケーション開発段階でクエリにかかる経過応答時間を予測するためのコンピュータプログラムを組み入れたコンピュータプログラム製品を開示する。本コンピュータプログラム製品は、小サイズのデータベースに対してクエリを実行するプログラムコードと、エミュレートしたデータベースを得るためにデータベースをエミュレートするためのプログラムコードと、このように実行したクエリを、クエリによりデータベースへアクセスするモードに基づいて分類するプログラムコードと、小サイズのデータベースに対して1つ以上のパラメータに沿ったアクセスパターンを決定するプログラムコードとを含み、この場合、アクセスパターン及びパラメータは、データベースのサイズに影響を受けやすい。コンピュータプログラム製品は、さらに、アクセスパターン及び1つ以上のパラメータに対して特殊分類技術を用いることによって、エミュレートしたデータベースへの入出力アクセス時間を計算するプログラムコードと、この入出力アクセス時間を用いてデータベースのサイズを変更することによって、クエリにかかる経過応答時間を算出するプログラムコードとを備えている。
本発明の実施形態によるシステムのネットワーク実装を示す説明図 本発明の実施形態によるシステムに搭載されている様々なモジュールを示す説明図 本発明の実施形態による、クエリの経過応答時間を予測するための段階的な方法論を示すフローチャート 本発明の例示的な実施形態による、フルテーブルスキャンクエリにかかる経過応答時間を示すグラフ 本発明の例示的な実施形態による、高速インデックススキャン及び主インデックススキャンクエリにかかる経過応答時間を示すグラフ 本発明の例示的な実施形態による、ノンユニークインデックススキャンクエリにかかる経過応答時間を示すグラフ
添付の図面を参照して詳細な説明を記載する。図面では、符号の一番左の数字(2桁の場合もある)は、その符号が最初に現れる図面を特定するものである。図面全体を通して、同じ符号は同様の特徴及び構成要素を指すものとして使用している。
アプリケーション開発段階でクエリにかかる経過応答時間を予測するためのシステム、方法及びコンピュータプログラム製品を開示する。まずクエリを実行し、データベースをエミュレートする。次に、クエリによりデータベースへアクセスするモードに基づいて、クエリを分類する。クエリを分類した後、クエリによるデータベースへのアクセスパターンを、1つ以上のパラメータに沿って決定する。アクセスパターン及びパラメータは、データベースのサイズ及びクエリの種類に影響を受けやすく、データベースのサイズが大きくなるにつれて、クエリの検索サイズに影響を及ぼす。エミュレートしたデータベースを得るために、アクセスパターン及び1つ以上のパラメータに対して分類アクセス技術を適用することによって、エミュレートしたデータベースに対する入出力アクセス時間を計算して、その後このエミュレートしたデータベースに対するクエリ経過応答時間を算出する。
アプリケーション開発段階でクエリにかかる経過応答時間を予測するためのシステム及び方法について記載した局面は、任意数の異なるコンピューティングシステム、環境、及び/または構成に実装できるが、以下の例示的なシステムの背景で実施形態を説明する。
ここで、図1を参照すると、本主題の実施形態による、経過応答時間を予測するためのシステム102のネットワーク実装100が示されている。1つの実施形態では、システム102は、本番データベースをエミュレートすることによって、本番データベースに対するクエリの経過応答時間の予測を実現する。小サイズのデータベースを用いて、クエリによるデータベースへのアクセスパターン及び1つ以上のパラメータのような、様々な統計パラメータを算出する。次に、アクセスパターン及びパラメータを用いて本番データベースをエミュレートし、クエリの応答時間を計算する。
本主題は、システム102をサーバ上のアプリケーションとして実装することを考えて説明しているが、システム102を、ラップトップコンピュータ、デスクトップコンピュータ、ノートブックコンピュータ、ワークステーション、メインフレームコンピュータ、サーバ、ネットワークサーバなど、多様なコンピューティングシステムに実装してもよいことは理解されるであろう。システム102には、1つ以上のユーザデバイス104−1、104−2…104−N(以下、総称してユーザデバイス104と表記)を介して、またはユーザデバイス104に搭載されているアプリケーションを介して、複数のユーザがアクセスできることは理解されるであろう。ユーザデバイス104の例には、ポータブルコンピュータ、携帯情報端末、ハンドヘルドデバイス、ワークステーションなどがあってよいが、これに限定されない。ユーザデバイス104は、ネットワーク106を介してシステム102に通信接続されている。
1つの実装では、ネットワーク106は、無線ネットワーク、有線ネットワークまたはこれを組み合わせたものとすることができる。ネットワーク106は、イントラネット、ローカルエリアネットワーク(LAN)、ワイドエリアネットワーク(WAN)、インターネットなど、異なる種類のネットワークの1つとして実装することができる。ネットワーク106は、専用ネットワークまたは共有ネットワークのいずれであってもよい。共有ネットワークは、異なる種類のネットワークの集まりであり、多様なプロトコル、例えば、ハイパーテキストトランスファープロトコル(HTTP)、トランスミッションコントロールプロトコル/インターネットプロトコル(TCP/IP)、ワイヤレスアプリケーションプロトコル(WAP)などを用いて互いに通信する。さらにネットワーク106は、ルータ、ブリッジ、サーバ、コンピューティングデバイス、ストレージデバイスなどの多様なネットワークデバイスを備えることができる。
次に図2を参照すると、本主題の実施形態によるシステム102が示されている。1つの実施形態では、システム102は、少なくとも1つのプロセッサ202、入力/出力(I/O)インターフェース204、及びメモリ206を備えることができる。少なくとも1つのプロセッサ202は、1つ以上のマイクロプロセッサ、マイクロコンピュータ、マイクロコントローラ、デジタルシグナルプロセッサ、中央処理装置、ステートマシン、論理回路、及び/または動作命令に基づいて信号を制御する任意のデバイスとして実装することができる。その他の能力のうち、少なくとも1つのプロセッサ202は、メモリ206に格納されているコンピュータ可読命令をフェッチして実行するように構成される。
I/Oインターフェース204は、多様なソフトウェアインターフェース及びハードウェアインターフェース、例えば、ウェブインターフェース、グラフィカルユーザインタフェースなどを備えることができる。I/Oインターフェース204によって、システム102が直接またはクライアントデバイス104を介してユーザと相互作用することができる。さらに、I/Oインターフェース204によって、システム102が、ウェブサーバ及び外部データサーバ(図示せず)など、その他のコンピューティングデバイスと通信することができる。I/Oインターフェース204によって、例えば、LAN、ケーブルなどの有線ネットワーク、及びWLAN、セルラー、または衛星などの無線ネットワークを含む、多岐にわたるネットワーク及びプロトコルタイプ内での複数の通信を容易にすることができる。I/Oインターフェース204は、多数のデバイスを相互に接続したり、別のサーバに接続したりするための1つ以上のポートを備えることができる。
メモリ206は、先行技術で公知の任意のコンピュータ可読媒体を備えることができ、これには例えば、スタティック・ランダムアクセスメモリ(SRAM)及びダイナミックランダムアクセスメモリ(DRAM)などの揮発メモリ、ならびに/または読み出し専用メモリ(ROM)、消去可能かつプログラム可能なROM、フラッシュメモリ、ハードディスク、光ディスク、及び磁気テープなどの不揮発メモリがある。メモリ206は、モジュール208及びデータ210を備えることができる。
モジュール208は、ルーチン、プログラム、オブジェクト、コンポーネント、データ構造など、特定のタスクを遂行するか、あるいは特定の抽象データ型を実装するものを備えることができる。1つの実装では、モジュール208は、クエリ実行モジュール212、エミュレーションモジュール214、分類モジュール216、パラメータ決定モジュール218、及び計算モジュール220ならびにその他のモジュール219を備えることができる。その他のモジュール219は、システム102のアプリケーション及び機能を補足するプログラムまたは符号化された命令を備えることができる。
データ210は、とりわけ、1つ以上のモジュール208が処理し、受信し、生成したデータを格納するためのリポジトリとしての役割を果たす。データ210(データベースエンジン)は、データベース222、本番データベース224(実際に作成されたもの)、小サイズのデータベース226及びその他のデータ130も備えることができる。その他のデータ130は、その他のモジュール219で1つ以上のモジュールを実行することで生成されたデータを備えることができる。
一実施形態によれば、システム102は、ウェブサーバでのクエリ処理時間が原因でクエリ結果に生じることがある時間の遅延を回避するために、データベース222のサーバにホストされる。
クエリは、クエリ実行モジュール212を用いて、まず小サイズのデータベース226に対して実行される。小サイズのデータベースに対してクエリを実行する目的は、本番データベース224をエミュレートできるように、データベースの統計項目(小サイズのデータベース226)を収集することである。
Oracleなどのデータベースサーバは、クエリを発行して結果を得るためにSQLクエリ及びSQLクライアントを実行する2つの処理と、クエリを構文解析し、ディスクからデータをフェッチし、データを処理し、これをクライアントに送り返すためのクエリサーバとを有する。クエリの経過応答時間は、処理の際にクエリサーバで要する時間、及びクライアントに対してデータを出力する時間を含むものとする。
小サイズのデータベースに対してマイクロベンチマークツールを用いると、フルテーブルスキャンクエリの場合、クエリサーバは、連続するシステム読み出し要求のシーケンスとしてテーブルからデータにアクセスし、各々のサイズはデータベースブロックの倍数であることがわかる。各システムの読み出しの後、クエリサーバは、フィルタ条件の適用や、これをSQLクライアントに対して準備するなどのデータ処理を行う。データの準備には、データを初期化すること、及びこのデータを複数のパケットに分割し、それぞれのサイズを、クライアントで規定された受信バッファサイズと同じにすることが含まれる。準備したデータパケットをクライアントに送信し、その後にクライアントからの承認を待ってから、次のパケットを送信する。さらに、最初のデータパケットを送信するまでに、クエリサーバで膨大な時間が費やされるが(この時間を「データ準備時間」と称する)、承認を受信すると即座に連続データパケットが送信されることがわかる。次のシステム読み出し要求は、全パケットがクライアントに送信されるまで発行されない。
インデックス(B木と仮定)を用いてデータにアクセスする場合、クエリプロセッサは、葉ブロックにヒットするまでインデックス木を探索する。葉ノード内のデータポインタを使用して、適格な葉ブロック及びマッチするデータブロックすべてにアクセスする。アクセスしたデータブロックから、要求された行のみを準備し、クライアントに送信する。この場合、各々のシステム読み出し要求またはインデックス木、葉ノード及びデータノードを含むディスクアクセスは、データベースブロックサイズのものである。したがって、インデックススキャンクエリにかかるERT(Elapsed Response Time、経過応答時間)は、以下の和である。
1. インデックス木の葉ノードまで探索するのにかかる時間
2. 適格な葉ノードにアクセスするための時間
3. マッチするデータブロックすべてにアクセスするのにかかる時間
4. 各システム読み出し要求の後のデータ準備に費やされる合計時間
5. 全データパケットの送信にかかる合計時間
6. 送信したデータパケットに対するクライアントからの各承認を受信するのを待つ際に費やされる合計時間であって、この時間には、受信を承認する前にデータを初期化するのにクライアントが費やした時間を含むことができる。
第2及び第3のステップは、異なるデータアクセスパターンでインターリーブされる。葉ノードブロックへのアクセスは、本質的に連続しているが、これらのアクセスは、データブロックアクセスと共にインターリーブされる。主インデックススキャンの場合、データブロックは、各葉ノードに向けて連続的にアクセスされるが、主ではないインデックススキャンの場合は、シーケンシャルアクセスのセグメントが多数ある。
クエリ実行モジュール212でクエリを実行した後、エミュレーションモジュール214でデータベースをエミュレートする。クエリは、分類モジュール216を用いて分類される。この分類は、クエリによりデータベースへアクセスするモードに基づいている。テーブル内のデータには、フルテーブルスキャン、高速インデックスフルスキャン、主キーを使用するインデックスレンジスキャンまたはノンユニークキーインデックスを使用するインデックスレンジスキャンとしてのクエリによってアクセスする。クエリは、クエリ実行中にデータにアクセスする方法、及びユーザに返されるデータ量に応じて分類される。
テーブルに対するクエリは、行を順に読み出すか、あるいはインデックスを使用して行を選択して読み出し、フルテーブルスキャンの場合は前者であり、インデックススキャンの場合は後者であり、これらはそれぞれ、フルテーブルスキャンクエリ、インデックススキャンクエリと呼ばれる。インデックススキャンクエリでは、選択は、そのクエリで与えられたフィルタ条件に左右される(WHERE句)。インデックススキャンでは、主キーまたは副キーに対して、インデックスを使用することができ、副キーは、データベース内の他のテーブルの主キーであってよく、前者は主インデックススキャンクエリ、後者はノンユニークインデックススキャンクエリとそれぞれ呼ばれる。クエリの要求するデータがインデックス内にあるという特殊なインデックススキャンの場合では、全テーブルを出力する場合であってもインデックスブロックのみを読み出すことができ、これは、高速フルインデックススキャンと呼ばれる。フルテーブルスキャンクエリの場合、全テーブルブロックが読み出され、フィルタは、これが存在すれば、選択行/データを得るためにアクセス後のみに適用されるが、インデックススキャンでは、選択したデータブロックのみが読み出される。フルスキャンまたはインデックススキャンによるテーブルスキャンを行った後、フェッチしたデータは、必要に応じて集約関数を使用して処理されてから、ユーザに送信される。上記のクエリの特徴はいずれも、データベースのサイズが大きくなるにつれてクエリの応答時間に影響を及ぼす。出力データのサイズが及ぼす影響は、テーブルへのアクセス後に含まれることがある。
このように、分類モジュール216は、アクセスモードのみに基づいてクエリを分類する。
クエリを分類する種類を以下に説明する。
フルテーブルスキャンクエリ:フィルタ条件内の選択に関わらず、テーブルの全ブロックに全面的にアクセスする。クエリには、集約した出力として単一行を返すか、あるいはテーブルから大部分の行を返すことができる。
主インデックススキャンクエリ:テーブルの主キーに対するインデックスを使用して、フィルタ条件を満たすブロックのみにアクセスする。クエリには、主キーs_suppkeyに対するインデックスを使用してデータにアクセスする間に、集約した出力として単一行を返すか、あるいはテーブルから大部分の行を返すことができる。
ノンユニークインデックススキャンクエリ:テーブルのノンユニーク(副)キーであって、別のテーブルの主キーであってよいキーに対するインデックスを使用して、フィルタ条件を満たすブロックのみにアクセスする。クエリには、ノンユニークキーs_nationkeyに対するインデックスを使用してデータにアクセスする間に、集約した出力として単一行を返すか、あるいはテーブルから大部分の行を返すことができる。
高速インデックススキャン:インデックススキャンの場合、インデックスブロックまたはデータブロックのいずれかからデータを出力できる。前者の場合、クエリは、テーブルブロックにアクセスする必要はなく、インデックスブロックからのみデータを出力する。
例えば、フルテーブルスキャンクエリの集約出力は、Select sum(s_acctbal) from supplierであり、フルテーブルスキャンクエリのフル出力は、Select * from supplierである。一方、高速インデックススキャンクエリの集約出力は、Select /*+index (pk_supp) */ sum(s_suppkey) from supplier where s_suppkey>3であり、インデックススキャンクエリのフル出力は、Select /*+index (pk_supp) */ s_suppkey from supplier where s_suppkey>3である。
したがって、上記の例から、一度に読み出されるデータのサイズ及び1つずつ読み出されるデータブロックの相対アドレスに関して、アクセスモードは1つ1つ異なることがわかる。これをデータアクセスパターンと呼ぶ。
次に、システム102は、小サイズのデータベースに対して1つ以上のパラメータに沿ったアクセスパターンを決定する。アクセスパターン、パラメータ及びクエリは、データベースのサイズにも、クエリが遂行するデータアクセスの種類にも影響を受けやすく、このクエリは、本特許によって分類されるクエリの種類によって異なる。
フルテーブルスキャンでは、読み出されるデータのサイズは、64Kから1MBまで幅があるが、インデックススキャンでは、読み出されるデータのサイズは、常に8k(データベースブロックのサイズが8Kであれば)である。
フルテーブルスキャンでは、相対アドレスは、事実上連続している。しかし、インデックススキャンでは、常に1つの葉ノード(ブロック)から読み出され、この葉ノードに一連のデータブロックが続き、このシーケンスがこれ以降繰り返される。葉ブロックは、互いに連続しており、データブロックの相対アドレスは、インデックススキャンの種類によって異なる。
メモリは、さらに、小サイズのデータベース226に対して、1つ以上のパラメータに沿ってクエリによるデータベースへのアクセスパターンを決定するように構成された、パラメータ決定モジュール218を格納している。このアクセスパターン及びパラメータを、データベース統計項目と呼ぶ。
アクセスパターン及び1つ以上のパラメータに対して特殊分類技術を適用して、エミュレートしたデータベースへの入出力アクセス時間を算出する。
フルテーブルスキャンクエリのための特殊分類技術
フルテーブルスキャンクエリに対する分類技術において、クエリ、テーブルスキーマが投影するテーブルサイズS(つまり行数と行の平均サイズ)は、入力値として供給される。その後、計算モジュール220は、この入力値を処理して、フルテーブルスキャンクエリに対する入出力アクセス時間を計算する。
テーブルスキャンクエリに対する分類技術の段階的な詳細内容を以下に説明する。
1.サイズが数メガバイトである小データベースを作成する。このデータベースに対してクエリを実行し、マイクロベンチマークツールを起動させて以下を計算する。
a.クエリサーバからクライアントに送信されたデータパケットのサイズ
b.データ準備にかかった平均時間
c.1つのデータパケットを送信する平均時間
d.各データパケットに対する承認を受信するまでの平均待ち時間
2.テーブルサイズ「S」の倍数サイズのファイルを生成する(DBファイルのサイズに合わせるため)。
3.ファイルの先頭に近い方の無作為な数を開始アドレスとする。データアクセスパターンを、読み出すデータのサイズ及び読み出す元の場所を含むシステム読み出し要求のシーケンスとして生成する。フルテーブルスキャンでは、システム読み出し要求が、前段の読み出し要求に続く場所から読み出す。
4.まず、開始アドレスでサイズ8Kのシステム読み出しを生成する。これに続いて、ファイルサイズが484K(4×64K×56K)よりも大きい場合、サイズ64Kとサイズ56Kとの対からなるシステム読み出し要求を最大4対生成する。ファイルサイズを484K減らす、すなわちS=S−484Kにする。Sが1Mよりも大きければ、サイズ1Mのシステム読み出しを生成し続け、Sを1M減らし、Sが1M未満に縮小するまで減らし続ける。サイズがSのままである最後のシステム読み出し要求を生成する。
5.大サイズ(およそ1MB以上)のシステム読み出し要求数を計算する。
6.各システム読み出し要求に対するデータパケット数を、(1.aから得られた)データパケットのサイズで除算した読み出し要求のサイズとして計算する。
集約関数を伴うクエリの場合のように出力が一行であれば、読み出し要求は、クライアントからの送受信を間に挟むことなく1つずつ実行される。全行が集約関数を使用して一緒に処理され、ネットワークに対して1行の出力をクライアントに返す。したがって、ネットワーク時間はごくわずかである。同じように、フルテーブルスキャンに対するフィルタ条件によっても、クライアントとクエリサーバとの間のデータ通信が縮小されるため、ネットワーク時間の短縮につながる。この場合、データパケットの合計数は、線形外挿した出力データサイズをデータパケットのサイズで除算して計算することができる。
7.1.b、1.c及び1.dで明らかになった合計遅延時間を、システム読み出し要求の中に分散して入れる。
8.上記で生成したデータアクセスパターンを、ステップ2で生成したファイルに当てはめる。すると、計算モジュール220は、かかった合計時間を計算し、これがクエリのIOアクセス時間に相当する。
インデックススキャンクエリに対する特殊分類技術
インデックス(B木と仮定)を用いてデータにアクセスする場合、クエリプロセッサは、key=valなどのフィルタ条件にマッチする葉ブロックに達するまでインデックス木を探索し、式中keyは、インデックスが作成されたテーブルの列である。データベースサーバは、各葉ノードにアクセスした後、葉ノード内のデータポインタを使用して、すべての適格な葉ブロックに1つ1つアクセスし、マッチするデータブロックすべてにアクセスする。アクセスしたデータブロックから、要求された行のみを読み出し、処理し、準備し、クライアントに送信する。この場合、各々のシステム読み出し要求またはインデックス木、葉ノード及びデータノードを含むディスクアクセスは、データベースブロックサイズのものである。したがって、インデックススキャンクエリに対する入出力アクセス時間は、以下の和である。
1.インデックス木の葉ノードまで探索するのにかかる時間
2.適格な葉ノードにアクセスするための時間
3.マッチするデータブロックすべてにアクセスするのにかかる時間
4.データを出力するためのネットワーク伝達時間
ステップ3から得られる時間の寄与は、データベース内で行がどのように配置されるかに依存している。インデックス木の葉ノードは、key値の小さい順に格納されるため、葉ブロックには順番にアクセスされる。その上、葉ブロックは、インデックス構造の一部であるため、葉ブロックへのアクセスは、行がデータブロック内でどのように配置されているかには依存していない。
データが均一に分散され、削除されることのないデータベースの場合、主インデックスがキーをアドレス指定すれば、データベースはデータブロックに順次アクセスされる。ノンユニークインデックススキャンの場合、データブロックへのアクセスは、シーケンシャルアクセスの断片としてモデル化されてよい。高速インデックススキャンの場合、葉ノードに対してのみシーケンシャルアクセスがあり、データブロックは読み出されない。
データアクセスパターンは、葉ノード数、インデックス木の高さ及びデータブロックノード数を用いて生成することができ、これらの統計項目は、データベースを用いて入手可能である。しかし、大サイズが投影された場合、そのデータベースは存在しないため、これらの統計項目は、物理的に存在する小サイズのデータベースから収集され、線形外挿されて投影サイズに合わせられる。インデックススキャンでは、データの読み出しは、データベースブロックのサイズで読み出される。したがって、異なるインデックススキャンでは、各システム読み出しに対する場所の生成が異なる。ネットワーク上でのIOアクセス時間は、フルテーブルスキャンに対して考察した方法と同じように計算することができる。
高速インデックススキャンクエリに対する特殊分類技術
葉ノードのみにアクセスされ、データはインデックス構造からのみ出力される。
高速インデックススキャンクエリに対する特殊分類技術では、クエリ(key<val,key<val and key=val)は、テーブルスキーマ、テーブルサイズ(つまり行数と行の平均サイズ)は、入力値として供給される。計算モジュール220は、この入力値を処理して入出力アクセス時間を計算する。
特殊分類技術の詳細は、以下の通りである。
1.サイズが数メガバイトの小データベースを作成する。DB特殊ツールを使用して、次のデータベース統計項目−データベースブロックサイズ(Bsize)、インデックスを付した列の最小値(min)、列の最大値(max)、キーごとの葉ノード数(Lsize)及び木の高さ(Hsize)を取得する。これらのデータベース統計項目は、得られた統計項目を線形外挿することによって、投影されたデータベースサイズSで得られる。
2.マッチしたkey値(MKV)の数を、
a.key=valの場合は1
b.key<valの場合は(val−min)
c.key>valの場合は(max−val)
として計算する。
3.合計適格葉ノード、QL=Lsize*MKV
4.連続するオフセットサイズ及び開始アドレスを有するデータアクセスパターンを生成し、オフセットをすべてBsizeのものにする。まずHsize+1のシステム読み出しを生成し、各々を無作為なアドレスから開始させる。これに、QL−1のシーケンシャルアクセスが続く。
5.フルテーブルスキャンAFTS.6で考察したようにネットワークパラメータを計算し、AFTS.1から得られた合計遅延時間をシステム読み出し要求の中に分散して入れる。
6.上記で生成されたデータアクセスパターンを当てはめる。計算モジュール220を用いてかかった合計時間を計算し、これが、クエリの入出力アクセス時間に相当する。
主インデックススキャンクエリに対する特殊分類技術
主インデックススキャンの場合、フィルタ条件がkey=val、またはkey<valなどであるクエリでは、テーブルのサイズに関係なく、一定数の葉ブロック及びデータブロックに常にアクセスする。したがって、インデックス木の高さが増した場合にのみ、ブロックアクセスの合計数が増加する。したがって、このようなクエリのIOアクセス時間は、テーブルサイズに対して不変である。しかし、フィルタ条件がkey>valなどであるクエリでは、アクセスされるデータブロックの数は、データサイズが増すと増加する。その上、データブロックは、そのデータブロックの主キーの小さい順にアクセスされるため、ブロックアドレス、すなわちデータブロックアクセスは繰り返されない。
主インデックススキャンクエリに対する特殊分類技術では、クエリ(key<val,key<val and key=val)は、テーブルスキーマ、テーブルサイズ(つまり行数と行の平均サイズ)は、入力値として供給される。その後、この入力値は、計算モジュール220によって処理されて、入出力アクセス時間を計算する。
主インデックススキャンクエリに対する特殊分類技術の詳細は、以下の通りである。
1.サイズが数メガバイトの小データベースを作成する。DB特殊ツールを使用して、次のデータベース統計項目−データベースブロックサイズ(Bsize)、インデックスを付した列の最小値(min)、列の最大値(max)、キーごとのデータブロック数(Dsize)、キーごとの葉ノード数(Lsize)及び木の高さ(Hsize)を取得する。得られた統計項目を線形外挿することによって、投影されたデータベースサイズSでこれらのデータベース統計項目を取得する。
2.これらのデータベース統計項目は、ステップ1から得られた統計項目を線形外挿することによって、投影されたデータベースサイズSで得られる。
3. マッチしたkey値(MKV)の数を、
a.key=valの場合は1
b.key<valの場合は(val−min)
c.key>valの場合は(max−val)
として計算する。
4.合計適格葉ノード、QL=Lsize*MKV
5.連続するオフセットサイズ及び開始アドレスを有するデータアクセスパターンを生成し、オフセットをすべてBsizeのものにする。まずHsize+1のシステム読み出しを生成し、各々が無作為なアドレスから開始する。これに、QL−1のシーケンシャルアクセスが続き、このシーケンシャルアクセスの中に、2つの葉ノードへアクセスする間のDsizeのシーケンシャルアクセスが分散して入れられる。葉ブロック及びデータブロックに対して開始されるブロックアドレスは異なるため、そのアドレスは、互いに無作為なものである。
6.フルテーブルスキャンAFTS.6で考察したようにネットワークパラメータを計算し、AFTS.1から得られた合計遅延時間をシステム読み出し要求の中に分散して入れる。
7.上記で生成されたデータアクセスパターンを当てはめる。すると、計算モジュール220はかかった合計時間を計算し、これが、クエリの入出力アクセス時間に相当する。
ノンユニークインデックススキャンクエリに対する特殊分類技術
ノンユニークキーに対してインデックスを使用してテーブルにアクセスする場合、データブロックアクセスの順序は、テーブル内に分散されるデータの配置に依存する。ノンユニークインデックスを使用して、インデックスを付した列の値にマッチする一連の行にアクセスすることで、列の値がテーブル内の行に一様に無作為に分散される形で配置される場合、テーブルの全ブロックにアクセスすることになり得る。ノンユニークの列の値を決定的に小さい順に分散させて、主キーと同じデータアクセスパターンにマッピングする。
ノンユニークキーでのインデックススキャンの場合、フィルタ条件がkey=valなどであるクエリでは、2つ以上の葉ブロック及び2つ以上のデータブロックにアクセスできるが、データブロックは、アドレスの小さい順にアクセスされる。しかし、フィルタ条件がkey>val、またはkey<valなどであるクエリの場合は、データブロックを2回以上アドレス指定することができる。なぜなら、列の値は一様に無作為に分散されているため、1つのデータブロックが全key値のレコードを有する確率は等しいからである。これが、データブロックに繰り返しアクセスすることにつながる。この繰り返しアクセスは、アクセスされるテーブルのサイズ及びキャッシュに応じて、データベースキャッシュ、OSキャッシュまたはストレージデバイスから直接提供されてよい。
テーブルサイズ<データベースキャッシュの場合、繰り返しアクセスは、データベースキャッシュから提供される。
データベースキャッシュ<テーブルサイズ<OSキャッシュの場合、繰り返しアクセスは、OSキャッシュから提供される。
テーブルサイズ>OSキャッシュの場合、繰り返しアクセスは、ハードディスクから提供される。
ノンユニークインデックススキャンクエリに対する特殊分類技術では、クエリ(key<val,key<val and key=val)、テーブルスキーマ、テーブルサイズ(つまり行数と行の平均サイズ)は、入力値として供給される。その後、この入力値は、計算モジュール220によって処理されて、入出力アクセス時間を計算する。
特殊分類技術の詳細は、以下の通りである。
1.サイズが数メガバイトの小データベースを作成する。DB特殊ツールを使用して、次のデータベース統計項目−データベースブロックサイズ(Bsize)、葉ノードごとのデータポインタ数(Dptr)、インデックスを付した列の最小値(min)、列の最大値(max)、キーごとの葉ノード数(Lsize)及び木の高さ(Hsize)を取得する。得られた統計項目を線形外挿することによって、投影されたデータベースサイズSでこれらのデータベース統計項目を取得する。
2.これらのデータベース統計項目は、ステップ1から得られた統計項目を線形外挿することによって、投影されたデータベースサイズSで得られる。
3.マッチしたkey値(MKV)の数を、
a.key=valの場合は1
b.key<valの場合は(val−min)
c.key>valの場合は(max−val)
として計算する。
4.合計適格葉ノード、QL=Lsize*MKV
5.連続するオフセットサイズ及び開始アドレスを有するデータアクセスパターンを生成し、オフセットをすべてBsizeのものにする。まずHsize+1のシステム読み出しを生成し、各々が無作為なアドレスから開始する。これに、QL−1のシーケンシャルアクセスが続き、このシーケンシャルアクセスの中に、2つの葉ノードへアクセスする間のDptrのシーケンシャルアクセスが分散して入れられる。葉ブロック及びデータブロックに対して開始されるブロックアドレスは異なるため、そのアドレスは、互いに無作為なものである。テーブルサイズ>データベースキャッシュの場合は、MKV反復に対してこのステップを繰り返すが、最初の反復で生成されたものと同じセットのブロックアドレスが維持される。
6.フルテーブルスキャンAFTS.6で考察したようにネットワークパラメータを計算し、AFTS.1から得られた合計遅延時間の中にシステム読み出し要求を分散して入れる。
7.上記で生成されたデータアクセスパターンを当てはめる。すると、計算モジュール220はかかった合計時間を計算し、これが、クエリの入出力アクセス時間に相当する。
次に、計算モジュール220は、入出力アクセス時間を使用してクエリにかかる経過応答時間(ERT)を算出する。
計算モジュール220によって推定された通りの、フルテーブルスキャンクエリとインデックススキャンクエリとの両方に対するサイズ「S」のクエリERT(Elapsed Response Time、経過応答時間)は、以下の和である。
1.構文分析時間
2.すべてのシステム読み出し要求にかかった合計時間
3.システム読み出し要求の合計数×平均データ準備時間
4.データパケットの合計数×パケット送信にかかった平均時間
5.データパケットの合計数×クライアントからの承認を受信するまでの待ち時間
例示的な実施形態として、システム102の動作を説明するために、特定のDBサーバ、Oracle 11gを検討してみる。4GBのRAMを搭載したIntelのクアッドコアサーバを使用する。データベーススキーマ及びデータは、TPC−H(11)ベンチマークに基づくdbgenユーティリティを使用して生成される。以下に挙げたように、供給側テーブル内の統合クエリのうちの5つに対して結果が得られる。これらのクエリは、テーブルへのアクセスモードに基づいて形成されている。線形外挿したCPUの時間をIO(Input−output、入力−出力)アクセス時間に加えることによってERTを計算できるように、CPUの計算時間がデータベースのサイズに対して線形的なクエリが選択される。
TCP−Hスキーマの統合クエリ:
フルテーブルスキャンクエリ1:select * from supplier(フル出力)
フルテーブルスキャンクエリ2:select sum(s_acctbal) from supplier(集約出力)
高速インデックススキャンクエリ3:select /*+ index(supplier pk_supplier) */ s_suppkey from supplier
主インデックススキャンクエリ4:select /*+ index(supplier pk_supplier) */ sum(s_acctbal) from supplier where s_suppkey>10;
ノンユニークインデックススキャンクエリ5:select /*+ index(supplier supp_nk) */ sum(s_acctbal) from supplier where s_nationkey=3
データベースは、インデックスsupp_nk及びpk_supplierを含むテーブルsupplierからなり、このインデックスはそれぞれs_nationkey及びs_suppkeyのフィールドにある。pk_supplierは、主キーs_suppkeyに対して作成された主インデックスであり、supp_nkは、外部キーs_nationkeyに対して作成されたノンユニークインデックスであることに注意されたい。サイズ1.39Mの小データベースを作成し、データベースに対して上記に挙げた全クエリを実行する。strace及びtkprofなどのマイクロベンチマークツールを使用して、(上記で考察したような)アルゴリズムAFTS、AFIS、APIS及びANUISで要求されるデータを収集する。
アルゴリズムAFTSを、クエリ1及び2に対してサイズが5.6M、21M、87M及び175Mのデータベースのファイルに適用して、その推定IOアクセス時間を取得し、これによって、線形外挿したCPU時間の要素を加えることで経過応答時間を取得する。さらに、175Mサイズのクエリを実行すると、95%という大部分の読み出しにつながることがわかる。したがって、175Mは小サイズであり、これを使用してIOアクセス時間を予測し、よって、サイズが354M、708M、1416M及び2832Mのデータベースに線形外挿を使用して、クエリ1及び2に対するERTを予測する。クエリ1及び2に対する結果を、図4に示している。
インデックススキャンクエリ−クエリ3、4及びクエリ5の場合、サイズが5.6M、21M、87M及び175Mのデータベースは、アルゴリズムAFIS、APIS及びANUISが要求するデータベース統計項目を取得するために、線形外挿を使用してエミュレートされる。アルゴリズムAFISは、サイズが5.6M、21M、87M及び175Mのデータベースに対してクエリ3に適用される。アルゴリズムAPISは、サイズが5.6M、21M、87M及び175Mのデータベースに対してクエリ4に適用される。DBサイズがさらに大きい354Mから2832Mの場合のクエリERTは、線形外挿を使用してテーブルサイズ175Mから予測される。アルゴリズムANUISは、クエリ5に適用されて、IOアクセス時間を計算し、これによってERTを計算する。クエリ3、4及び5に対する結果を、図5及び図6に示している。
方法300に記載した順序は、限定的なものと解釈するためのものではなく、方法300または代替方法を実装するために、記載した方法のブロックをどのような順序でいくつ組み合わせてもよい。また、本明細書に記載の主題の趣旨及び範囲から逸脱しない限り、方法300から個々のブロックを削除してもよい。このほか、本方法は、任意の適切なハードウェア、ソフトウェア、ファームウェア、またはこれらを組み合わせたものに実装されてよい。しかし、説明を簡易にするため、以下に記載する実施形態では、本方法300は、上記のシステム102に実装されると考えてよい。
ブロック302では、データベースに対してクエリを実行する。
ブロック304では、データベースをエミュレートする。
ブロック306では、クエリによりデータベースへアクセスするモードに基づいてクエリを分類する。
ブロック308では、1つ以上のパラメータに沿ったアクセスパターンを決定する。
ブロック310では、特殊分類技術を適用することによって、エミュレートしたデータベースに対するクエリにかかる入出力アクセス時間を計算して、さらにクエリ経過応答時間を算出する。
以上は、本明細書の主題を説明して、当業者が本発明の実施形態を実現して使用できるようにしたものである。主題の実施形態の範囲は、特許請求の範囲に規定される範囲であり、この範囲には、当業者に生じる他の修正を含めることができる。このような他の修正は、その修正が同様の素子を含み、それが特許請求の範囲の文字通りの言葉と異なっていない場合、あるいは、その修正が同等の素子を含み、それが特許請求の範囲の文字通りの言葉と事実上差がない場合、特許請求の範囲内に含まれる。

Claims (11)

  1. 本番データベースに対して実行されるクエリにかかる経過応答時間を予測するシステムであって、
    プロセッサと;
    前記プロセッサに接続するメモリであって、
    前記プロセッサは、前記メモリに格納された複数のモジュールを実行することができ、
    前記複数のモジュールは、
    データベースの統計項目を収集するためにデータベースに対して前記クエリを実行するように構成されたクエリ実行モジュールと;
    エミュレートしたデータベースを得るために前記データベースの統計項目をエミュレートするように構成されたエミュレーションモジュールと;
    前記クエリを、フルテーブルスキャンクエリ、高速インデックススキャンクエリ、主インデックススキャンクエリ、及びノンユニークインデックススキャンクエリの中の少なくとも1つに分類するように構成された分類モジュールであって、前記クエリは、前記クエリにより前記エミュレートしたデータベースへアクセスするモードに基づいて分類される、分類モジュールと;
    前記エミュレートしたデータベースの少なくとも1つのパラメータに沿ったアクセスパターンを決定するように構成されたパラメータ決定モジュールであって、前記アクセスパターン、前記パラメータ及び前記クエリは、前記エミュレートしたデータベースのサイズに影響を受けやすい、パラメータ決定モジュールと;
    計算モジュールであって、
    前記フルテーブルスキャンクエリ、前記高速インデックススキャンクエリ、前記主インデックススキャンクエリ、及び前記ノンユニークインデックススキャンクエリの中の少なくとも1つへの分類と前記1つ以上のパラメータに基づいて、前記エミュレートしたデータベースに対して実行される前記クエリの入出力アクセス時間を計算し、
    更に前記入出力アクセス時間に基づいて本番データベースに対して実行される前記クエリの前記経過応答時間を算出するように構成された計算モジュールと、
    を備えるメモリを有する
    ことを特徴とするシステム。
  2. 前記クエリは、前記本番データベースより小さいサイズのデータベースに対して実行される
    請求項1に記載のシステム。
  3. 前記1つ以上のパラメータは、テーブルスキーマと、前記フルテーブルスキャンクエリ、前記高速インデックススキャンクエリ、前記主インデックススキャンクエリ及び前記ノンユニークインデックススキャンクエリの各々に対して投影されたテーブルのサイズとを含む
    請求項1に記載のシステム。
  4. 前記エミュレーションモジュールは、前記エミュレートしたデータベースを得るために前記1つ以上のパラメータに沿った前記アクセスパターンを外挿するように構成される
    請求項1に記載のシステム。
  5. 前記計算モジュールは、前記入出力アクセス時間を、線形外挿したCPU時間に加算して、前記クエリの前記経過応答時間を算出する
    請求項1に記載のシステム。
  6. 前記エミュレートしたデータベースは、さらに、エミュレートした大サイズのデータベースからなる
    請求項1に記載のシステム。
  7. 本番データベースに対して実行されるクエリにかかる経過応答時間を予測する方法であって、
    データベースの統計項目を収集するために前記クエリをデータベースに対して実行することと;
    エミュレートしたデータベースを得るために前記データベースの統計項目をエミュレートすることと;
    前記クエリを、フルテーブルスキャンクエリ、高速インデックススキャンクエリ、主インデックススキャンクエリ、及びノンユニークインデックススキャンクエリの中の少なくとも1つに分類することであって、前記クエリは、前記クエリにより前記エミュレートしたデータベースへアクセスするモードに基づいて分類されることと;
    前記エミュレートしたデータベースに対して1つ以上のパラメータに沿ったアクセスパターンを決定することであって、前記アクセスパターン、前記パラメータ及び前記クエリは、前記エミュレートしたデータベースのサイズに影響を受けやすいことと;
    前記フルテーブルスキャンクエリ、前記高速インデックススキャンクエリ、前記主インデックススキャンクエリ、及び前記ノンユニークインデックススキャンクエリの中の少なくとも1つへの分類と前記1つ以上のパラメータに基づいて、前記エミュレートしたデータベースに対して実行される前記クエリの入出力アクセス時間を計算し、
    更に前記入出力アクセス時間に基づいて、本番データベースに対して実行される前記クエリにかかる前記経過応答時間を算出することと;を含み、
    1つ以上のパラメータに沿ったアクセスパターンの前記実行、前記分類、前記決定、前記経過応答時間の前記エミュレート、前記計算及び前記算出は、プロセッサによって実施される
    ことを特徴とする方法。
  8. このように決定された前記パラメータは、さらに、テーブルスキーマと、前記フルテーブルスキャンクエリ、前記高速インデックススキャンクエリ、前記主インデックススキャンクエリ及び前記ノンユニークインデックススキャンクエリの各々に対して投影されたテーブルのサイズとを含む
    請求項7に記載の方法。
  9. 前記アクセスパターン及び前記1つ以上のパラメータは、前記エミュレートしたデータベースを得るために外挿される
    請求項7に記載の方法。
  10. 前記入出力アクセス時間は、線形外挿したCPU時間に加算されて、前記クエリの前記経過応答時間を算出する
    請求項7に記載の方法。
  11. 前記入出力アクセス時間は、さらに、前記クエリの格納アクセス時間及びネットワーク伝達時間を含む
    請求項7に記載の方法。
JP2013264633A 2013-09-02 2013-12-20 アプリケーション開発段階でクエリにかかる経過応答時間を予測するシステム及び方法 Active JP6110785B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
IN2853/MUM/2013 2013-09-02
IN2853MU2013 IN2013MU02853A (ja) 2013-09-02 2013-09-02

Publications (2)

Publication Number Publication Date
JP2015049891A JP2015049891A (ja) 2015-03-16
JP6110785B2 true JP6110785B2 (ja) 2017-04-05

Family

ID=49726594

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013264633A Active JP6110785B2 (ja) 2013-09-02 2013-12-20 アプリケーション開発段階でクエリにかかる経過応答時間を予測するシステム及び方法

Country Status (6)

Country Link
US (1) US9117030B2 (ja)
EP (1) EP2843599A1 (ja)
JP (1) JP6110785B2 (ja)
CN (1) CN104424347A (ja)
IN (1) IN2013MU02853A (ja)
SG (1) SG2013091160A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102679218B1 (ko) * 2023-09-26 2024-06-28 쿠팡 주식회사 데이터 관리를 위한 테이블 분할 방법 및 이를 위한 전자 장치

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9535704B2 (en) * 2014-02-03 2017-01-03 University Of Rochester System and method to quantify digital data sharing in a multi-threaded execution
AU2015201361B2 (en) * 2014-11-14 2017-03-02 Tata Consultancy Services Limited A method and system for efficient performance prediction of structured query for big data
KR20180081585A (ko) 2015-11-13 2018-07-16 이베이 인크. 분산 데이터베이스 작업 데이터 스큐 검출
US10025698B2 (en) 2015-11-16 2018-07-17 Cognizant Technology Solutions India Pvt. Ltd System and method for efficiently predicting testing schedule and stability of applications
US11314741B2 (en) 2017-08-01 2022-04-26 Salesforce.Com, Inc. Metadata-based statistics-oriented processing of queries in an on-demand environment
US20190042573A1 (en) * 2017-08-01 2019-02-07 Salesforce.Com, Inc. Rules-based synchronous query processing for large datasets in an on-demand environment
US11068483B2 (en) 2017-08-01 2021-07-20 Salesforce.Com, Inc. Dynamic selection and application of rules for processing of queries in an on-demand environment
CN110019218B (zh) * 2017-12-08 2023-08-25 阿里巴巴集团控股有限公司 数据存储与查询方法及设备
CN114179366B (zh) * 2021-12-13 2024-02-06 南京铖联激光科技有限公司 基于3d打印的零件打印时间评估系统及评估方法

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5758144A (en) * 1994-06-24 1998-05-26 International Business Machines Corporation Database execution cost and system performance estimator
IT1275529B (it) * 1995-07-14 1997-08-07 Alcatel Italia Emulatore per un database relazionale in linguaggio sql
US6738756B1 (en) * 2000-06-30 2004-05-18 Ncr Corporation Analysis method and apparatus for a parallel system
US7246111B1 (en) * 2000-06-30 2007-07-17 Ncr Corporation Capturing database system information
US6799175B2 (en) 2001-04-23 2004-09-28 International Business Machines Corporation System and method of determining and searching for patterns in a large database
US6795817B2 (en) 2001-05-31 2004-09-21 Oracle International Corporation Method and system for improving response time of a query for a partitioned database object
JP5088668B2 (ja) * 2007-03-08 2012-12-05 日本電気株式会社 計算機負荷見積システム、計算機負荷見積方法、計算機負荷見積プログラム
US7895192B2 (en) 2007-07-19 2011-02-22 Hewlett-Packard Development Company, L.P. Estimating the loaded execution runtime of a database query
US9189523B2 (en) 2008-07-05 2015-11-17 Hewlett-Packard Development Company, L.P. Predicting performance of multiple queries executing in a database
CN101419625B (zh) * 2008-12-02 2012-11-28 西安交通大学 一种基于最小可查询模式的Deep Web自适应爬取方法
US8244715B2 (en) 2009-04-09 2012-08-14 Paraccel, Inc. System and method for processing database queries
US8930918B2 (en) * 2010-05-18 2015-01-06 Tata Consultancy Services Limited System and method for SQL performance assurance services
CN102436494B (zh) * 2011-11-11 2013-05-01 中国工商银行股份有限公司 基于实践检验的执行计划优化的装置及方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102679218B1 (ko) * 2023-09-26 2024-06-28 쿠팡 주식회사 데이터 관리를 위한 테이블 분할 방법 및 이를 위한 전자 장치
WO2025070882A1 (ko) * 2023-09-26 2025-04-03 쿠팡 주식회사 데이터 관리를 위한 테이블 분할 방법 및 이를 위한 전자 장치

Also Published As

Publication number Publication date
SG2013091160A (en) 2015-04-29
CN104424347A (zh) 2015-03-18
US20150067646A1 (en) 2015-03-05
IN2013MU02853A (ja) 2015-07-03
US9117030B2 (en) 2015-08-25
JP2015049891A (ja) 2015-03-16
EP2843599A1 (en) 2015-03-04

Similar Documents

Publication Publication Date Title
JP6110785B2 (ja) アプリケーション開発段階でクエリにかかる経過応答時間を予測するシステム及び方法
US10372711B2 (en) System and method predicting effect of cache on query elapsed response time during application development stage
US9235622B2 (en) System and method for an efficient query sort of a data stream with duplicate key values
AU2015201361B2 (en) A method and system for efficient performance prediction of structured query for big data
US9135383B2 (en) Table model circuit simulation acceleration using model caching
WO2017124713A1 (zh) 一种数据模型的确定方法及装置
Singhal et al. Performance assurance model for applications on SPARK platform
CN114356893A (zh) 基于机器学习的元数据调优方法、装置、设备及存储介质
CN111723112A (zh) 数据任务执行方法、装置、电子设备及存储介质
US11182386B2 (en) Offloading statistics collection
CN116521511A (zh) 风险代码事前检测方法、装置、设备及存储介质
CN114443680A (zh) 数据库管理系统、相关装置、方法和介质
Singhal et al. Predicting SQL query execution time for large data volume
US11520834B1 (en) Chaining bloom filters to estimate the number of keys with low frequencies in a dataset
US20130013283A1 (en) Distributed multi-pass microarchitecture simulation
US20160259825A1 (en) Discovery of potential problematic execution plans in a bind-sensitive query statement
Kostenetskii et al. Simulation of hierarchical multiprocessor database systems
CN108984615B (zh) 一种数据查询方法和系统、存储介质
CN110019342A (zh) 分区表访问方法、装置及设备、计算机可读存储介质
CN111767252A (zh) 日志查询方法、装置、计算机设备和存储介质
US12182029B2 (en) Optimal deployment of embeddings tables across heterogeneous memory architecture for high-speed recommendations inference
CN113157541A (zh) 面向分布式数据库的多并发olap型查询性能预测方法及系统
US20230146136A1 (en) Method and apparatus for scoring precomputation model, device, and storage medium
US20220318054A1 (en) Dependency-based scheduling for concurrent online analytics
CN107122358B (zh) 混合查询方法及设备

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20150108

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20151130

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20151222

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20160318

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160420

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20160906

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20161205

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170202

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20170214

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20170310

R150 Certificate of patent or registration of utility model

Ref document number: 6110785

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250