Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /home/zhenxiangba/zhenxiangba.com/public_html/phproxy-improved-master/index.php on line 456
JP7730236B2 - コンピュータシステム、コンピュータプログラムおよびコンピュータ実装方法(ワークロード駆動によるデータベース再編成) - Google Patents
[go: Go Back, main page]

JP7730236B2 - コンピュータシステム、コンピュータプログラムおよびコンピュータ実装方法(ワークロード駆動によるデータベース再編成) - Google Patents

コンピュータシステム、コンピュータプログラムおよびコンピュータ実装方法(ワークロード駆動によるデータベース再編成)

Info

Publication number
JP7730236B2
JP7730236B2 JP2021156008A JP2021156008A JP7730236B2 JP 7730236 B2 JP7730236 B2 JP 7730236B2 JP 2021156008 A JP2021156008 A JP 2021156008A JP 2021156008 A JP2021156008 A JP 2021156008A JP 7730236 B2 JP7730236 B2 JP 7730236B2
Authority
JP
Japan
Prior art keywords
computer
performance
records
tablespace
partial
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
JP2021156008A
Other languages
English (en)
Other versions
JP2022053542A (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 JP2022053542A publication Critical patent/JP2022053542A/ja
Application granted granted Critical
Publication of JP7730236B2 publication Critical patent/JP7730236B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/22Indexing; Data structures therefor; Storage structures
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3409Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/22Indexing; Data structures therefor; Storage structures
    • G06F16/2282Tablespace storage structures; Management thereof
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/28Databases characterised by their database models, e.g. relational or object models
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/28Databases characterised by their database models, e.g. relational or object models
    • G06F16/284Relational databases
    • G06F16/285Clustering or classification

Landscapes

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

Description

本開示は、判定されたワークロードを受けてのデータベース再編成の駆動に関し、より具体的には、データベースのオンライン部分的再編成を提供し、ワークロード性能を改善することに関する。
多くの既知のデータベースストレージシステムは、データベースストレージの収集された性能データおよび関連付けられたインデックスに基づき、そこに格納されたデータの定期的再編成を必要とする。収集された性能データは通常、テーブル空間またはパーティションレベルにおけるものであり、収集された性能データは、1または複数のツールによって分析されて、格納されたデータの再編成の必要性が判定される。
ワークロード性能により駆動される部分的データ再編成を実行する必要性を判定するためのシステム、コンピュータプログラム製品および方法が提供される。
一態様において、ワークロード性能により駆動される部分的データ再編成を実行する必要性を判定するためのコンピュータシステムが提供される。システムは、1または複数の処理デバイスおよび当該1または複数の処理デバイスに動作可能に連結された少なくとも1つのメモリデバイスを含む。1または複数の処理デバイスは、データベースの1または複数の部分に関連付けられた1または複数の性能敏感性ワークロードのための性能情報を収集し、および、収集された性能情報を分析するよう構成されている。分析は、当該1または複数の性能敏感性ワークロードの各々について、性能低下の指標を判定し、判定された性能低下を受けて、判定された性能低下によって影響された1または複数のデータベース部分のうちの少なくとも1つを判定する。また分析は、当該データベース部分の判定を受けて、判定された性能低下を分類し、および、当該性能低下の分類を受けて、当該1または複数のデータベース部分の1または複数の部分的再編成を実行する。
別の態様において、ワークロード性能により駆動される部分的データ再編成を実行する必要性を判定するためのコンピュータプログラム製品が提供される。コンピュータプログラム製品は、1または複数のコンピュータ可読記憶媒体および当該1または複数のコンピュータ記憶媒体上に集合的に格納されたプログラム命令を含む。当該製品はまた、データベースの1または複数の部分に関連付けられた1または複数の性能敏感性ワークロードのための性能情報を収集するためのプログラム命令も含む。当該製品はさらに、当該収集された性能情報を分析するためのプログラム命令も含む。当該製品はまた、当該1または複数の性能敏感性ワークロードの各々について、その性能低下の指標を判定し、判定された性能低下を受けて、判定された性能低下によって影響された1または複数のデータベース部分のうちの少なくとも1つを判定するためのプログラム命令も含む。当該製品はまた、当該データベース部分の判定を受けて、判定された性能低下を分類し、および、当該性能低下の分類を受けて、当該1または複数のデータベース部分の1または複数の部分的再編成を実行するためのプログラム命令も含む。
さらなる別の態様において、ワークロード性能により駆動される部分的データ再編成の実行の必要性を判定するためのコンピュータ実装方法が提供される。当該方法は、データセットを受信する段階であって、データセットはデータセット内に含まれる複数のデータレコードを含む、段階を備える。データレコードは、1または複数の予測子が欠損した不完全なデータレコードである1または複数のデータレコードと、完全なデータレコードである1または複数のデータレコードとを含む。当該方法は、当該1または複数の完全なデータレコードのうち少なくとも一部を用いてモデルを訓練する段階と、当該1または複数の欠損する予測子に対する1または複数の候補予測子を生成する段階と、を備える。当該方法はまた、当該1または複数の候補予測子のうちの各候補予測子について、予測子の重要度値を判定する段階と、第1の閾値を超える予測子重要度値を有する、候補予測子のうちの一部を推奨する段階と、を備える。当該方法はまた、1または複数のそれぞれの推奨された候補予測子を、1または複数のそれぞれの不完全なデータレコードに挿入することで、1または複数の一時的データレコードを作成する段階も備える。当該方法はさらに、当該1または複数の一時的データレコードを、モデルに投入する段階と、当該1または複数の一時的データレコードの各々の適合値を判定する段階と、第2の閾値を超える適合値を持つ一時的データレコードを選択する段階と、を備える。
本概要は、本開示のあらゆる態様、あらゆる実装もしくはあらゆる実施形態またはこれらの組み合わせを示すことは意図していない。これらの特徴および他の特徴並びに利点は、添付図面と併せて本実施形態に関する以下の詳細な説明から明らかになろう。
本願に含まれる図面は、明細書に組み込まれ、その一部を形成する。図面は、詳細な説明と共に本開示の実施形態を示し、本開示の原理を説明する役割を持つ。図面は特定の実施形態を例示するものであり、本開示を限定するものではない。
本開示のいくつかの実施形態による、クラウドコンピューティング環境を示す概略図である。
本開示のいくつかの実施形態による、クラウドコンピューティング環境により提供される一組の機能抽象化モデルレイヤを示すブロック図である。
本開示のいくつかの実施形態による、本明細書で説明されるプロセスを実装するためのクラウドベースサポートシステムとして用いられてよいコンピュータシステム/サーバを示すブロック図である。
本開示のいくつかの実施形態による、本明細書に説明されるプロセスを実装するための、図3に示されるコンピュータシステム/サーバの一部を示す概略図である。
本開示のいくつかの実施形態による、ワークロード性能を改善すべくワークロードベースのオンライン部分的データベース再編成を駆動するためのプロセスを示す高レベルのフローチャートである。
本開示のいくつかの実施形態による、図5に示されるワークロードベースのオンライン部分的データベース再編成を駆動するためのプロセス600を示す詳細なフローチャートである。
本開示のいくつかの実施形態による、図6Aのフローチャートからの続きである。
本開示のいくつかの実施形態による、図6Bのフローチャートからの続きである。
本開示のいくつかの実施形態による、低クラスタ率判定を軽減すべく、影響されたレコードの所望のクラスタリングシーケンスを復元するためのプロセスを示す概略図である。
本開示のいくつかの実施形態による、ホットスポットに関連する性能問題を軽減するためのプロセスを示す概略図である。
本開示のいくつかの実施形態による、高オーバーフロー率に関する性能問題を軽減するためのプロセスを示す概略図である。
本開示のいくつかの実施形態による、空間使用率問題に関する性能問題を軽減するためのプロセスを示す概略図である。
本開示のいくつかの実施形態による、空間使用率問題を軽減するための、テーブル空間をデフラグメンテーションおよび再編成するためのプロセスを示す概略図である。
本開示のいくつかの実施形態による、パーティション化されていないテーブル空間を、パーティション化されたテーブル空間に変換するためのプロセスを示す概略図である。
本開示は、様々な修正例および変更形態に補正可能であり、一方で図面には、本開示の具体的内容が例示として示されており、以下に詳細に説明する。しかしながら、本開示を説明される具体的な実施形態に限定する意図はないことを理解されたい。その反対に、本開示の精神および範囲に属する修正例、均等例および改変例のすべてに及ぶ意図である。
本明細書において一般的に説明され、図面に図示される本実施形態の諸コンポーネントは、様々な異なる構成に配置されてよく、設計されてよいことが容易に理解されるであろう。故に、図面に示される本実施形態の装置、システム、方法およびコンピュータプログラム製品の実施形態に関する以下の詳細な説明は、特許請求される実施形態の範囲を限定する意図はなく、単に選択された実施形態を表わすものに過ぎない。
本明細書を通して、「選択された実施形態(a select embodiment)」、「少なくとも1つの実施形態(at least one embodiment)」、「一実施形態(one embodiment)」、「別の実施形態(another embodiment)」、「他の実施形態(other embodiments)」または「一実施形態(an embodiment)」という言及および同様の文言は、少なくとも1つの実施形態に含まれる実施形態に関し説明される特定の特徴、構造または特性を意味する。故に本明細書中の様々な箇所における「選択された実施形態(a select embodiment)」、「少なくとも1つの実施形態(at least one embodiment)」、「一実施形態において(in one embodiment)」、「別の実施形態(another embodiment)」、「他の実施形態(other embodiments)」または「一実施形態(an embodiment)」という文言が現れても、必ずしも同一の実施形態を指していない。
例示された実施形態は、図面を参照することで最もよく理解される。添付図面を通して、同様の部材は、同様の参照番号で示される。以下の説明は、例示の意図に過ぎず、ここで特許請求される実施形態と整合するデバイス、システムおよびプロセスの具体的な選択された実施形態を示すに過ぎない。
本開示は、クラウドコンピューティングに関する詳細な説明を含むが、本明細書に記載の教示の実装は、クラウドコンピューティング環境に限定されないことを理解されたい。むしろ、本開示の実施形態は、現在未知である、またはより後になって開発されるあらゆる他のタイプのコンピューティング環境と連携して実装可能である。
クラウドコンピューティングは、最小限の管理取り組みまたはサービスプロバイダとのやり取りで、迅速にプロビジョニングおよびリリース可能な構成可能なコンピューティングリソース(例えば、ネットワーク、ネットワーク帯域幅、サーバ、処理、メモリ、ストレージ、アプリケーション、仮想マシンおよびサービス)の共有プールへの便利なオンデマンドネットワークアクセスを可能にするサービス供給のモデルである。このクラウドモデルは、少なくとも5つの特性、少なくとも3つのサービスモデルおよび少なくとも4つの展開モデルを含んでよい。
特性は、以下の通りである。
オンデマンドセルフサービス:クラウドコンシューマは必要に応じてサーバ時刻およびネットワークストレージ等のコンピューティング機能を自動で一方的にプロビジョニングでき、サービスプロバイダとの人間のやり取りは必要とされない。
広範なネットワークアクセス:諸機能は、ネットワーク経由で利用可能であり、異種のシン(thin)クライアントプラットフォームまたはシック(thick)クライアントプラットフォーム(例えば、モバイルフォン、ラップトップおよびPDA)による使用を促進する標準的なメカニズムを通してアクセスされる。
リソースプーリング:プロバイダのコンピューティングリソースはプールされて、要求により動的に割り当ておよび再割り当てされる異なる物理的および仮想的リソースを持つマルチテナントモデルを用いて、複数のコンシューマにサービス提供する。コンシューマは一般に、提供されるリソースの正確な場所を制御できず、またはそれを認識しない一方で、より高レベルの抽象度(例えば、国、州またはデータセンタ)において場所を指定できるという意味において場所の独立性という意味が存在する。
迅速な弾力性:諸機能は迅速且つ弾力的にプロビジョニング可能であり、いくつかの場合においては自動的に行われて、迅速なスケールアウト、迅速なリリースおよび迅速なスケールインまでされる。コンシューマに対しては、プロビジョニングのための利用可能な諸機能はしばしば無限に見え、任意の時点で任意の量購入可能できる。
測定されたサービス:クラウドシステムは、サービスのタイプ(例えば、ストレージ、処理、帯域幅およびアクティブユーザアカウント)に適切な特定レベルの抽象化における計測機能を利用することで、自動的にリソース利用を制御および最適化する。リソース利用率のモニタリング、制御および報告が可能であり、利用されるサービスのプロバイダおよびコンシューマの両方に対し透明性を提供する。
サービスモデルについては、以下の通りである。
サービスとしてのソフトウェア(Software as a Service:SaaS):コンシューマに提供される能力は、クラウドインフラストラクチャ上で実行されるプロバイダのアプリケーションを使用することである。アプリケーションは、ウェブブラウザ(例えば、ウェブベースの電子メール)等のシンクライアントインタフェースを通して様々なクライアントデバイスからアクセス可能である。考えられる例外として限定されたユーザ特有のアプリケーション構成設定を除き、コンシューマは、ネットワーク、サーバ、オペレーティングシステム、ストレージまたは個々のアプリケーション機能まで含めた基礎となるクラウドインフラストラクチャを管理または制御することはない。
サービスとしてのプラットフォーム(Platform as a Service(PaaS)):コンシューマに提供される能力は、クラウドインフラストラクチャ上に、プロバイダによりサポートされるプログラミング言語およびツールを用いてコンシューマが作成または取得したアプリケーションを展開することである。コンシューマは、ネットワーク、サーバ、オペレーティングシステムまたはストレージを含む基礎となるクラウドインフラストラクチャを管理または制御はしないが、展開したアプリケーションおよび可能性としてアプリケーションホスティング環境構成に対する制御は有する。
サービスとしてのインフラストラクチャ(Infrastructure as a Service:IaaS):コンシューマに提供される能力は、処理、ストレージ、ネットワークおよび他の基本的なコンピューティングリソースをプロビジョニングすることであり、ここでコンシューマは、オペレーティングシステムおよびアプリケーションを含み得る任意のソフトウェアを展開および実行可能である。コンシューマは、基礎となるクラウドインフラストラクチャを管理または制御しないが、オペレーティングシステム、ストレージ、展開されたアプリケーションに対する制御を有し、可能性としてネットワークコンポーネント(例えば、ホストファイアウォール)の選択に対する限定的制御も有する。
展開モデルは、以下の通りである。
プライベートクラウド:クラウドインフラストラクチャは、1つの組織のためにのみ動作される。プライベートクラウドは、当該組織またはサードパーティによって管理されてよく、オンプレミスまたはオフプレミスに存在してよい。
コミュニティクラウド:クラウドインフラストラクチャは、複数の組織によって共有され、共有の関心事項(例えば、ミッション、セキュリティ要件、ポリシーおよびコンプライアンス考慮事項)を有する特定のコミュニティをサポートする。コミュニティクラウドは、当該組織またはサードパーティによって管理されてよく、オンプレミスまたはオフプレミスに存在してよい。
パブリッククラウド:クラウドインフラストラクチャは、パブリック全般または大規模業界グループに利用可能とされ、クラウドサービスを販売する1つの組織によって所有される。
ハイブリッドクラウド;クラウドインフラストラクチャは、2または2より多いクラウド(プライベート、コミュニティまたはパブリック)により組成され、2または2より多いクラウドは、独自のエンティティのままであるが、データポータビリティおよびアプリケーションポータビリティ(例えば、クラウド間の負荷分散のためのクラウドバースト)を可能にする標準技術または独自技術によって結合される。
クラウドコンピューティング環境は、ステートレス性、低結合性、モジュール性およびセマンティック相互運用性に焦点を当てたサービス指向である。クラウドコンピューティングの中核には、相互接続されたノードで構成されるネットワークを含むインフラストラクチャが存在する。
図1を参照すると、例示的なクラウドコンピューティング環境50が示される。図示の通り、クラウドコンピューティング環境50は、1または複数のクラウドコンピューティングノード10を含み、例えば、パーソナルデジタルアシスタント(PDA)またはセルラフォン54A、デスクトップコンピュータ54B、ラップトップコンピュータ54Cおよび/または車両コンピュータシステム54N等のクラウドコンシューマによって用いられるローカルコンピューティングデバイスは、当該ノードと通信してよい。ノード10は、互いに通信してよい。ノードは、上記したようなプライベートクラウド、コミュニティクラウド、パブリッククラウド若しくはハイブリッドクラウドまたはこれらの組み合わせ等の1または複数のネットワークにおいて、物理的または仮想的にグループ化(不図示)されてよい。これにより、クラウドコンピューティング環境50は、クラウドコンシューマがローカルコンピューティングデバイス上のリソースを維持する必要のないサービスとしてのインフラストラクチャ、サービスとしてのプラットフォームもしくはサービスとしてのソフトウェアまたはこれらの組み合わせを提供できるようにする。図1に図示されるコンピューティングデバイス54A-Nのタイプは、専ら例示的なものを意図し、コンピューティングノード10およびクラウドコンピューティング環境50は、任意のタイプのネットワークもしくはネットワークアドレス指定可能な接続(例えば、ウェブブラウザを用いて)またはその両方を通して、任意のタイプのコンピュータ化されたデバイスと通信可能であることを理解されたい。
ここで図2を参照すると、クラウドコンピューティング環境50(図1)によって提供される一組の機能的抽象化レイヤが図示されている。図2に図示されるコンポーネント、レイヤおよび機能は、専ら例示であることを意図しており、本開示の実施形態は、これらに限定されないことを予め理解されたい。図示の通り、以下のレイヤおよび対応する機能が提供される。
ハードウェアおよびソフトウェアレイヤ60は、ハードウェアコンポーネントおよびソフトウェアコンポーネントを含む。ハードウェアコンポーネントの例としては、メインフレーム61、RISC(縮小命令セットコンピュータ)アーキテクチャベースのサーバ62、サーバ63、ブレードサーバ64、ストレージデバイス65、並びにネットワークおよびネットワークコンポーネント66が含まれる。いくつかの実施形態において、ソフトウェアコンポーネントは、ネットワークアプリケーションサーバソフトウェア67およびデータベースソフトウェア68を含む。
仮想化レイヤ70は、仮想エンティティの以下の例が提供されてよい抽象化レイヤを提供し、その例とは、仮想サーバ71、仮想ストレージ72、仮想プライベートネットワークを含む仮想ネットワーク73、仮想アプリケーションおよびオペレーティングシステム74並びに仮想クライアント75である。
一例において、管理レイヤ80は、以下に説明する機能を提供してよい。リソースプロビジョニング81は、クラウドコンピューティング環境内でタスクを実行するために利用されるコンピューティングリソースおよび他のリソースの動的な調達を提供する。測定および価格設定82は、リソースがクラウドコンピューティング環境内で用いられる際のコスト追跡およびこれらのリソースの消費に対する課金または請求書送付を提供する。一例において、これらのリソースは、アプリケーションソフトウェアライセンスを含んでよい。セキュリティは、クラウドコンシューマの身元確認およびタスク並びにデータおよび他のリソースのための保護を提供する。ユーザポータル83は、コンシューマおよびシステム管理者に対し、クラウドコンピューティング環境へのアクセスを提供する。サービスレベル管理84は、必要なサービスレベルが満たされるように、クラウドコンピューティングリソース割り当ておよび管理を提供する。サービスレベルアグリーメント(SLA)プランニングおよび遂行85は、SLAに従い将来の要件が予期されるクラウドコンピューティングリソースに対する事前取り決めおよび調達を提供する。
ワークロードレイヤ90は、クラウドコンピューティング環境が用いられ得るための機能の例を提供する。このレイヤから提供されてよいワークロードおよび機能の例として、マッピングおよびナビゲーション91、ソフトウェア開発およびライフサイクル管理92、仮想クラスルーム教育配信93、データ分析処理94、トランザクション処理95およびワークロード性能により駆動される部分的データ再編成96の実行の必要性の判定が含まれる。
図3を参照すると、本明細書でコンピュータシステム100と称される、一例のデータ処理システムのブロック図が表示される。システム100は、単一の場所におけるコンピュータシステム/サーバに具現化されてよく、または少なくとも一実施形態において、コンピューティングリソースを共有するクラウドベースシステムに構成されてよい。例えば、限定ではないが、コンピュータシステム100は、クラウドコンピューティングノード10として用いられてよい。
コンピュータシステム100の態様は、本明細書に説明されるシステム、ツールおよびプロセスを実装すべく、単一の場所におけるコンピュータシステム/サーバに具現化されてよく、または少なくとも一実施形態において、複数のコンピューティングリソースを共有する1つのクラウドベースシステム内にクラウドベースサポートシステムとして構成されてよい。コンピュータシステム100は、多くの他の汎用または特定目的のコンピュータシステム環境または構成で動作可能である。コンピュータシステム100と共に用いるのに好適であってよい周知のコンピュータシステム、環境もしくは構成またはこれらの組み合わせの限定ではない例として、パーソナルコンピュータシステム、サーバコンピュータシステム、シンクライアント、シッククライアント、ハンドヘルドデバイスまたはラップトップデバイス、マイクロプロセッサシステム、マイクロプロセッサベースシステム、セットトップボックス、プログラム可能コンシューマエレクトロニクス、ネットワークPC、ミニコンピュータシステム、メインフレームコンピュータシステム、および上記のシステム、デバイスおよびそれらの均等物の任意の物を含むファイルシステム(例えば、分散ストレージ環境および分散クラウドコンピューティング環境)が含まれる。
コンピュータシステム100は、コンピュータシステム100により実行されるプログラムモジュール等のコンピュータシステムが実行可能な命令の一般的な文脈で説明されてよい。一般に、プログラムモジュールは、特定のタスクを実行する、または、特定の抽象データ型を実装するルーチン、プログラム、オブジェクト、コンポーネント、ロジック、データ構造等を含んでよい。コンピュータシステム100は、分散クラウドコンピューティング環境で実施されてよく、そこでは、タスクは、通信ネットワークを通してリンクされたリモート処理デバイスにより実行される。分散クラウドコンピューティング環境においては、プログラムモジュールは、メモリストレージデバイスを含むローカルおよびリモートの両方のコンピュータシステム記憶媒体に配置されてよい。
図3に図示される通り、コンピュータシステム100は、汎用コンピューティングデバイスの形態で示されている。コンピュータシステム100のコンポーネントには、例えば、ハードウェアプロセッサ、システムメモリ106およびシステムメモリ106を含む各種システムコンポーネントを処理デバイス104に連結する通信バス102といった1若しくは複数のプロセッサまたは処理デバイス104(プロセッサおよび処理ユニットと称される場合がある)が含まれてよいが、これらに限定されない。通信バス102は、任意の複数のタイプのバス構造のうちの1または複数を表わし、これには、メモリバスまたはメモリコントローラ、ペリフェラルバス、アクセラレーテッドグラフィックポートおよび任意の様々なバスアーキテクチャを用いるプロセッサまたはローカルバスが含まれる。例示であって限定ではないが、このようなアーキテクチャとしては、インダストリスタンダードアーキテクチャ(ISA)バス、マイクロチャネルアーキテクチャ(MCA)バス、拡張ISA(EISA)バス、ビデオエレクトロニクススタンダードアソシエーション(VESA)ローカルバスおよびペリフェラルコンポーネントインターコネクト(PCI)バスが含まれる。コンピュータシステム100は通常、様々なコンピュータシステム可読媒体を含む。このような媒体は、コンピュータシステム100によってアクセス可能な任意の利用可能な媒体であってよく、このような媒体には、揮発性および不揮発性の両方の媒体、リムーバブルおよび非リムーバブル媒体が含まれる。また、コンピュータシステム100は、1または複数の永続ストレージデバイス108、通信ユニット110、入力/出力(I/O)ユニット112およびディスプレイ114を含んでよい。
処理デバイス104は、システムメモリ106にロードされてよいソフトウェアの命令を実行するようサービス提供する。処理デバイス104は、特定の実装に応じて、複数のプロセッサ、マルチコアプロセッサ、または他の特定のタイプのプロセッサであってよい。本明細書においてアイテムについて用いられる数は、1または複数のアイテムを意味する。さらに、処理デバイス104は、単一チップ上にメインプロセッサがセカンダリプロセッサと共に存在する複数の異種プロセッサシステムを用いて実装されてよい。別の例示として、処理デバイス104は、同一タイプの複数のプロセッサを含む対称的なマルチプロセッサシステムであってよい。
システムメモリ106および永続ストレージ108は、ストレージデバイス116の例示である。ストレージデバイスは、情報を格納可能なハードウェアの任意の部分であってよく、情報は、例えば、限定ではないが、データ、機能的形態のプログラムコードおよび/または一時的ベースおよび/または永続的ベースのいずれかの他の好適な情報である。これらの例において、システムメモリ106は、例えば、ランダムアクセスメモリまたは任意の他の好適な揮発性または揮発性のストレージデバイスであってよい。システムメモリ106は、ランダムアクセスメモリ(RAM)もしくはキャッシュメモリまたはその両方等の揮発性メモリの形態のコンピュータシステム可読媒体を含んでよい。
永続ストレージ108は、特定の実装に応じて、様々な形態を取ってよい。例えば、永続ストレージ108は、1または複数のコンポーネントまたはデバイスを含んでよい。例えば、限定ではないが、永続ストレージ108は、非リムーバルの不揮発性媒体(不図示および典型的に「ハードドライブ」と呼ばれる)との間で読み取りおよび書き込みをするために提供されてよい。図示しないが、リムーバルの不揮発性磁気ディスクドライブ(例えば、「フロッピーディスク」)との間で読み取りおよび書き込みを行うための磁気ディスクドライブ、およびCD-ROM、DVD‐ROMまたは他の光学的媒体等のリムーバルの不揮発性光ディスクとの間で読み取りまたは書き込みを行うための光ディスクドライブが提供されてよい。このような例において、各々は、1または複数のデータメディアインタフェースによって通信バス102に接続されてよい。
これらの例において、通信ユニット110は、他のコンピュータシステムまたはデバイスとの通信を提供してよい。これらの例において、通信ユニット110は、ネットワークインタフェースである。通信ユニット110は、物理的および無線の通信リンクの一方または両方を用いて通信を提供してよい。
入/出力ユニット112は、コンピュータシステム100に接続されてよい他のデバイスとの間のデータの入力および出力を可能にしてよい。例えば、入/出力ユニット112は、キーボード、マウスもしくは特定の他の好適な入力デバイスまたはこれらの組み合わせを通してユーザ入力のための接続を提供してよい。さらに、入/出力ユニット112は、出力をプリンタに送信してよい。ディスプレイ114は、情報をユーザに表示するためのメカニズムを提供してよい。コンピュータシステム100内の様々なデバイス間での通信の確立を促進する入/出力ユニット112の例としては、限定ではないが、ネットワークカード、モデムおよび入力/出力インタフェースカードが含まれる。また、コンピュータシステム100は、ネットワークアダプタ(図3に図示されない)を介して、ローカルエリアネットワーク(LAN)、一般的広域ネットワーク(WAN)もしくはパブリックネットワーク(例えば、インターネット)またはこれらの組み合わせ等の1または複数のネットワークと通信してよい。図示されていないが、他のハードウェアもしくはソフトウェアコンポーネントまたはその両方が、コンピュータシステム100と連携して用いられてよいことを理解されたい。このようなコンポーネントの例としては、限定ではないが、マイクロコード、デバイスドライバ、冗長処理ユニット、外部ディスクドライブアレイ、RAIDシステム、テープドライブおよびデータアーカイブストレージシステムが含まれる。
オペレーティングシステム、アプリケーションもしくはプログラムまたはこれらの組み合わせのための命令は、ストレージデバイス116内に配置されてよく、ストレージデバイス116は、通信バス102を通して処理デバイス104と通信する。これらの例示において、命令は、永続ストレージ108上の機能的形態である。これらの命令は、処理デバイス104によって実行されるために、システムメモリ106にロードされてよい。異なる実施形態のプロセスは、コンピュータ実装命令を用いて処理デバイス104によって実行されてよく、当該命令は、システムメモリ106等のメモリ内に配置されてよい。これらの命令は、プログラムコード、コンピュータ使用可能プログラムコードまたは処理デバイス104内のプロセッサによって読み取りおよび実行されてよいコンピュータ可読プログラムコードと称されてよい。異なる実施形態におけるプログラムコードは、システムメモリ106または永続ストレージ108等の異なる物理的または有形のコンピュータ可読媒体上に具現化されてよい。
プログラムコード118は、選択的に取り外し可能であるコンピュータ可読媒体120上に機能的形態として配置されてよく、処理デバイス104によって実行されるために、コンピュータシステム100にロードされてよく、または、転送されてよい。これらの例において、プログラムコード118およびコンピュータ可読媒体120は、コンピュータプログラム製品122を形成してよい。一例において、コンピュータ可読媒体120は、コンピュータ可読記憶媒体124またはコンピュータ可読信号媒体126であってよい。コンピュータ可読記憶媒体124は、例えば、永続ストレージ108の一部であるハードドライブ等のストレージデバイスに転送するために、永続ストレージ108の一部であるドライブまたは他のデバイスに挿入されるまたは配置される光ディスクまたは磁気ディスクを含んでよい。コンピュータ可読記憶媒体124はまた、コンピュータシステム100に接続されるハードドライブ、サムドライブまたはフラッシュメモリ等の永続ストレージの形態を取ってもよい。いくつかの例において、コンピュータ可読記憶媒体124は、コンピュータシステム100から取り外し可能でなくてよい。
代替的に、プログラムコード118は、コンピュータ可読信号媒体126を用いてコンピュータシステム100に転送されてよい。コンピュータ可読信号媒体126は、例えば、プログラムコード118を含む伝搬されたデータ信号であってよい。例えば、コンピュータ可読信号媒体126は、電磁信号、光学信号もしくは任意の他の適切なタイプの信号またはこれらの組み合わせであってよい。これらの信号は、無線通信リンク、光ファイバケーブル、同軸ケーブル、有線もしくは任意の他の適切なタイプの通信リンクまたはこれらの組み合わせ等の通信リンクを経由して送信されてよい。換言すると、例示において、通信リンクもしくは接続またはその両方は、物理的であってよく、または無線であってよい。
いくつかの例示的な実施形態において、プログラムコード118は、ネットワーク経由で別のデバイスまたはコンピュータシステムから、コンピュータ可読信号媒体126を通して永続ストレージ108にダウンロードされて、コンピュータシステム100内で用いられてよい。例えば、サーバコンピュータシステム内のコンピュータ可読記憶媒体内に格納されたプログラムコードは、ネットワーク経由でサーバからコンピュータシステム100にダウンロードされてよい。プログラムコード118を提供するコンピュータシステムは、サーバコンピュータ、クライアントコンピュータ、またはプログラムコード118を格納および送信可能な特定の他のデバイスであってよい。
プログラムコード118は、限定ではなく例示として、システムメモリ106内に格納されてよい1または複数のプログラムモジュール(図3に不図示)並びにオペレーティングシステム、1または複数のアプリケーションプログラム、他のプログラムモジュールおよびプログラムデータを含んでよい。オペレーティングシステム、1または複数のアプリケーションプログラム、他のプログラムモジュールおよびプログラムデータまたはこれらのいくつかの組み合わせの各々は、ネットワーク環境の実装を含んでよい。プログラムコード118のプログラムモジュールは一般に、本明細書に説明される実施形態の機能もしくは方法論またはその両方を実行する。
コンピュータシステム100について例示される異なる複数のコンポーネントは、異なる実施形態が実装され得る態様に関するアーキテクチャ上の限定をもたらす意図ではない。異なる例示的な実施形態は、コンピュータシステム100について例示されたものに加えてまたはその代わりとなるコンポーネントを含むコンピュータシステムにおいて実装されてよい。
本開示は、統合の考え得る任意の技術的な詳細レベルにおけるシステム、方法もしくはコンピュータプログラム製品またはこれらの組み合わせであってよい。コンピュータプログラム製品は、プロセッサに、本開示の態様を実行させるためのコンピュータ可読プログラム命令を有するコンピュータ可読記憶媒体(または複数可)を含んでよい。
コンピュータ可読記憶媒体は、命令実行デバイスによって用いられる命令を保持可能および格納可能な有形のデバイスであってよい。コンピュータ可読記憶媒体は、例えば、限定ではないが、電子ストレージデバイス、磁気ストレージデバイス、光学ストレージデバイス、電磁ストレージデバイス、半導体ストレージデバイスまたは前述したものの任意の好適な組み合わせであってよい。コンピュータ可読記憶媒体のより具体的な例の非網羅的リストには、以下のものが含まれ、ポータブルコンピュータディスケット、ハードディスク、ランダムアクセスメモリ(RAM)、リードオンリメモリ(ROM)、消去可能プログラマブルリードオンリメモリ(EPROMまたはフラッシュメモリ)、スタティックランダムアクセスメモリ(SRAM)、ポータブルコンパクトディスクリードオンリメモリ(CD‐ROM)、デジタル多目的ディスク(DVD)、メモリスティック、フロッピーディスク、パンチカードまたは記録された命令を有するグルーブ内の隆起構造等の機械的に符号化されたデバイスおよび前述したものの任意の好適な組み合わせである。本明細書で用いられるコンピュータ可読記憶媒体は、無線波または他の自由に伝搬される電磁波、導波路または他の送信媒体(例えば、ファイバ光ケーブルを通して通過する光パルス)を通して伝搬される電磁波または配線を通して送信される電気信号といった、一時的信号それ自体として解釈されないものとする。
本明細書に説明されるコンピュータ可読プログラム命令は、コンピュータ可読記憶媒体からそれぞれのコンピューティング/処理デバイスにダウンロードされてよく、または、例えばインターネット、ローカルエリアネットワーク、広域ネットワークもしくは無線ネットワークまたはこれらの組み合わせといったネットワーク経由で外部コンピュータ若しくは外部ストレージデバイスにダウンロードされてよい。ネットワークは、銅伝送ケーブル、光伝送ファイバ、無線送信、ルータ、ファイアウォール、スイッチ、ゲートウェイコンピュータもしくはエッジサーバまたはこれらの組み合わせを有してよい。各コンピューティング/処理デバイス内のネットワークアダプタカードまたはネットワークインタフェースは、ネットワークからコンピュータ可読プログラム命令を受信し、当該コンピュータ可読プログラム命令を、それぞれのコンピューティング/処理デバイス内のコンピュータ可読記憶媒体に格納するために転送する。
本明細書で説明されるコンピュータ可読プログラム命令は、コンピュータ可読記憶媒体からそれぞれのコンピューティング/処理デバイスにダウンロードされてよく、または、例えばインターネット、ローカルエリアネットワーク、広域ネットワークもしくは無線ネットワークまたはこれらの組み合わせといったネットワーク経由で外部コンピュータ若しくは外部ストレージデバイスにダウンロードされてよい。ネットワークは、銅伝送ケーブル、光伝送ファイバ、無線送信、ルータ、ファイアウォール、スイッチ、ゲートウェイコンピュータもしくはエッジサーバまたはこれらの組み合わせを有してよい。各コンピューティング/処理デバイス内のネットワークアダプタカードまたはネットワークインタフェースは、ネットワークからコンピュータ可読プログラム命令を受信し、当該コンピュータ可読プログラム命令を、それぞれのコンピューティング/処理デバイス内のコンピュータ可読記憶媒体に格納するために転送する。
本開示の操作を実行するためのコンピュータ可読プログラム命令は、アセンブラ命令、命令セットアーキテクチャ(ISA)命令、マシン命令、マシン依存命令、マイクロコード、ファームウェア命令、状態設定データ、集積回路用の構成データ、または、Smalltalk(登録商標)、C++等のオブジェクト指向プログラミン言語、および"C"プログラミング言語または同様のプログラミング言語等の手続型プログラミング言語を含む1または複数のプログラミング言語の任意の組み合わせにおいて記述されたソースコードまたはオブジェクトコードのいずれかであってよい。コンピュータ可読プログラム命令は、ユーザコンピュータ上で全体的に、ユーザコンピュータ上で部分的に、スタンドアロンソフトウェアパッケージとして、ユーザコンピュータ上で部分的におよびリモートコンピュータ上で部分的に、または、リモートコンピュータ若しくはサーバ上で全体的に実行されてよい。後者のシナリオにおいては、リモートコンピュータは、ローカルエリアネットワーク(LAN)または広域ネットワーク(WAN)を含む任意のタイプのネットワークを通してユーザのコンピュータに接続されてよく、あるいは、外部コンピュータへの接続がなされてもよい(例えば、インターネットサービスプロバイダを用いたインターネット経由で)。いくつかの実施形態において、例えば、プログラマブルロジック回路、フィールドプログラマブルゲートアレイ(FPGA)またはプログラマブルロジックアレイ(PLA)を含む電子回路は、本開示の態様を実行すべく、コンピュータ可読プログラム命令の状態情報を用いてコンピュータ可読プログラム命令を実行して、電子回路をパーソナライズしてよい。
本開示の態様は、本開示の実施形態による方法、装置(システム)およびコンピュータプログラム製品のフローチャート図もしくはブロック図またはその両方を参照して本明細書で説明される。フローチャート図および/またはブロック図の各ブロックおよびフローチャート図および/またはブロック図内のブロックの組み合わせが、コンピュータ可読プログラム命令によって実装されてよいことを理解されたい。
これらのコンピュータ可読プログラム命令は、コンピュータのプロセッサまたは他のプログラム可能データ処理装置に提供されて、マシンを生成してよく、当該命令は、当該コンピュータのプロセッサまたは他のプログラム可能データ処理装置により実行され、フローチャートもしくはブロック図またはその両方のブロック(複数可)に指定された機能/動作を実装するための手段を形成する。これらのコンピュータ可読プログラム命令はまたコンピュータ可読記憶媒体内に格納されてよく、当該命令は、コンピュータ、プログラム可能データ処理装置および/または他のデバイスに対し、特定の態様で機能するよう命令し得、その結果、格納された命令を有するコンピュータ可読記憶媒体は、フローチャートおよび/またはブロック図のブロック(複数可)に指定された機能/動作の態様を実装する命令を含む製品を備えるようになる。
コンピュータ可読プログラム命令はまた、コンピュータ、他のプログラム可能データ処理装置、または他のデバイスにロードされて、当該コンピュータ、当該他のプログラム可能装置または他のデバイス上で一連の動作ステップが実行されて、コンピュータ実装プロセスを生成してよく、その結果、当該コンピュータ、他のプログラム可能装置または他のデバイス上で実行される当該命令が、フローチャートもしくはブロック図またはその両方のブロック(複数可)に指定された機能/動作を実装する。
これら図面内のフローチャートおよびブロック図は、本開示の様々な実施形態によるシステム、方法およびコンピュータプログラム製品の考えられる実装のアーキテクチャ、機能および処理を示す。この点に関し、フローチャートまたはブロック図内の各ブロックは、指定された論理機能(複数可)を実装するための1または複数の実行可能命令を備える命令のモジュール、セグメントまたは一部を表わしてよい。いくつかの代替的な実装において、ブロックに特記される機能は、図面内に示されるものとは異なる順序で行われてよい。例えば、連続的に図示される2つのブロックは実際には、関連する機能に応じて、1ステップとして行われてよく、並行して実行されてよく、実質的に並行して実行されてよく、部分的若しくは全体的に時間的に重複して実行されてよく、あるいは、場合によっては、ブロックは逆順で実行されてよい。またブロック図および/またはフローチャート図の各ブロック並びにブロック図および/またはフローチャート図内の複数のブロックの組み合わせが、指定された機能若しくは動作を実行する、または、特定用途向けハードウェアとコンピュータ命令との組み合わせを実行する特定用途向けハードウェアベースのシステムによって実装されてよいことにも留意されたい。
多くの既知の電子データベースストレージシステムは通常、データ情報を、物理ストレージ内の互いに隣接して配置される複数のセクション内に格納する。これらのセクションは、「ページ」と称され、ページとは、例えば限定ではないが、8キロバイト(KB)といった予め定義された物理ストレージ容量値である。通常、ストレージシステム内のデータは、複数の行および列を通して定義されるテーブル内に編成される。各ページは、テーブルの行の少なくとも一部を含んでよく、テーブルの行の論理的態様は、複数のページと重なってよく、その結果、1テーブルは複数のページにわたり伸びる。複数のテーブルが、1つのテーブル空間を定義し、ここでも、複数のページがテーブル空間またはページの行に編成される、ここで、ページの行とテーブルの行とを混同しないものとする。データベースの使用中、読み取りトランザクション、書き込みトランザクションおよび削除トランザクションは、影響されたデータテーブルの行が存在する特定のページの行内の特定のページに宛てられる。例えば、特定データの削除が、フラグメンテーションの問題を生じさせることがあるので、ページ(複数可)上のデータ修正により、最適ではない物理ストレージイメージを生じさせることがある。さらに、例えば、ページの行が、元々存在していたものよりも長いテキストストリングを持つように更新された場合、「オーバーフローレコード」が生成されることがあり、この場合、十分なストレージ空間を保持する新しいストレージ位置へのポインタがデータフィールド内に格納される。このような場合、元のデータフィールド上での後続の読み取り操作は、元の単一のI/O操作ではなく、2つの別個のI/O操作をもたらす当該より大きいデータフィールドへリダイレクトされる。そのため、データベースの消耗的使用により、大きくフラグメンテーション化されたストレージイメージをもたらし得る。ストレージイメージがフラグメンテーション化されるほど、リダイレクト数が増える。その結果、読み取りもしくは書き込みまたはその両方の操作のための平均アクセス時間が「理想」状態に対し増大し得る。
また、特定のページが一連の並列トランザクションまたはシリアライズトランザクションの拡張シーケンスを通して頻繁にアクセスされるように、保存データが編成され得る。ページは、物理ストレージ量を表わすので、各ページ付近のトランザクショントラフィックが、ボトルネックを誘発し、それにより、トランザクションの待機時間が増大する可能性がある。また、1または複数のアプリケーションプロセスからの並列トランザクションおよびシリアライズトランザクションは、影響されたデータ上でロックを使用して、そこにあるデータの並行性を維持することが必要とされ、この場合、アクティブプロセスがロックを「所有」または「保持」する。しかしながら、ロックは、限定ではないが中断、タイムアウト、デッドロックを含む1または複数のタイプの競合を生じさせることがある。競合とは、測定可能または判定可能な特徴である。ひとたび並列トランザクションまたはシリアライズトランザクションの程度が閾値に到達すると、ページおよび行は、「ホットスポット」として指定され得る。
さらに、データベースストレージシステム内に存在するデータは、データの物理的位置に関するインデックスが付与される。データベースインデックス付けは、クエリがデータベースからデータを効率的に取得できるように、インデックス付けがなされた特定の属性に基づき、データベースファイルからレコードを効率的に取得するためのデータ構造技術である。インデックスは、特定のテーブルと関連付けられ、関係性は、例えば、キーフィールド等の1または複数のインデックス属性で構成され、一般にキーフィールドがリレーションの主キーであり、キーはテーブルの列に基づく検索値である。データベースのサイズが増大するにつれ、インデックスのサイズも増大する。キーをインデックスと比較することにより、同一の値を持つ1または複数のデータベースレコードを見つけることが可能になる。インデックスは、データ取得の速度を大きく速めるので、各テーブルに正しいインデックスが定義されることが重要である。インデックスはまた、複数のポインタも含み、ポインタは、データベース内の各レコードの物理アドレスを保持する。ポインタを用いることで、優れたデータ取得性能をもたらす。しかしながら、データベースのロードおよび再編成等の操作を犠牲にする。
従って、多くの既知のデータベースストレージシステムは、そこに格納されたデータの定期的再編成を必要とする。再編成中、データベース内のデータの論理的もしくは物理的またはその両方の構成およびインデックスが変更される。再編成の肯定的結果としては、ホットスポットの低減および関連データの近接性を元々意図していたように復元することが含まれる。従来の運用では、多くのタイプの再編成は、再編成中にデータベースへのアクセスを拒否(すなわち、データベースをオフラインにする)することを必要としている。データベースをオフラインにすることは、例えば、電子商取引または軍隊にサービス提供するデータベースまたは巨大データベース等の高度可用性(例えば、24時間)データベースにとっては受け入れがたいものであり得る。従って、リソースおよび一時的制約の組み合わせが、必要な再編成アクティビティを魅力のないものとしている可能性がある。
格納されたデータの再編成の必要性に対するエビデンスは、データベースストレージおよび関連付けられたインデックスの収集された性能データに基づいてよい。収集された性能データは通常、テーブル空間またはパーティションレベルにおけるものであり、収集された性能データ、例えば、データテーブルまたはパーティションおよびそれぞれのインデックスの統計が1または複数のツールにより分析されて、格納されたデータの再編成の必要性が判定される。例えば、テーブルデータへの多くの変更がなされた後、論理的シーケンシャルなデータが、非シーケンシャルな物理的データページ上に存在し得、とりわけ多くの更新操作によりオーバーフローレコードが形成された場合が該当する。データがこのように編成される場合、データベース管理者は、必要なデータにアクセスすべく追加の読み取り操作を実行する必要がある。多くの行が削除された場合にも、追加の読み取り操作が必要とされる。また、テーブルデータへの多くの変更は、インデックス性能の低下を招く可能性があり、これはインデックスを用いるクエリの性能において目立った顕著な変化として示される。従って、これらの問題のすべてが、入力/出力操作を増大させ、性能を低下させ得る。
上記したように、収集された性能データは通常、テーブル空間またはパーティションレベルにおけるものである。しかしながら、ワークロード性能の問題はより粒度が細かいものであり得、すなわち、このような問題は、テーブルまたはパーティションの特定の小さい部分に制限され得、その結果、影響されるワークロード性能は、テーブルまたはパーティションレベルの統計には反映されない。また、既知のデータベースストレージシステムにおいて、再編成アクティビティは、テーブルまたはパーティションレベルベースでのみ実行され得、これにより、再編成中のデータベースの操作を制約する必要性が伴う。
本明細書に開示および説明されるシステム、コンピュータプログラム製品および方法は、判定されたワークロードを受けての、データベース再編成の駆動に関し、より具体的には、データベースのオンライン部分的再編成を提供して、ワークロード性能を改善することに関する。性能敏感性ワークロードが識別され、「性能敏感性ワークロード」とは、ユーザによってそのように前に識別されたか、または、経験的データ収集に基づき、性能敏感であるとして判定されたワークロードとして本明細書で定義される。いくつかの実施形態において、例えば、限定ではないが、性能敏感性ワークロードは少なくとも満足する処理性能を有するものの、通常比較的高コストまたは延長された実行時間をもたらすユーザ指定のランタイム要件を持ち、従って、各ワークロードを最小レベルの実行性能で実行できないことは、追加のコストおよび遅延をもたらし得るので、ユーザによって性能敏感性であるとみなされているワークロードを含む。いくつかの実施形態において、ランタイム性能要件と実際のランタイム実行との間の関係が発見され、収集された性能情報を通してユーザの注意を向けさせる。また、いくつかの実施形態において、性能敏感性ワークロードは、定義されたレコードアクセスパス、レコード番号または他のレコード識別子、テーブル内のレコード範囲、物理的ストレージデバイス内のページ範囲、読み取られたページ数、リストプリフェッチ、シーケンシャルI/O操作要件、並びにオーバーフロー率、ホットスポット条件およびテーブル空間検索時間を含む任意の判定されたデータレコードのオーバーフロー条件のうち、1または複数を通して識別される。従って、性能敏感性ワークロードは、その実行前に明示に識別されるか、あるいは、ランタイム測定値の収集中に発見される。
少なくとも一実施形態において、性能情報収集を前進させるべく、各検索ワークロードのアクセスプランが用いられ、テーブルおよびインデックスにアクセスするために用いられる方法が分析される。方法には、限定でないが、インデックススキャン、テーブルスキャン、リストプリフェッチおよび非一致インデックスアクセスが含まれる。また、ページI/O操作、CPUコスト、オーバーフロー率および各ワークロードの実行時間等の実行ログ情報が収集される。また、データ更新および挿入ワークロード、ページI/O操作およびテーブル空間検索時間等のワークロード情報が記録される。さらに、クラスタ率、レコード削除番号、レコード挿入番号およびレコードオーバーフロー数等のデータベース統計が記録される。従って、性能情報収集は、実行ログ、ワークロード操作およびデータベース統計からのデータ収集を含む。
1または複数の実施形態において、ひとたび上記の性能情報が収集されると、ワークロード性能情報が分析され、性能問題の任意の指標の性質、格納されたデータのどの部分が影響されているか、およびテーブル空間、パーティションまたはインデックスのどの特性(複数可)が改善される必要があるかを判定する。概して、潜在的なワークフロー問題を判定すべく分析されるものとして、4つの主要な問題があり、各問題は一般的な解決策を有する。
分析される第1の問題は、クラスタ率を含む。テーブルレコードは、レコード自体がレコードのキーフィールドに関し部分的または全体的に順序付けられるように構成されてよく、キーフィールドがその特定のテーブルまたは複数のテーブルの関連付けられたインデックスを定義する。定義されたキーに関しそのレコードの意味のある順序を有するテーブルは、そのキーに関しクラスタリングされていると言われる。クラスタリングされたテーブルは、クラスタリングされていないテーブルよりも効率的であり、キーに基づき、クラスタリング化された操作がテーブルに対し実行される。クラスタリングは、各インデックスに対するクラスタリング度を表わすクラスタ率を通して測定され、いくつかの実施形態において、クラスタ率は、インデックスのソート順序に関し、連続的ページ上でシーケンシャルに格納されている行の割合として表される。クラスタ率の値が高いほど、影響された行は、所望のインデックスキーシーケンスで、より良く順序付け、またはクラスタリング化される。テーブル行が、所望のインデックスキーシーケンスに近い場合、当該テーブル行は、影響されたデータページがバッファ内にある間に、当該ページから読み取り可能であり、これにより、無関係のI/O操作を低下し、またはなくす。クラスタリング問題に起因する性能敏感性ワークロードの実行低下の指標には、限定ではないが、低下するクラスタ率として示されるように、各行のクラスタリングが予め定められた低閾値に近づく、または下方向に予め定められた低閾値を通過すると判定されること、ページI/O操作数の増加が判定されること、および、特定のクエリ操作を実行するためにインデックスを使用するより、各テーブルがスキャンされることが含まれる。上記の指標のうち1または複数が判定される場合における、一般的な高レベル解決策は、影響されたレコード範囲上でのテーブルの局所的且つ部分的再編成が含まれ、局所的な部分的再編成を含み、局所的な部分的再編成を実行して、影響されたレコードの所望のクラスタリングシーケンスを復元してよい。
分析される第2の問題は、ホットスポットを含み、ホットスポットについては、本明細書で前に定義してある。ホットスポット問題に起因する性能敏感性ワークロードの実行低下の指標には、限定ではないが、拡張的または過度の競合および延長されたテーブル空間検索時間が含まれる。上記の指標のうち1または複数が判定される場合における一般的な高レベル解決策は、影響されたページ範囲上でのテーブルの局所的な部分的再編成を含み、局所的な部分的再編成を実行して、ホットデータをより多くのテーブル空間に拡散させ、且つ、影響されたページ上で利用可能な空き物理的ストレージ空間の量を増やしてよい。
分析される第3の問題は、限定ではないが、総レコード数に対するオーバーフローレコード数の比率、すなわち、オーバーフロー率が確立された閾値に近づくまたは超えることを含む指標によるデータレコードのオーバーフロー問題を含む。上記の指標のうち1または複数が判定される場合における一般的な高レベル解決策は、影響されたページ範囲上でのテーブルの局所的な部分的再編成を含み、局所的な部分的再編成を実行して、オーバーフローレコードを除去し、且つ、影響されたページ上で利用可能な空き物理的ストレージ空間の量を増やしてよい。
分析される第4の問題は、限定ではないが、影響されたテーブル空間内のレコード数の確立された閾値に近づくまたは超えるページI/Oトランザクション数を含む指標によるデータレコードの空間使用率問題を含む。一定期間の後、テーブル空間のページ内の空き空間は、データおよびデータレコードの追加および削除を通してページ間で不均等に分散されるようになり得る。上記の指標が判定される場合、一般的な高レベル解決策は、影響されたページ範囲上でのテーブルの局所的な部分的再編成を含み、局所的な部分的再編成を実行して、空き空間がより均等に分散されて、データベーステーブルのページ内の空き空間の所望の分布パターンを満たすように、デフラグメンテーションを通してテーブル空間の影響されたページ内の空き空間を再編成してよい。
分析される4つの問題の数は、限定的な値ではない。また、本明細書で提示されるような分析のシリアライズ順序は限定的なものではなく、少なくともいくつかの実施形態において、分析は並列で実行される。従って、性能情報収集および性能敏感性ワークロードに関する分析に起因するクラスタ率の問題、ホットスポット、オーバーフロー問題および空間使用率問題の指標は、影響されたレコードおよびページ範囲に対するテーブルの局所的な部分的再編成を通して軽減されてよい。
図4を参照すると、本明細書に説明されるプロセスを実装するための、本明細書で以降データベース部分的再編成システム400として称される、図3に図示されるコンピュータシステム/サーバ(コンピュータシステム/サーバ300)の一部を示す概略図が示される。また図3を参照すると、データベース部分的再編成システム400は、処理デバイス104と同様の少なくとも1つの処理デバイス404を含み、少なくとも1つの処理デバイス404は、中央処理装置(CPU)と呼ばれることもある。データベース部分的再編成システム400はまた、システムメモリ106の少なくとも一部と同様の少なくとも1つのメモリデバイス406も含む。データベース部分的再編成システム400はさらに、永続ストレージデバイス108の少なくとも一部であるデータベースストレージシステム408を含む。処理デバイス404、メモリデバイス406およびデータベースストレージシステム408は、通信バス102と同様の通信バス402を通して通信可能および動作可能に連結されている。通信バス402は、本明細書でさらに詳述するように、通信バス上の通信を区別すべく、2つの別個の通信バス402Aおよび402Bとして図示されている。しかしながら、いくつかの実施形態において、適切な制御を用いて、すべての通信トラフィックは単一の通信バス402上で生じる。また、通信バス402Aに連結されているのは、他のデバイス430であり、他のデバイスには、限定ではないが、通信ユニット110、I/Oユニット112およびディスプレイ114が含まれてよく、これらはすべて図3に図示されており、図4には図示されていない。1または複数の実施形態において、1または複数のツールが、メモリデバイス406内に存在する。具体的には、ツールは、埋め込みワークロード分析モジュール442を含む再編成モジュール440を含む。ワークロード分析モジュール442は、通信バス402Aに通信可能に連結され、再編成モジュール440は、通信バス402Bに通信可能および動作可能に連結されている。以下に、再編成モジュール440およびワークロード分析モジュール442について本明細書でさらに説明する。従って、再編成モジュール440およびワークロード分析モジュール442を含むツールを備えたデータベース部分的再編成システム400が用いられ、本明細書に説明されるオンライン部分的データベース再編成を実装して、性能敏感性ワークロードを含むワークロード性能を向上させる。
図5は、ワークロード性能を向上させるべく、ワークロードベースのオンライン部分的データベース再編成を駆動するためのプロセス500を示す高レベルのフローチャートである。図6A~6Cは、図5に図示されるワークロードベースのオンライン部分的データベース再編成を駆動するためのプロセス600を示すより詳細なフローチャートを示す。図6Aを参照すると、プロセス600は、性能敏感性ワークロードを識別602することを含む。いくつかの実施形態において、「性能敏感性ワークロード」は、ユーザによってそのように以前に識別されたワークロードか、または、経験的データ収集に基づき、性能敏感性と判定されたワークロードとして定義される。経験的データ収集は、完全に自動化されてよい。いくつかの実施形態において、例えば、限定ではないが、性能敏感性ワークロードは、少なくとも満足する処理性能を有するものの、通常比較的高コストまたは延長された実行時間をもたらすユーザ指定のランタイム要件を持ち、各ワークロードを最小レベルの実行性能で実行できないことは、追加のコストおよび遅延をもたらし得るので、従って、ユーザによって性能敏感性であるとみなされているワークロードを含む。いくつかの実施形態において、ランタイム性能要件と実際のランタイム実行との間の関係が発見され、収集された性能情報を通してユーザの注意を向けさせる。また、いくつかの実施形態において、性能敏感性ワークロードは、定義されたレコードアクセスパス、レコード番号または他のレコード識別子、テーブル内のレコード範囲、物理的ストレージデバイス内のページ範囲、読み取られたページ数、リストプリフェッチ、シーケンシャルI/O操作要件、並びにオーバーフロー率、ホットスポット条件およびテーブル空間検索時間を含む任意の判定されたデータレコードのオーバーフロー条件のうち、1または複数を通して識別される。従って、性能敏感性ワークロードは、その実行前に明示的に識別されるか、ランタイム測定値の収集中に発見される。
また図4を参照すると、いくつかの実施形態において、プロセス600は、各データベースの1または複数の部分と関連付けられた性能敏感性ワークロードの性能情報を収集604することを含む。情報ソースは、図5に示される。最初に、少なくとも一実施形態において、性能情報収集を前進させるべく、各検索ワークロードのためのアクセスプランが用いられ、テーブルおよびインデックスにアクセスするために用いられる方法が分析される。方法には、限定でないが、インデックススキャン、テーブルスキャン、リストプリフェッチおよび非一致インデックスアクセスが含まれる。また、実行ログ502が、通信バス402Aを通してワークロード分析モジュール442によってアクセスされる。実行ログ502の情報のうち少なくとも一部は、限定ではないが、各ワークロードのページI/O操作、CPUコスト、オーバーフロー率および実行時間を含む。また、ワークロード情報504は、通信バス402Aを通してワークロード分析モジュール442によってアクセスされる。ワークロード情報504の少なくとも一部は、限定ではないが、データ更新および挿入ワークロード、ページI/O操作およびテーブル空間検索時間を含む。さらに、データベース統計506は、通信バス402Aを通してワークロード分析モジュール442によりアクセスされる。データベース統計506の少なくとも一部は、限定ではないが、クラスタ率、レコード削除数、レコード挿入数およびレコードオーバーフロー数を含む。従って、性能情報収集は、実行ログ502、ワークロード情報504およびデータベース統計506からのデータ収集を含む。
1または複数の実施形態において、ひとたび上記の性能情報が収集604されると、収集されたワークロード性能情報は、ワークロード分析モジュール442により分析508/606されて、性能低下の任意の指標の性質が判定される。少なくともいくつかの実施形態において、分析は、完全に自動化態様で実行され、いくつかの実施形態においては、継続的に分析される。また、判定された性能低下を受けて、1または複数のデータベース部分のうちどれが、判定された性能低下により影響されるか、すなわち、影響される格納されたデータの部分についての判定がなされる。また、データベース部分の判定を受けて、判定された性能低下を分類する、すなわち、テーブル空間、パーティションまたはインデックスのどの特性(複数可)を改善する必要があるかを判定する。概して、潜在的なワークフロー問題を判定すべく分析されるものとして4つの主要な問題があり、各問題は一般的な解決策を有し、各性能問題について本明細書でさらに説明する。少なくとも一実施形態において、プロセス600は、4つの性能問題を解決するための、本明細書で以下にさらに説明するような推奨されるオンライン部分的再編成アクション510を判定608することを含む。
図6Aへの参照を続けつつ図6Bを参照すると、性能情報を分析する操作606および4つの性能問題を解決するための推奨されるオンライン部分的再編成アクションを判定する操作608が、分析およびアクションのセット610においてさらに説明される。分析およびアクションのセット610は、3つのセクション、すなわち4つの性能問題の各々について分析される指標612、性能問題の有無の判定614、および推奨される再編成アクション616に分割される。操作602、604、606および608に関連付けられる判定は、完全に自動化されてよい。推奨されるオンライン部分的再編成アクションは、完全に自動化されてよい。分析される4つの問題の数は、限定的な値ではない。また、本明細書で提示されるような分析のシリアライズ順序は限定的なものではなく、少なくともいくつかの実施形態において、分析は並列で実行される。従って、性能情報収集および性能敏感性ワークロードに関する分析に起因するクラスタ率の問題、ホットスポット、オーバーフロー問題および空間使用率問題の指標は、影響されたレコードおよびページ範囲に対するテーブルの局所的な部分的再編成を通して軽減されてよい。
いくつかの実施形態において、分析される第1の問題は、クラスタ率を含む。クラスタリング問題に起因する性能敏感性ワークロードの性能低下の指標620には、限定ではないが、各行のクラスタリング率の分析が含まれる。分析される別の指標620は、特定のワークロードについて実行されるI/O操作の数が含まれる。分析されるさらなる指標620は、クエリのためのテーブルスキャンと、クエリのための各インデックスの使用との間を区別するためのワークロードの部分を観察することを含む。判定操作622が実行されて、再編成を正当化するほどクラスタ率が十分低いかを判定622する。具体的には、指標620が、低下するクラスタ率が予め定められた低閾値に近づくまたは下方向に通過すると判定されること、ページI/O操作数の増加、および、特定のクエリ操作を実行するために、各テーブルのスキャンの方が、各インデックスの使用よりも増えていること、のうち1または複数を指向するかどうかである。判定操作622の結果が「はい」の場合、一般的な高レベル解決は、影響されたレコード範囲上でのテーブルの局所的な部分的再編成を含み、局所的な部分的再編成は、影響されたレコードの所望のクラスタリングシーケンスを復元624すべく実行されてよい。所望のクラスタリングシーケンスを復元624するためのこのような部分的再編成は、ユーザインタフェースを通して実装されてよく、または、自動化されてよい。
図7を参照すると、影響されたレコードの所望のクラスタリングシーケンスを復元して、低クラスタ率判定を軽減するためのプロセス700を示す概略図が示される。また図4を参照すると、データベース702の一部が、テーブル空間704、複数のデータレコード706、インデックス708、および、インデックス708からそれぞれ個々のレコード706に延びる複数のポインタ710(2つのみラベリングされている)と共に図示されている。インデックス708およびテーブル空間704は、データベースストレージシステム408内に存在する。
いくつかの実施形態において、プロセス700は、矢印722により図示されるように、テーブル空間704からの判定されたレコード範囲内の各レコード706を、再編成モジュール440を通してアンロード720(すなわち、コピーまたはスキャン)して、メモリデバイス406内に一時的に存在させ、これにより、一組のアンロードされたレコード724を定義することを含む。レコード706は、各クラスタインデックスアクセスパス(不図示)を通して、または、リストプリフェッチ機能を用いて、アンロード対象として選択され、レコード706をアンロード720する。本明細書でさらに説明されるように、スイッチアクティビティが完結されるまで、レコード706は使用中のままである。従って、再編成されるべき各レコード706は、テーブル空間704のそれらの各部分からメモリデバイス406へコピーされる。
少なくともいくつかの実施形態において、プロセス700はまた、矢印736に図示されるように、アンロードされたレコード724をバッファプール734内の新しいページ732にロード730することを含む。いくつかの実施形態において、バッファプール734がメモリデバイス406内に存在し、いくつかの実施形態において、バッファプール734はテーブル空間704に存在する。ロード730前に、ロード730後の各ページ上に残る空き空間率の適切な値および追加されるべき空きページ数を含み、アンロードされたレコード724を受信するために必要なテーブル空間704内のストレージ空間が計算される。確保されたページ732が、矢印740により図示されるように、テーブル空間704の連続的な部分738に割り当てられ、いくつかの実施形態において、連続的な部分738は既存パーティションである。いくつかの実施形態において、新しいパーティション(本明細書でさらに説明する)が作成される。オンライントランザクション同期742が、レコード724に適用される(矢印744により示されるように)、すなわち、ルーチンデータの読み取りアクティビティ、書き込みアクティビティおよび削除アクティビティが継続されている間に、データベースストレージシステム408はオフラインにされないので、連続的な部分738内の確保された、および割り当てられたページ空間およびページ732の不注意による使用を防ぐべく、ページ732は「利用不可」として設定される。図7に図示されていないが、スイッチアクティビティ(本明細書でさらに説明する)が完了されるまで、テーブル空間704内に存在するレコード706は、アンロードされたレコード724と並行して更新されて、その中のデータの同期の維持を容易にする。アンロードされたレコード724は、バッファプール734内の新しいページ732にロード730される。いくつかの実施形態において、ロードされたレコードを持つページ746が、テーブル空間704の確保された連続的な部分738に書き込み748、すなわち送信される。いくつかの実施形態において、矢印754で図示されるように、テーブル空間704の外部に新しいパーティション750が作成され、ページ746が新しいパーティション750の連続的な部分752に割り当てられる。ロードされたレコードを持つページ746は、新しいパーティション750の確保された連続的な部分752に書き込み756、すなわち送信される。従って、各レコード724が各ページ732にロードされ、ロードされたページ746がテーブル空間704または新しいパーティション750に送信される間に、オンライントランザクション同期742が影響されたレコードに継続的に適用されて、不調和なデータの可能性を軽減する。
1または複数の実施形態において、インデックス708と関連付けられたキー762が構築760されて、ページ746の新しい位置を反映させる。古いROWID値766と新しいROWID値768との間のマップが構築764される。影響された範囲におけるすべてのインデックス708についてインデックスキー762が構築760され、インデックスキー762は、今や新しいROWID値768に関連付けられる。従って、ページ746の位置の移行は、データテーブル内の影響された行の各々について、新しいインデックスキー762を生成することを含む。
少なくともいくつかの実施形態において、プロセス700さらに、データページレベルにおいて、ページ746内にロードされたレコードを適切なクラスタリング順序にスイッチ770することを含む。古いレコード706(1つのみ図示)がロックされ(これにより、そのオンライントランザクション同期742を終了させる)、テーブル空間704から削除772され、インデックス708が更新されて、各ポインタ710を各レコードの新しい位置にシフトさせ、すなわち修正されたポインタ774を生成する。新しいページ746は、オンライントランザクション同期742によるさらなる更新に利用可能とされ、今や新しいページ732内のレコードへの読み取りおよび書き込み776を行う。従って、影響されたレコード範囲上での、クラスタリングされたデータレコードの局所的な部分的再編成が実行されて、影響されたレコードの所望のクラスタリングシーケンスを復元してよい。
再度図6Bを参照すると、判定操作622の結果が「いいえ」の場合、いくつかの実施形態において、プロセス600は、分析される第2の問題に進み、第2の問題はホットスポットを含み、ホットスポットについては本明細書において前に定義されている。ホットスポット問題に起因する性能敏感性ワークロードの実行低下の指標630には、限定ではないが、拡張的または過度の競合および延長されたテーブル空間検索時間が含まれる。判定操作632が実行されて、再編成を正当化するほど、テーブル空間内のホットスポットの存在が十分否定的に性能に影響を及ぼしているかが判定632される。具体的には、指標630は、性能を予め定められた低閾値に近づけるまたは下方向に通過させると判定され得る、過剰な競合および延長されたテーブル空間検索時間のうちの1または複数をポイントしてよい。判定操作632の結果が「はい」の場合、一般的な高レベル解決策は、影響されたページ範囲上でのテーブルの局所的な部分的再編成を含み、局所的な部分的再編成を実行して、ホットデータをより多くのテーブル空間に拡散634させ、且つ、影響されたページ上で利用可能な空き物理的ストレージ空間の量を増やしてよい。ホットデータを拡散634させるこのような部分的再編成は、ユーザインタフェースを通して実装されてよく、または、自動化されてよい。
図8を参照すると、ホットスポットに関連する性能問題を軽減するためのプロセス800を示す概略図が図示される。また図4を参照すると、データベース802の一部が、テーブル空間804、複数のページ806、インデックス808、およびインデックス808からそれぞれ個々のページ806に延びる複数のポインタ810と共に図示されている。インデックス808およびテーブル空間804は、データベースストレージシステム408内に存在する。
複数のページ806は、複数のページ行(ラベリングされていない)を含み、各行は16ページを含み、行ごとのデータページ数は、非限定的である。ページ806は、30個の低負荷ページ814、1個の中間負荷ページ816および1個のホットページ818を含む2行を含む第1のページグループ812を含む。また、ページ806は、6個の中間負荷ページ816および26個のホットページ818を含む2行を含む第2のページグループ820を含む。また、ページ806は、5個の中間負荷ページ816および43個の低負荷ページ814を含む3行を含む第3のページグループ822を含む。さらに、ページ806は、32個の実質的空きページ826を含む第4のページグループ824を含む。本明細書で用いられる「低負荷」という用語は、時折の読み取り/書き込み/削除アクセスを持つ、そこに格納されたいくつかのデータを示す。同様に、「中間負荷」という用語は、中級の読み取り/書き込み/削除アクセスを持つ、そこに格納された中間量のデータを示す。「ホットページ」という用語は、本明細書の他の箇所で説明されている。本明細書で用いられる「実質的空き」という用語は、そこにデータまたはメタデータを格納しておらず、且つ、実質的に稀なアクセスに遭遇するページを示す。複数のポインタ810は、5個のポインタ810を含み、各ポインタ810は、第2のページグループ820内のホットページ818と関連付けられる。示された実施形態は、特定の編成で分散されたページ806を含む一方で、本明細書で説明されるデータベース部分的再編成システム400の操作を可能にする任意の構成の任意の数のページ806が用いられる。
いくつかの実施形態において、プロセス800は、矢印832により図示されるように、再編成モジュール440を通して、テーブル空間804から、識別されたページド範囲内の各ページ806をアンロード830(すなわち、コピーまたはスキャン)して、メモリデバイス406内に一時的に存在させ、これにより、一組のアンロードされたレコード834を定義することを含む。レコード806は、各ホットページ判定メカニズムを通して、または、リストプリフェッチ機能を用いて、アンロード対象として選択され、レコード806がアンロード830される。本明細書にさらに説明するように、スイッチアクティビティが完結するまで、影響されたページ806内のレコードは使用中のままである。従って、再編成されるべき各レコード806は、テーブル空間804の各部分からメモリデバイス406にコピーされる。
1または複数の実施形態において、影響されたページ内のレコード(不図示)、すなわち、第2のページグループ820のホットページ818が必要に応じてソート836され、影響されたページ内のレコードを適切にクラスタ化する。従って、さらに詳しく説明するように、レコードをロードする前にレコードの任意のクラスタリングが完了される。
少なくともいくつかの実施形態において、プロセス800はまた、アンロードされたレコード834を、割り当てられたページにロード840することを含む。いくつかの実施形態において、32個の実質的空きページ826等の既存ページのみが用いられる。いくつかの実施形態において、本プロセス800に具体的に割り当てられた新しい実質的空きページのみが用いられ、任意の既存ページは、アンロードさたレコード834を受信しない。いくつかの実施形態において、既存ページおよび新しいページの組み合わせが割り当てられる。新しい実質的空きページのみを含む実施形態について説明されており、既存ページのみを用いるこれらの実施形態も同様に扱われる。また、既存ページおよび新しいページの組み合わせを含む実施形態が説明される。
従って、新しい実質的空きページのみが用いられる実施形態については、新しい実質的空きページ842がバッファプール844内に作成される。いくつかの実施形態において、バッファプール844はメモリデバイス406内に存在し、いくつかの実施形態において、バッファプール844はテーブル空間804内に存在する。ロード840前に、ロード840後に各ページ上に残る空き空間率の適切な値および追加されるべき空きページ数を含み、アンロードされたレコード834を受信するために必要なテーブル空間804内のストレージ空間が計算される。
テーブル空間804の第1のスイッチ後構成870を含む実施形態においては、確保された新しい実質的空きページ842のみがバッファプール844内に存在し、確保されたページ842は、矢印850で示されるようにテーブル空間804の連続的な部分848内に割り当てられ、いくつかの実施形態において、連続的な部分848は、既存パーティション(不図示)であってよい。いくつかの実施形態において、新しいパーティション(図7に関し説明したように)が作成される。オンライントランザクション同期852が、アンロードされたレコード834に適用される(矢印854によって示されるように)、すなわちルーチンデータの読み取りアクティビティ、書き込みアクティビティおよび削除アクティビティが継続されている間に、データベースストレージシステム408はオフラインにされないので、連続的な部分848内の確保され、および割り当てられたページ空間および確保されたページ842の不注意による使用を防ぐべく、ページ842は「利用不可」として設定される。図8に図示されていないが、スイッチアクティビティ(本明細書でさらに説明する)が完了されるまで、テーブル空間804内の影響されたページ806内に存在するレコードは、アンロードされたレコード834と並行して更新されて、その中のデータ同期の維持を容易にする。少なくとも一実施形態において、アンロードされたレコード834は、バッファプール844内の新しいページ842にロード840される。
少なくとも一実施形態において、アンロードされたレコード834の割り当ての結果、アンロードされたレコード834の適切な拡散を通して、ホットスポットの除去が可能になる。いくつかの実施形態において、アンロードされたレコード834を持つページ856は、テーブル空間804の確保された連続的な部分848に書き込み858、すなわち送信される。従って、各アンロードされたレコード834が各ページ842にロードされ、およびロードされたページ856がテーブル空間804または新しいパーティション(不図示)に送信される間に、オンライントランザクション同期852が影響されたレコードに継続的に適用されて、不調和なデータの可能性を軽減する。
1または複数の実施形態において、インデックス808に関連付けられたキー862が構築860されて、ロードされたページ856の新しい位置が反映される。古いROWID値866と新しいROWID値868との間のマップが構築864される。影響された範囲におけるすべてのインデックス808についてインデックスキー862が構築860され、今やインデックスキー862は、新しいROWID値868に関連付けられる。従って、ロードされたページ856の位置の移行は、データテーブル内の影響された行の各々について、新しいインデックスキー862を生成することを含む。
少なくともいくつかの実施形態において、プロセス800はさらに、データページレベルにおいて、ロードされたページ856内にロードされたレコードを適切なクラスタリング順序にスイッチ872することを含む。古いレコードの一部、すなわち第2のページグループ820内の26個のホットページ818内のレコードはロックされ(これにより、そのオンライントランザクション同期852を終了させる)、テーブル空間804から削除874され、インデックス808が更新されて、各ポインタ810の部分を各レコードの新しい位置にシフトする、すなわち修正されたポインタ876を生成する。新しいページ856は、オンライントランザクション同期852を通したさらなる更新に利用可能とされ、今やレコードへの読み取りおよび書き込み878を行う。従って、影響されたページ範囲上でテーブル空間804の局所的な部分的再編成が実行されて、ホットデータを、より多くのテーブル空間804に拡散し、且つ、影響されたページ上での利用可能な空き物理的ストレージ空間の量を増大させてよい。
既存のページおよび新しいページの組み合わせが割り当てられる実施形態については、新しい実質的空きページ842が、バッファプール844内に作成される。また、矢印846で図示されるように、既存ページ843(32個の実質的空きページ826が含まれる)がバッファプール844内に追加される。ロード840前に、ロード840後に各ページ上に残る空き空間率の適切な値および追加されるべき空きページ数を含み、アンロードされたレコード834を受信するために必要なテーブル空間804内のストレージ空間が計算される。
テーブル空間804の第2のスイッチ後構成880を含む実施形態において、確保された新しい実質的空きページ842および既存の確保された実質的空きページ843がバッファプール844内に存在し、確保されたページ842は、矢印851で示されるように、テーブル空間804の連続的な部分849内に割り当てられ、いくつかの実施形態において、連続的な部分849は、既存パーティション(不図示)であってよい。いくつかの実施形態において、新しいパーティション(図7に関し説明されるような)が作成される。オンライントランザクション同期852が、アンロードされたレコード834に適用される(矢印854によって示されるように)、すなわちルーチンデータの読み取りアクティビティ、書き込みアクティビティおよび削除アクティビティが継続されている間に、データベースストレージシステム408はオフラインにされないので、連続的な部分849内の確保および割り当てられたページ空間並びに確保されたページ842および843の不注意による使用を防ぐべく、ページ842および843は「利用不可」として設定される。図8に図示されていないが、スイッチアクティビティ(本明細書でさらに説明する)が完了するまで、テーブル空間804内の影響されたページ806内に存在するレコードは、アンロードされたレコード834と並行して更新されて、その中のデータの同期の維持を容易にする。少なくとも一実施形態において、アンロードされたレコード834は、バッファプール844内の新しいページ842および既存ページ843にロード840される。
少なくとも一実施形態において、アンロードされたレコード834の割り当ての結果、アンロードされたレコード834の適切な拡散を通してホットスポットの除去が可能になる。いくつかの実施形態において、アンロードされたレコード834を持つページ857が、テーブル空間804の確保された連続的な部分849に書き込み859、すなわち送信される。従って、各アンロードされたレコード834が各ページ842および843にロードされ、ロードされたページ857がテーブル空間804または新しいパーティション(不図示)に送信される間に、オンライントランザクション同期852が影響されたレコードに継続的に適用されて、不調和なデータの可能性を軽減する。
1または複数の実施形態において、インデックス808に関連付けられたキー862が構築860され、ロードされたページ857の新しい位置が反映される。古いROWID値866と新しいROWID値868との間のマップが構築864される。影響された範囲におけるすべてのインデックス808についてインデックスキー862が構築860され、今やインデックスキー862は、新しいROWID値868に関連付けられる。従って、ロードされたページ857の位置の移行は、データテーブル内の影響された行の各々について、新しいインデックスキー862を生成することを含む。
少なくともいくつかの実施形態において、プロセス800はさらに、データページレベルにおいて、ロードされたページ857内にロードされたレコードを適切なクラスタリング順序でスイッチ872することを含む。古いレコード、すなわち第2のページグループ820内の26個のホットページ818内のレコードはロックされ(これにより、そのオンライントランザクション同期852を終了させる)、テーブル空間804から削除884され、インデックス808が更新されて、各ポインタ810を各レコードの新しい位置にシフトする、すなわち修正されたポインタ886を生成する。ページ857は、オンライントランザクション同期852を通してのさらなる更新に利用可能とされ、今やレコードへの読み取りおよび書き込み878が行われる。従って、影響されたページ範囲上でテーブル空間804の局所的な部分的再編成が実行されて、ホットデータを、より多くのテーブル空間804に拡散し、且つ、影響されたページ上での利用可能な空き物理的ストレージ空間の量を増大させてよい。
テーブル空間804の第1のスイッチ後構成870(新しい実質的空き確保ページ842のみ)およびテーブル空間804の第2のスイッチ後構成880(新しい実質的空き確保ページ842および既存の実質的空き確保ページ843の両方が用いられる)を含む実施形態は、区別される。例えば、第1のスイッチ後構成870においては、第2のページグループ820内の影響されたレコードのすべてが、修正されたポインタ876に示されるように、ロードされたページ856に転送されるわけではない。これとは対照的に、第2のスイッチ後構成880においては、第2のページグループ820内の影響されたレコードのすべてが、修正されたポインタ886が示すように、ロードされたページ857に転送される。第1のスイッチ後構成870の利点は、第2のページグループ820内のホットスポットを除去する間に、第4のページグループ824が32個の実質的空きページ826を維持する点にある。第2のスイッチ後構成880の利点は、ロードされたページ856内の任意の潜在的ホットスポットが、影響されたレコードのさらなる拡散を通して軽減される点にある。
再度図6Bを参照すると、判定操作632の結果が「いいえ」の場合、いくつかの実施形態において、プロセス600は、分析される第3の問題に進み、第3の問題は、データレコードオーバーフロー問題を含む。図6Cを参照すると、性能敏感性ワークロードの実行低下の指標640は、総レコード数に対するオーバーフローレコード数の比率、すなわちオーバーフロー率が確立された閾値に近づくまたは超えることに起因するものである。判定操作642が実行されて、再編成を正当化するほど、高オーバーフロー率の存在が十分否定的に性能に影響を及ぼしているかが判定される。判定操作642の結果が「はい」の場合、一般的な高レベル解決策は、影響されたページ範囲上でのテーブルの局所的な部分的再編成を含み、局所的な部分的再編成を実行して、オーバーフローレコードを除去する、および、影響されたページ上で利用可能な空き物理的ストレージ空間の量を増やす644のうち1または複数が行われてよい。オーバーフローレコードを除去する、および、空き物理的ストレージ空間の量を増やす644ためのこのような部分的再編成は、ユーザインタフェースを通して実装されてよく、または自動化されてよい。
図9を参照すると、高オーバーフロー率に関連する性能問題を軽減するためのプロセス900を示す概略図が図示されている。また図4を参照すると、データベース902の一部は、テーブル空間904、複数のページ906、インデックス908、および、インデックス908からそれぞれの個々のページ906に延びる複数のポインタ910と共に図示される。インデックス908およびテーブル空間904が、データベースストレージシステム408内に存在する。
それぞれのポインタ910レコードを判定すべく、ポインタレコードの範囲912が選択され、およびスキャンされる。図示の通り、5個のポインタレコード910が、オーバーフローレコードに関連付けられた範囲912内にある。第1のポインタ920は、オーバーフロー矢印926で示されるように、各オーバーフローレコードを含む第1のオーバーフローページ924に関連付けられた第1のページ922を指向する。第1のページ922は、ホットページである。第2のポインタ930は、オーバーフロー矢印936で示されるように、各オーバーフローレコードを含む第2のオーバーフローページ934に関連付けられた第2のページ932を指向する。第2のページ932は、低負荷ページである。第3のポインタ940は、オーバーフロー矢印946で示されるように、各オーバーフローレコードを含む第3のオーバーフローページ944に関連付けられた第3のページ942を指向する。第3のページ942は、低負荷ページである。第4のポインタ950は、オーバーフロー矢印956で示されるように、各オーバーフローレコードを含む第4のオーバーフローページ954に関連付けられた第4のページ952を指向する。第4のページ952は、高負荷ページであるが、ホットスポットではない。第5のポインタ960は、オーバーフロー矢印966で示されるように、各オーバーフローレコードを含む第5のオーバーフローページ964と関連付けられた第5のページ962を指向する。第5のページ962は、中間負荷ページである。従って、データベース902は、影響されたページ範囲上でのテーブル空間904の局所的な部分的再編成を正当化する十分な数のオーバーフローレコード924-964をテーブル空間904内に含み、局所的な部分的再編成が実行されて、オーバーフローレコードを除去し、および影響されたページ上で利用可能な空き物理的ストレージ空間の量を増やしてよい。
少なくとも一実施形態において、第1のページ922~第5のページ962のいずれかが、任意の確立されたパラメータを超えることなく、各オーバーフローレコードを格納する十分な空間を有する場合、各オーバーフローレコードは、第1のページ922~第5のページ962のそれぞれへ転送され、各オーバーフローページは、もはやオーバーフローレコードを含まなくなる。十分な空間がない場合、インデックス908が、各ポインタ920~960を、各オーバーフローページ924~964を直接指向するよう更新され、前のポインタレコードは削除され、これにより、オーバーフローページはページに再指定される。従って、1または複数の実施形態において、高オーバーフロー率後のデータベース970が作成される。
少なくとも一実施形態において、高オーバーフロー率後のデータベース970は、1または複数の修正されたポインタ980を含む。具体的には、第1のページ922はホットページなので、第1のページ922は、第1のオーバーフローページ924からオーバーフローレコードを受信することはできず、第1のオーバーフローページ924を指向する新しいポインタ928が作成されて、ポインタ920は削除される。また、第2のページ932は低負荷ページなので、第2のオーバーフローページ934内のオーバーフローレコードは第2のページ932に転送される。さらに、第3のページ942は低負荷ページなので、第3のオーバーフローページ944内のオーバーフローレコードは第3のページ942に転送される。また、第4のページ952は高負荷ページなので、第4のページ952は、第4のオーバーフローページ954からオーバーフローレコードを受信することはできず、第4のオーバーフローページ954を指向する新しいポインタ958が作成され、ポインタ950は削除される。また、第5のページ962は中間負荷ページなので、第5のページ962は、第5のオーバーフローページ964からオーバーフローレコードを受信できないと判定され、第5のオーバーフローページ964を指向する新しいポインタ968が作成され、ポインタ960が削除される。従って、データベース902は、影響されたページ範囲上でのテーブル空間904の局所的な部分的再編成を正当化する十分な数のオーバーフローレコード924~964をテーブル空間904内に含み、局所的な部分的再編成が実行されて、オーバーフローレコードを除去し、および影響されたページ上で利用可能な空き物理的ストレージ空間の量を増やしてよい。
再度図6Cを参照すると、判定操作642の結果が「いいえ」の場合、いくつかの実施形態において、プロセス600は、分析される第4の問題に進み、第4の問題は、データレコードの空間使用率問題を含む。データレコードの空間使用率問題に起因する性能敏感性ワークロードの実行低下の指標650は、ページI/Oトランザクション数が、影響されたテーブル空間内のレコード数のための確立された閾値に近づくまたは超えることを含む。判定操作652が実行されて、再編成を正当化するほど、空間使用率問題の存在が十分否定的に性能に影響を及ぼしているかが判定652される。判定操作652の結果が「はい」の場合、一般的な高レベル解決は、影響されたページ範囲上でのテーブルの局所的な部分的再編成を含み、局所的な部分的再編成が実行されて、デフラグメンテーション654を通して、空き空間がより均等に分布され、データベーステーブルのページ内の空き空間のための所望の分布パターンを満たすように、テーブル空間の影響されたページ内の空き空間を再編成してよい。テーブル空間をデフラグメンテーション654するこのような部分的再編成は、ユーザインタフェースを通して実装されてよく、または、自動化されてよい。
図10を参照すると、空間使用率問題に関する性能問題を軽減するためのプロセス1000を示す概略図が図示されている。また図4を参照すると、データベース1002の一部は、テーブル空間1004、複数のページ1006の範囲およびインデックス1008と共に図示される。インデックス1008およびテーブル空間1004は、データベースストレージシステム408内に存在する。
ページ1006の範囲は、複数のページ行(ラベルなし)(9個図示)を含み、各行は16個ページを含み、ページ行の数および行ごとのデータページ数は限定されない。ページ1006の範囲は、第1のページグループ、すなわち3行を含むページの第1のサブ範囲1010行を含む。同様に、ページ1006の範囲は、第2のページグループ、すなわちページの第2のサブ範囲1012、および、第3のページグループ、すなわちページの第3のサブ範囲1014を含み、またそれぞれは3行のページを含む。本開示をわかりやすくするため、ページ1006の範囲は複数の行に分割され、サブ範囲はそれぞれ3行を含む。しかしながら、各サブ範囲内のページ行の数は限定されず、サブ範囲は、限定ではないが、行の部分を含む、任意の数のページレコードを含んでよい。従って、示された実施形態は、ページ1006の範囲および特定の編成に分散されたページのサブ範囲1010、1012、1014を含む一方、本明細書で説明されるようなデータベース部分的再編成システム400の操作を可能にする任意の構成における任意の数のページ1006およびページのサブ範囲が用いられてよい。
いくつかの実施形態において、プロセス1000は、矢印1022により図示されるように、再編成モジュール440を通して、テーブル空間1004からページの第1のサブ範囲1010をアンロード1020(すなわち、コピーまたはスキャン)して、メモリデバイス406内に一時的に存在させ、これにより、一組のアンロードされたレコード1024を定義することを含む。本明細書でさらに説明されるように、スイッチアクティビティが完結されるまで、ページの第1のサブ範囲1010内のレコードは、使用中のままである。従って、再編成されるべきページの各サブ範囲1010内のレコードは、テーブル空間1004の各部分からメモリデバイス406にコピーされる。
少なくともいくつかの実施形態において、プロセス1000はまた、アンロードされたレコード1024を、矢印1036で図示されるようにバッファプール1034内に割り当てられたが新しいページ1032に再ロード1030することを含む。いくつかの実施形態において、バッファプール1034は、メモリデバイス406内に存在し、いくつかの実施形態において、バッファプールはテーブル空間1004内に存在する。再ロード1030前に、新しいページ1032が、ページの第1のサブ範囲1010内のページにマッピングされる。また、再ロード1030前に、再ロード後に各ページ上に残る空き空間率の適切な値および追加されるべき空きページ数を含み、アンロードされたレコード1024を受信するために必要なテーブル空間1004内のストレージ空間が計算される。また、1または複数の実施形態において、再ロード1030前に、影響されたページ内のレコード(不図示)、すなわちページの第1のサブ範囲1010が必要に応じてソートされ、第1のサブ範囲1010内の影響されたページ内のレコードを適切にクラスタリングする。従って、各レコードの再ロード1030前に、各レコードの任意のクラスタリングが完了される。
オンライントランザクション同期1042が、ページの第1のサブ範囲101に適用される(矢印1044によって示されるように)、すなわち、ルーチンデータの読み取りアクティビティ、書き込みアクティビティおよび削除アクティビティが継続されている間に、データベースストレージシステム408はオフラインにされないので、確保された、および割り当てられたページ1032の不注意による使用を防ぐべく、バッファプール1034内のページ1032は「利用不可」として設定される。図10に不図示であるが、スイッチアクティビティ(本明細書でさらに説明する)が完了されるまで、テーブル空間1004内の影響されたページ1006内に存在するレコードは、アンロードされたレコード1024と並行して更新されて、その中のデータの同期の維持を容易にする。アンロードされたレコード1024は、バッファプール1034内の割り当てられたページ1032に再ロード1030される。さらに、本明細書でさらに説明するように、割り当てられたページ1032内で、データページ1006の影響されたサブ範囲1010はデフラグメンテーションされて、その結果、複数の再編成されたページ1038および複数の実質的空きページ1040が生成される。複数の実質的空きページ1040に対する再編成されたページ1038の数は、ほぼ等しいものとして図示されている一方、実質的空きページに対する再編成されたページ1038の率は、本明細書で説明されるデータベース部分的再編成システム400の操作を可能にする任意の値であってよい。また、再編成されたページ1038内の空き空間に対するデータレコードの率は、本明細書で説明されるデータベース部分的再編成システム400の操作を可能にする任意の値であってよい。
1または複数の実施形態において、インデックス1008に関連付けられたキー1062が構築1060されて、再編成されたページ1038内の新しいレコードの新しい位置が反映される。古いROWID値1066と新しいROWID値1068との間のマップが構築1064される。再編成されたページ1038におけるすべてのインデックス1008についてインデックスキー1062が構築1060され、今やインデックスキー1062は、新しいROWID値1068に関連付けられる。従って、割り当てられたページ1032に再ロード1030されて、再編成されたページ1038を生成するアンロードされたレコード1024のデフラグメンテーションおよび再編成は、影響されたサブ範囲1010内の影響されたページ1006の各々の新しいインデックスキー1062の生成を含む。
少なくともいくつかの実施形態において、プロセス1000はさらに、データページレベルにおいて、ページの第1のサブ範囲1010内のデータページ1006を、再編成されたページ1038および実質的空きページ1040とスイッチ1070することを含む。データページの影響された第1のサブ範囲1010内の古いレコード(不図示)は、テーブル空間1004内でロックされて(これによりそのオンライントランザクション同期1042を終了させる)、インデックス1008が更新されて、各ポインタ(不図示)を各レコードの新しい位置にシフトさせる。バッファプール1034内の再編成されたページ1038および実質的空きページ1040は、テーブル空間1004の部分に書き込み1048、すなわち送信されて、ページの第1のサブ範囲1010を格納して、そこにある既存ページを上書きする。従って、デフラグメンテーションされ且つ再編成されたページ1038および実質的空きページ1040が、テーブル空間1004に送信される間に、オンライントランザクション同期1042が影響されたレコードに継続的に適用されて、潜在的な不調和なデータを軽減する。
ページ1006のすべてが処理されるまで、残存する第2のサブ範囲1012および第3のサブ範囲1014等のデフラグメンテーションおよび再編成が行われる。従って、再度図6B~6Cを参照すると、推奨される部分的再編成方法624、634、644および654がのうちの1または複数が実行660される。
図11を参照すると、空間使用率問題を軽減すべく、テーブル空間をデフラグメンテーションおよび再編成するためのプロセス1100を示す概略図が図示されている。テーブル空間1104、複数のページ1106の範囲およびインデックス1108が図示され、これらの3つのアーチファクトは、図10中の同様に識別されるオブジェクトと実質的に同様である。ページ1106の範囲は、ページの第1のサブ範囲1110、ページの第2のサブ範囲1112およびページの第3のサブ範囲1114を含み、これらすべての3つのサブ範囲1110、1112、1114は、低負荷ページ、中間負荷ページおよび高負荷ページの特定の組み合わせを含み、プロセスの1100の説明をわかりやすくするため、実質的空きページは除かれている。示された実施形態は、特定内容のレコードを持つ特定の編成におけるページ1106の範囲および分散されたページのサブ範囲1110、1112、1114を含む一方、本明細書で説明されるようなデータベース部分的再編成システム400の操作を可能にする、任意の量の埋め込みレコードを持つ任意の構成における任意の数のページ1106およびページのサブ範囲が用いられてよい。
複数の再編成されたページ1138Aおよび複数の実質的空きページ1140Aが、本明細書で説明されるような空間パラメータに従い生成されるように、データページ1106の影響されたサブ範囲1110がデフラグメンテーション1180される。図示されるような複数の実質的空きページ1040Aに対する再編成されたページ1038Aの率は例示的なものに過ぎず、実質的空きページ1140Aに対する再編成されたページ1138Aの率は、本明細書で説明されるデータベース部分的再編成システム400の操作を可能にする任意の値であってよい。また、再編成されたページ1138A内の空き空間に対するデータレコードの率は、本明細書で説明されるデータベース部分的再編成システム400の操作を可能にする任意の値であってよい。
同様に、本明細書で説明される空間パラメータに従い、複数の再編成されたページ1138Bおよび複数の実質的空きページ1140Bが生成されるように、データページ1106の影響されたサブ範囲1112がデフラグメンテーション1182される。図示の通り、再編成されたページ1138Bの数および実質的空きページ1140Bの数は、再編成されたページ1138Aおよび実質的空きページ1140Aから増大されている。また、本明細書で説明される空間パラメータに従い、複数の再編成されたページ1138Cおよび複数の実質的空きページ1140Cが生成されるように、データページ1106の影響されたサブ範囲1114がデフラグメンテーション1184される。図示の通り、再編成されたページ1138Cの数および実質的空きページ1140Cの数は、再編成されたページ1138Bおよび実質的空きページ1140Bから増大されている。従って、テーブル空間1104内のすべてのデータページ1106が、再編成されるかまたは実質的空きにされるまで、データページ1106のデフラグメンテーションおよび再編成が指定されたサブ範囲の各々について反復される間、影響されたテーブル空間1104を通した稼働は実質的に維持される。
図12を参照すると、パーティション化されていないテーブル空間を、パーティション化されたテーブル空間に変換するためのプロセス1200を示す概略図が図示されている。少なくともいくつかの実施形態において、図7、8、9および10~11を参照して説明した再編成の完了時に、データレコードをパーティション化することがより実用的であってよい。データベース1202は、テーブル空間1204およびインデックス1208を含む。いくつかの実施形態において、テーブル空間1204は、データページの範囲1206で埋められており、データページの14行が範囲1206内に図示されており、14は限定的な数字ではない。各行は、図10~11を参照して説明されたサブ範囲と同様の、指定のサブ範囲に属するものとして識別されてよい。しかしながら、ここで、データページの行は必ずしも、シーケンシャルまたは隣接する行に編成されない。
一実施形態において、第1のサブ範囲1210が識別され、関連付けられたデータが第1のパーティション1214に転送され、これにより、テーブル空間1204の空白部分1212が残る。同様に、第2のサブ範囲1220が識別され、関連付けられたデータが第2のパーティション1224に転送され、これにより、テーブル空間1204の空白部分1222が残る。また、第3のサブ範囲1230が識別され、関連付けられたデータが第3のパーティション1234に転送され、これにより、テーブル空間1204の空白部分1232が残る。また、第4のサブ範囲1240が識別され、関連付けられたデータが第4のパーティション1244に転送され、これにより、テーブル空間1204の空白部分のみが残る。従って、関連するデータベースシステムをオフラインにすることなく、変換によりパーティション化されていないテーブルのパーティション化が実行されることで、影響されたテーブル空間による稼働を維持してよい。
本明細書に開示されたシステム、コンピュータプログラム製品および方法は、データベースのオフライン再編成の不利な点および制約を克服することを容易にする。大規模データベースについては、性能敏感性ワークロードの定期的データ再編成は、このような再編成を必要とするデータベースの部分のみで実行され得、その間データベースの残部は稼働中のままであってよいので、データベースを稼働中止にするために必要とされる時間が大幅に低減される。また、対象部分がオフラインにならないので、再編成を受けないデータベースのより小さな部分が利用不可能となる期間は大幅に低減され、稼働の中断が最小化される。また、稼働の中断を大幅に低減できることにより、部分的再編成はより頻繁に行われて、性能敏感性ワークロードの性能をさらに高めてよい。さらに、本明細書で説明された方法およびシステムは、より多くの実質的空きデータページおよびそこに存在するデータを持つページ上の空きデータ空間を維持することで、有限の物理ストレージ空間におけるデータ管理全体を高めてよい。また、本明細書に説明された方法およびシステムは、インデックス機能を含め、各データベースシステムの自己管理を強化する。
従って、本明細書に開示された実施形態は、データベースシステムを稼働中に維持しつつ、データベースの個々の一部における小さな部分的再編成を通した大規模データベースの再編成メカニズムを提供することにより、コンピュータ技術に対する改善を提供する。このようなメカニズムは、24時間体制の稼働が必要とされ得るデータベースへのアクセスの潜在的中断を軽減する。
本開示の様々な実施形態の説明は、例示目的で記載されており、網羅的であること、あるいは、開示された実施形態への限定を意図していない。説明された実施形態の範囲および趣旨から逸脱することなく、当業者には多くの修正例および変形例が自明であろう。本明細書で用いられる用語は、実施形態の原理、市場で見られる技術の実用的な適用またはそれに対する技術的改善を最もよく説明し、あるいは、本明細書に開示された実施形態を他の当業者が理解できるように選択されている。

Claims (20)

  1. 1または複数の処理デバイスおよび前記1または複数の処理デバイスに動作可能に連結された少なくとも1つのメモリデバイスを備えるコンピュータシステムであって、前記1または複数の処理デバイスは、
    1または複数のデータベース部分と関連付けられた1または複数の性能敏感性ワークロードの性能情報を収集すること、および
    前記収集された性能情報を分析することを行うよう構成されており、前記分析は、
    前記1または複数の性能敏感性ワークロードの各々について、前記ワークロードの性能低下の指標を判定すること、
    前記判定された性能低下を受けて、前記判定された性能低下により影響される前記1または複数のデータベース部分のうち少なくとも1つを判定すること、
    前記データベース部分の判定を受けて、前記判定された性能低下を分類すること、および、
    前記性能低下の前記分類を受けて、前記1または複数のデータベース部分の1または複数の部分的再編成を実行することのうち1または複数を含み、
    前記1または複数の処理デバイスは、さらに、
    パーティション化されていないテーブル空間を、パーティション化されたテーブル空間に変換するように構成され、前記変換中に、前記パーティション化されていないテーブル空間を稼働中のままにする、コンピュータシステム。
  2. 1または複数の処理デバイスおよび前記1または複数の処理デバイスに動作可能に連結された少なくとも1つのメモリデバイスを備えるコンピュータシステムであって、前記1または複数の処理デバイスは、
    1または複数のデータベース部分と関連付けられた1または複数の性能敏感性ワークロードの性能情報を収集することであって、前記性能情報の少なくとも一部は性能低下の分類に関連付けられている、こと、および
    前記性能低下の前記分類を受けて、前記1または複数のデータベース部分の1または複数の部分的再編成を実行することであって、
    第1の複数のレコードをコピーして第2の複数のレコードを定義すること、および
    前記第1の複数のレコードおよび前記第2の複数のレコードを並行して更新することにより、その中のデータの同期を維持すること
    を含み、前記1または複数の部分的再編成のすべての部分において、中断することなく、すべてのオンライントランザクションを維持する、こと
    を行うよう構成されている、コンピュータシステム。
  3. 前記1または複数の処理デバイスはさらに、記1または複数のデータベース部分の前記部分的再編成を受ける1または複数の特性を判定するように構成される、請求項1または2に記載のコンピュータシステム。
  4. 前記1または複数の処理デバイスはさらに、
    前記収集された性能情報内の1または複数のクラスタ率測定値が、クラスタリング率閾値に近づく、または、通過するのうちの1つであると判定すること、
    前記収集された性能情報内の1または複数のホットスポット測定値が、ホットスポット閾値に近づく、または、通過するのうちの1つであると判定すること、
    前記収集された性能情報内の1または複数のオーバーフロー率測定値が、オーバーフロー率閾値に近づく、または、超えるのうちの1つであると判定すること、および
    前記収集された性能情報内の1または複数の空間使用率測定値が、空間使用率閾値に近づく、または、超えるのうちの1つであると判定することを行うよう構成される、請求項に記載のコンピュータシステム。
  5. 前記1または複数の処理デバイスは、さらに、
    影響されたレコード範囲の1または複数を判定すること、および
    影響されたページ範囲の1または複数を判定することを行うよう構成される、請求項に記載のコンピュータシステム。
  6. 前記1または複数の処理デバイスは、さらに、
    前記1または複数の部分的再編成の少なくとも一部が行われている間に、影響されたデータの少なくとも一部に1または複数のオンライントランザクションを行うよう構成されている、請求項1からのいずれか一項に記載のコンピュータシステム
  7. 前記1または複数の処理デバイスは、さらに、
    テーブル空間を稼働中にしたまま、前記テーブル空間をデフラグメンテーションおよび再編成するように構成される、請求項1から6のいずれか一項に記載のコンピュータシステム。
  8. コンピュータに、
    1または複数のデータベース部分に関連付けられた1または複数の性能敏感性ワークロードの性能情報を収集する手順と、
    前記収集された性能情報を分析する手順と、を実行させるための、コンピュータプログラムであって、前記分析する手順は、
    前記1または複数の性能敏感性ワークロードの各々について、前記ワークロードの性能低下の指標を判定する手順、
    前記判定された性能低下を受けて、前記判定された性能低下により影響される前記1または複数のデータベース部分のうち少なくとも1つを判定する手順、
    前記データベース部分の判定を受けて、前記判定された性能低下を分類する手順、および
    前記性能低下の前記分類を受けて、前記1または複数のデータベース部分の1または複数の部分的再編成を実行する手順のうち1または複数を含み、
    前記コンピュータにさらに、
    パーティション化されていないテーブル空間を、パーティション化されたテーブル空間に変換する手順を実行させるためのコンピュータプログラムであって、前記変換中に、前記パーティション化されていないテーブル空間を稼働中のままにする、コンピュータプログラム。
  9. コンピュータに、
    1または複数のデータベース部分に関連付けられた1または複数の性能敏感性ワークロードの性能情報を収集する手順であって、前記性能情報の少なくとも一部は性能低下の分類に関連付けられている、手順、および
    前記性能低下の前記分類を受けて、前記1または複数のデータベース部分の1または複数の部分的再編成を実行する手順であって、
    第1の複数のレコードをコピーして第2の複数のレコードを定義する手順、および
    前記第1の複数のレコードおよび前記第2の複数のレコードを並行して更新することにより、その中のデータの同期を維持する手順
    を含み、前記1または複数の部分的再編成のすべての部分において、中断することなく、すべてのオンライントランザクションを維持する、手順
    を実行させるためのコンピュータプログラム。
  10. 前記コンピュータに、記1または複数のデータベース部分のうちの前記部分的再編成を受ける1または複数の特性を判定する手順をさらに実行させるための、請求項8または9に記載のコンピュータプログラム。
  11. 前記コンピュータに、
    前記収集された性能情報内の1または複数のクラスタ率測定値が、クラスタリング率閾値に近づく、または通過するのうち1つであると判定する手順と、
    前記収集された性能情報内の1または複数のホットスポット測定値が、ホットスポット閾値に近づく、または通過するのうち1つであると判定する手順と、
    前記収集された性能情報内の1または複数のオーバーフロー率測定値が、オーバーフロー率閾値に近づく、または超えるのうち1つであると判定する手順と、
    前記収集された性能情報内の1または複数の空間使用率測定値が、空間使用率閾値に近づく、または超えるのうち1つであると判定する手順と、をさらに実行させるための、請求項10に記載のコンピュータプログラム。
  12. 前記コンピュータにさらに、
    前記1または複数の部分的再編成の少なくとも一部が行われている間に、影響されたデータの少なくとも一部に、1または複数のオンライントランザクションを実行する手順を実行させるための、請求項8から11のいずれか一項に記載のコンピュータプログラム
  13. 前記コンピュータにさらに、
    テーブル空間を稼働中にしたまま、前記テーブル空間をデフラグメンテーションおよび再編成する手順を実行させるための、請求項8から12のいずれか一項に記載のコンピュータプログラム。
  14. コンピュータ実装方法であって、
    1または複数のデータベース部分に関連付けられた1または複数の性能敏感性ワークロードの性能情報を収集する段階、および、
    前記収集された性能情報を分析する段階を備え、
    前記分析する段階は、
    前記1または複数の性能敏感性ワークロードの各々について、前記ワークロードの性能低下の指標を判定する段階と、
    前記判定された性能低下を受けて、前記判定された性能低下により影響される前記1または複数のデータベース部分のうち少なくとも1つを判定する段階と、
    前記データベース部分の判定を受けて、前記判定された性能低下を分類する段階と、
    前記性能低下の前記分類を受けて、前記1または複数のデータベース部分の1または複数の部分的再編成を実行する段階と、のうち1または複数を含み、
    前記1または複数のデータベース部分の前記1または複数の部分的再編成を実行する段階は、
    パーティション化されていないテーブル空間を、パーティション化されたテーブル空間に変換する段階であって、前記変換中に、前記パーティション化されていないテーブル空間を稼働中にする、段階を含む、コンピュータ実装方法。
  15. 1または複数のデータベース部分と関連付けられた1または複数の性能敏感性ワークロードの性能情報を収集する段階であって、前記性能情報の少なくとも一部は性能低下の分類に関連付けられている、段階、および
    前記性能低下の前記分類を受けて、前記1または複数のデータベース部分の1または複数の部分的再編成を実行する段階であって、
    第1の複数のレコードをコピーして第2の複数のレコードを定義する段階、および
    前記第1の複数のレコードおよび前記第2の複数のレコードを並行して更新することにより、その中のデータの同期を維持する段階
    を含み、前記1または複数の部分的再編成のすべての部分において、中断することなく、すべてのオンライントランザクションを維持する、段階
    を備えるコンピュータ実装方法。
  16. 前記判定された性能低下を分類する段階は、
    記1または複数のデータベース部分の前記部分的再編成を受ける1または複数の特性を判定する段階を含む、請求項14または15に記載のコンピュータ実装方法。
  17. 前記1または複数の特性を判定する段階は、
    前記収集された性能情報内の1または複数のクラスタ率測定値が、クラスタリング率閾値に近づく、または、通過するのうちの1つであると判定する段階、
    前記収集された性能情報内の1または複数のホットスポット測定値が、ホットスポット閾値に近づく、または、通過するのうちの1つであると判定する段階、
    前記収集された性能情報内の1または複数のオーバーフロー率測定値が、オーバーフロー率閾値に近づく、または、超えるのうちの1つであると判定する段階、および
    前記収集された性能情報内の1または複数の空間使用率測定値が、空間使用率閾値に近づく、または、超えるのうちの1つであると判定する段階のうち1または複数を含む、請求項16に記載のコンピュータ実装方法。
  18. 前記1または複数の特性を判定する段階は、
    影響されたレコード範囲のうち1または複数を判定する段階、および
    影響されたページ範囲のうち1または複数を判定する段階のうち1または複数を含む、請求項17に記載のコンピュータ実装方法。
  19. 1または複数のデータベース部分の前記1または複数の部分的再編成を実行する段階は、
    前記1または複数の部分的再編成のうち少なくとも一部が行われている間に、1または複数のオンライントランザクションを、影響されたデータの少なくとも一部に行う段階を含む、請求項14から18のいずれか一項に記載のコンピュータ実装方法
  20. 前記1または複数のデータベース部分の前記1または複数の部分的再編成を実行する段階は、
    テーブル空間を稼働中の状態で、前記テーブル空間をデフラグメンテーションおよび再編成する段階を含む、請求項14から19のいずれか一項に記載のコンピュータ実装方法。
JP2021156008A 2020-09-24 2021-09-24 コンピュータシステム、コンピュータプログラムおよびコンピュータ実装方法(ワークロード駆動によるデータベース再編成) Active JP7730236B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US17/030,388 2020-09-24
US17/030,388 US20220092049A1 (en) 2020-09-24 2020-09-24 Workload-driven database reorganization

Publications (2)

Publication Number Publication Date
JP2022053542A JP2022053542A (ja) 2022-04-05
JP7730236B2 true JP7730236B2 (ja) 2025-08-27

Family

ID=78149219

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2021156008A Active JP7730236B2 (ja) 2020-09-24 2021-09-24 コンピュータシステム、コンピュータプログラムおよびコンピュータ実装方法(ワークロード駆動によるデータベース再編成)

Country Status (4)

Country Link
US (1) US20220092049A1 (ja)
JP (1) JP7730236B2 (ja)
DE (1) DE102021123844B4 (ja)
GB (1) GB2600241B (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11880716B2 (en) * 2020-08-05 2024-01-23 Ocient Holdings LLC Parallelized segment generation via key-based subdivision in database systems
US20240220473A1 (en) * 2022-12-29 2024-07-04 Bmc Software, Inc. Optimal reorganization of a database

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060036618A1 (en) 2004-08-13 2006-02-16 Shuma Kevin P System and method for reorganizing a database
JP2007026062A (ja) 2005-07-15 2007-02-01 Univ Of Tokyo データベースの再編成方法及びデータベース再編成システム
US20080235183A1 (en) 2007-03-21 2008-09-25 Oliver Draese Workload Aware Checking of Database Reorganization

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3667953B2 (ja) * 1997-09-26 2005-07-06 富士通株式会社 データベース再編成装置及びコンピュータ読み取り可能な記録媒体
US20040243555A1 (en) 2003-05-30 2004-12-02 Oracle International Corp. Methods and systems for optimizing queries through dynamic and autonomous database schema analysis
JP4854973B2 (ja) * 2005-03-09 2012-01-18 富士通株式会社 記憶制御プログラム、記憶制御方法、記憶制御装置および記憶制御システム
US9009112B2 (en) 2010-03-15 2015-04-14 Microsoft Technology Licensing, Llc Reorganization of data under continuous workload
US10997147B2 (en) * 2018-07-17 2021-05-04 Snowflake Inc. Incremental clustering of database tables
CN114631088B (zh) * 2019-09-12 2025-12-16 甲骨文国际公司 自主分区数据库表
US11537574B2 (en) * 2020-07-20 2022-12-27 Salesforce.Com, Inc. Autonomous database defragmentation
US11474989B2 (en) * 2020-09-09 2022-10-18 International Business Machines Corporation Online reorganization of database tables with concurrent updates

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060036618A1 (en) 2004-08-13 2006-02-16 Shuma Kevin P System and method for reorganizing a database
JP2007026062A (ja) 2005-07-15 2007-02-01 Univ Of Tokyo データベースの再編成方法及びデータベース再編成システム
US20080235183A1 (en) 2007-03-21 2008-09-25 Oliver Draese Workload Aware Checking of Database Reorganization

Also Published As

Publication number Publication date
GB2600241B (en) 2023-04-26
DE102021123844A1 (de) 2022-03-24
GB202113145D0 (en) 2021-10-27
US20220092049A1 (en) 2022-03-24
GB2600241A (en) 2022-04-27
DE102021123844B4 (de) 2024-11-21
JP2022053542A (ja) 2022-04-05

Similar Documents

Publication Publication Date Title
US20200097218A1 (en) File system block-level tiering and co-allocation
US10983994B2 (en) Partition access method for query optimization
US9740706B2 (en) Management of intermediate data spills during the shuffle phase of a map-reduce job
US9223820B2 (en) Partitioning data for parallel processing
US10168915B2 (en) Workload performance in a multi-tier storage environment
US20180253456A1 (en) Disk optimized paging for column oriented databases
US10102267B2 (en) Method and apparatus for access control
US12511308B2 (en) Efficient evaluation of queries across multiple columnar storage tiers
US11308066B1 (en) Optimized database partitioning
US20220075771A1 (en) Dynamically deploying execution nodes using system throughput
JP7431490B2 (ja) 階層型ストレージ管理システムにおけるデータ・マイグレーション
US10809941B2 (en) Multi-tiered storage
JP7730236B2 (ja) コンピュータシステム、コンピュータプログラムおよびコンピュータ実装方法(ワークロード駆動によるデータベース再編成)
US11204923B2 (en) Performance for query execution
WO2022161170A1 (en) Database log writing based on log pipeline contention
WO2023105373A1 (en) Reduced latency query processing
US10552059B2 (en) Data migration with placement based on access patterns
US10599626B2 (en) Organization for efficient data analytics
US12461913B2 (en) Building cross table index in relational database
US10671587B2 (en) Reduced fixed length sort of variable length columns
US11874765B2 (en) Buffer pool management
US20240045852A1 (en) Performing an operation in a tree structure
US20170344586A1 (en) De-Duplication Optimized Platform for Object Grouping
Zhang A Memory Hierarchy-and Network Topology-Aware Framework for Runtime Data Sharing at Scale

Legal Events

Date Code Title Description
RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20220518

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20240215

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20250227

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20250318

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20250501

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: 20250729

RD14 Notification of resignation of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7434

Effective date: 20250804

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20250814

R150 Certificate of patent or registration of utility model

Ref document number: 7730236

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150