(57)【要約】【課題】ワークロード・パフォーマンスを増大させ、リソース使用を低減させるために、ソース・データベース管理システム（ソースＤＢＭＳ）からターゲットＤＢＭＳにデータのセットをロードすることを提供する。【解決手段】ターゲットＤＢＭＳにオフロードされる資格を有するテーブルのサイズおよび変更率を使用して、データのセットをターゲットＤＢＭＳにロードすることに対応する全ＣＰＵコストと、複数のロード戦略からなるロード戦略のセットに基づいてターゲットＤＢＭＳ上でワークロードを実行することに対応するワークロード節減コストとが決定される。全ＣＰＵコストは、それぞれのロード戦略のワークロード節減コストと比較される。全ＣＰＵコストをそれぞれのロード戦略のワークロード節減コストと比較したことに基づいて、最適なロード戦略が選択される。データのセットは、選択された最適なロード戦略に従って、ソースＤＢＭＳからターゲットＤＢＭＳに自動的にロードされる。【選択図】図２
2021521507.tif 000002
【特許請求の範囲】
【請求項１】
ワークロード・パフォーマンスを増大させ、リソース使用を低減させるために、ソース・データベース管理システム（ＤＢＭＳ）からターゲットＤＢＭＳにデータのセットをロードするためのコンピュータ実施方法であって、前記コンピュータ実施方法が、
コンピュータによって、前記ターゲットＤＢＭＳにオフロードされる資格を有するテーブルのサイズおよび変更率を使用して、前記データのセットを前記ターゲットＤＢＭＳにロードすることに対応する全中央プロセッサ・ユニット（ＣＰＵ）コストと、１つまたは複数のロード戦略からなるロード戦略のセットに基づいて前記ターゲットＤＢＭＳ上で１つまたは複数のワークロードを実行することに対応するワークロード節減コストとを決定すること、
前記コンピュータによって、前記全ＣＰＵコストを、前記ロード戦略のセットの中のそれぞれのロード戦略の前記ワークロード節減コストと比較すること、
前記コンピュータによって、前記全ＣＰＵコストをそれぞれのロード戦略の前記ワークロード節減コストと比較したことに基づいて、前記ロード戦略のセットから最適なロード戦略を選択すること、ならびに
ワークロード・パフォーマンスを増大させ、ＣＰＵコストを低減させる前記１つまたは複数のワークロードの加速された実行のために、前記コンピュータによって、選択した前記最適なロード戦略に従って、前記ソースＤＢＭＳから前記ターゲットＤＢＭＳに前記データのセットを自動的にロードすること
を含む、コンピュータ実施方法。
【請求項２】
前記コンピュータによって、前記ソースＤＢＭＳをヒットしているワークロードと、前記ソースＤＢＭＳ上で前記ワークロードをランすることに対応するコストと、前記ワークロードによって参照されているテーブルと、前記ワークロードによって参照されている前記テーブルであって、前記ターゲットＤＢＭＳにオフロードされる前記テーブルの資格に関する情報を収集すること、
前記コンピュータによって、前記ターゲットＤＢＭＳにオフロードされる資格を有するそれぞれの前記テーブルの前記サイズを取得すること、および
前記コンピュータによって、前記ターゲットＤＢＭＳにオフロードされる資格を有するそれぞれの前記テーブルの前記変更率を評価すること
をさらに含む、請求項１に記載のコンピュータ実施方法。
【請求項３】
前記コンピュータによって、前記ターゲットＤＢＭＳ上でランしているワークロードのセットと、前記ターゲットＤＢＭＳ上でそれぞれのワークロードをランすることに関連したコストとに関する情報を収集すること、
前記コンピュータによって、前記ターゲットＤＢＭＳ内のテーブルのセットのサイズと、前記セットの中のそれぞれのテーブルに関連した参照カウントであり、前記ワークロードのセットによる使用に基づく前記参照カウントとを取得すること、
前記コンピュータによって、前記ターゲットＤＢＭＳ内の前記テーブルのセットの中のそれぞれのテーブルについて、前記ワークロードのセットによるテーブル・アクセスの頻度を評価すること、
前記コンピュータによって、前記ワークロードのセットによって参照されているそれぞれのテーブルに関連したテーブル・アクセスの前記頻度を、アクセスの頻度が最小限またはゼロであるテーブルを前記ターゲットＤＢＭＳから削除することに関連したメモリおよびＣＰＵ節減コストにマップして、テーブル削除候補を識別すること、ならびに
メモリ使用を低減させ、前記ターゲットＤＢＭＳ上でのワークロード・パフォーマンスを増大させるために、前記コンピュータによって、前記マップに基づいて、識別された前記テーブル削除候補を前記ターゲットＤＢＭＳから自動的に削除すること
をさらに含む、請求項１または２に記載のコンピュータ実施方法。
【請求項４】
前記コンピュータによって、ソースＤＢＭＳから、前記ソースＤＢＭＳ上でランしているワークロードと、前記ソースＤＢＭＳ上で前記ワークロードをランすることに関連したコストとに関する情報を収集すること、
前記コンピュータによって、収集した前記情報を使用して、前記ワークロードによって参照されているテーブルのセットを識別すること、
前記コンピュータによって、前記テーブルのセットからテーブルを選択すること、および、
前記コンピュータによって、選択した前記テーブルが前記ターゲットＤＢＭＳ内に位置するかどうかを判定すること
をさらに含む、請求項１に記載のコンピュータ実施方法。
【請求項５】
選択した前記テーブルが前記ターゲットＤＢＭＳ内に位置しないと前記コンピュータが判定したことに応答して、前記コンピュータによって、前記ソースＤＢＭＳのカタログ・テーブルを参照することにより、選択した前記テーブルにロードするデータ量を決定すること、
前記コンピュータによって、選択した前記テーブルに前記データ量をロードすることのＣＰＵコスト値を計算すること、および
前記コンピュータによって、計算した前記ＣＰＵコスト値の分だけＣＰＵコスト・カウンタを増分すること
をさらに含む、請求項４に記載のコンピュータ実施方法。
【請求項６】
前記コンピュータによって、前記ターゲットＤＢＭＳ上の前記テーブルのセットにデータをロードすることの全ＣＰＵコストを、前記ＣＰＵコスト・カウンタに基づいて決定すること、
前記コンピュータによって、前記ターゲットＤＢＭＳ上の前記テーブルのセットに前記データをロードすることの前記全ＣＰＵコストを、前記ターゲットＤＢＭＳ上で前記ワークロードをランすることのワークロード節減コストと比較すること、
前記コンピュータが前記全ＣＰＵコストを前記ワークロード節減コストと比較したことに応答して、前記コンピュータによって、前記全ＣＰＵコストが前記ワークロード節減コストよりも大きいかどうかを判定すること、および
前記全ＣＰＵコストが前記ワークロード節減コストよりも小さいと前記コンピュータが判定したことに応答して、前記コンピュータによって、前記ターゲットＤＢＭＳ内の前記テーブルのセットに前記データをロードするよう推奨する推奨ロード戦略を生成すること
をさらに含む、請求項５に記載のコンピュータ実施方法。
【請求項７】
選択した前記テーブルが前記ターゲットＤＢＭＳ内に位置すると前記コンピュータが判定したことに応答して、前記コンピュータによって、選択した前記テーブル上で増分更新が使用可能であるかどうかを判定すること、
選択した前記テーブル上で増分更新が使用可能でないと前記コンピュータが判定したことに応答して、前記コンピュータによって、選択した前記テーブルがパーティション化されているかどうかを判定すること、
選択した前記テーブルがパーティション化されていると前記コンピュータが判定したことに応答して、前記コンピュータによって、選択した前記テーブルのパーティション・リロードのＣＰＵコスト値を計算すること、および
前記コンピュータによって、選択した前記テーブルの前記パーティション・リロードの計算した前記ＣＰＵコスト値の分だけＣＰＵコスト・カウンタを増分すること
をさらに含む、請求項４に記載のコンピュータ実施方法。
【請求項８】
選択した前記テーブルがパーティション化されていないと前記コンピュータが判定したことに応答して、前記コンピュータによって、選択した前記テーブルの全体をリロードすることのＣＰＵコスト値を計算すること、および
前記コンピュータによって、選択した前記テーブルの全体をリロードすることの計算した前記ＣＰＵコスト値の分だけ前記ＣＰＵコスト・カウンタを増分すること
をさらに含む、請求項７に記載のコンピュータ実施方法。
【請求項９】
選択した前記テーブル上で増分更新が使用可能であると前記コンピュータが判定したことに応答して、前記コンピュータによって、選択した前記テーブルに対応するリアルタイム統計データを収集すること、
前記コンピュータによって、選択した前記テーブルが現在もなお、選択した前記テーブルに対応する収集した前記リアルタイム統計データに基づく増分更新の資格を有しているかどうかを判定すること、
選択した前記テーブルが現在は、収集した前記リアルタイム統計学データに基づく増分更新の資格を有していないと前記コンピュータが判定したことに応答して、前記コンピュータによって、選択した前記テーブルの前記増分更新を停止すること、
前記コンピュータによって、選択した前記テーブルの現在までの前記増分更新に対する現在のＣＰＵコスト値を計算すること、および
前記コンピュータによって、選択した前記テーブルの現在までの前記増分更新に対する計算した前記現在のＣＰＵコスト値の分だけ前記ＣＰＵコスト・カウンタを増分すること
をさらに含む、請求項７または８に記載のコンピュータ実施方法。
【請求項１０】
選択した前記テーブルが現在もなお、収集した前記リアルタイム統計学データに基づく増分更新の資格を有していると前記コンピュータが判定したことに応答して、前記コンピュータによって、選択した前記テーブルの前記増分更新を継続すること、
前記コンピュータによって、選択した前記テーブルの現在までの前記増分更新に対する前記現在のＣＰＵコスト値を計算すること、および
前記コンピュータによって、選択した前記テーブルの現在までの前記増分更新に対する計算した前記現在のＣＰＵコスト値の分だけ前記ＣＰＵコスト・カウンタを増分すること
をさらに含む、請求項９に記載のコンピュータ実施方法。
【請求項１１】
前記コンピュータによって、前記ターゲットＤＢＭＳにロードされたテーブルを、それぞれのテーブルに対応するワークロード・ヒット数に関して評価すること、
前記コンピュータが前記テーブルを評価したことに応答して、前記コンピュータによって、いずれかの前記テーブルが、しきいワークロード・ヒット数よりも小さい対応するワークロード・ヒット数を有するかどうかを判定すること、および
前記テーブルのうちの１つまたは複数のテーブルが、前記しきいワークロード・ヒット数よりも小さい対応するワークロード・ヒット数を有すると前記コンピュータが判定したことに応答して、前記コンピュータによって、前記しきいワークロード・ヒット数よりも小さい対応するワークロード・ヒット数を有するテーブルのリストを生成すること
をさらに含む、請求項１に記載のコンピュータ実施方法。
【請求項１２】
前記コンピュータによって、テーブル削除リストの中のテーブルを前記ターゲットＤＢＭＳから削除することによる全メモリおよびＣＰＵ節減コストを計算すること、
前記コンピュータによって、前記全メモリおよびＣＰＵ節減コストを用いて、前記ターゲットＤＢＭＳに対するテーブル削除レコメンデーションを生成すること、ならびに
前記コンピュータによって、前記テーブル削除レコメンデーションを自動的に実行すること
をさらに含む、請求項１１に記載のコンピュータ実施方法。
【請求項１３】
特定のテーブルに対する決定されたワークロード節減コストが、前記特定のテーブルの予測される将来の照会を含む、請求項１ないし１２のいずれかに記載のコンピュータ実施方法。
【請求項１４】
ワークロード・パフォーマンスを増大させ、リソース使用を低減させるために、ソース・データベース管理システム（ＤＢＭＳ）からターゲットＤＢＭＳにデータのセットをロードするためのコンピュータ・システムであって、前記コンピュータ・システムが、
バス・システムと、
前記バス・システムに接続されたストレージ・デバイスであり、プログラム命令を記憶した前記ストレージ・デバイスと、
前記バス・システムに接続されたプロセッサと
を備え、前記プロセッサが、前記プログラム命令を実行して、
前記ターゲットＤＢＭＳにオフロードされる資格を有するテーブルのサイズおよび変更率を使用して、前記データのセットを前記ターゲットＤＢＭＳにロードすることに対応する全中央プロセッサ・ユニット（ＣＰＵ）コストと、１つまたは複数のロード戦略からなるロード戦略のセットに基づいて前記ターゲットＤＢＭＳ上で１つまたは複数のワークロードを実行することに対応するワークロード節減コストとを決定し、
前記全ＣＰＵコストを、前記ロード戦略のセットの中のそれぞれのロード戦略の前記ワークロード節減コストと比較し、
前記全ＣＰＵコストをそれぞれのロード戦略の前記ワークロード節減コストと比較したことに基づいて、前記ロード戦略のセットから最適なロード戦略を選択し、
ワークロード・パフォーマンスを増大させ、ＣＰＵコストを低減させる前記１つまたは複数のワークロードの加速された実行のために、選択した前記最適なロード戦略に従って、前記ソースＤＢＭＳから前記ターゲットＤＢＭＳに前記データのセットを自動的にロードする、
コンピュータ・システム。
【請求項１５】
前記プロセッサがさらに、前記プログラム命令を実行して、
前記ソースＤＢＭＳをヒットしているワークロードと、前記ソースＤＢＭＳ上で前記ワークロードをランすることに対応するコストと、前記ワークロードによって参照されているテーブルと、前記ワークロードによって参照されている前記テーブルであって、前記ターゲットＤＢＭＳにオフロードされる前記テーブルの資格に関する情報を収集し、
前記ターゲットＤＢＭＳにオフロードされる資格を有するそれぞれの前記テーブルの前記サイズを取得し、
前記ターゲットＤＢＭＳにオフロードされる資格を有するそれぞれの前記テーブルの前記変更率を評価する、
請求項１４に記載のコンピュータ・システム。
【請求項１６】
前記プロセッサがさらに、前記プログラム命令を実行して、
前記ターゲットＤＢＭＳ上でランしているワークロードのセットと、前記ターゲットＤＢＭＳ上でそれぞれのワークロードをランすることに関連したコストとに関する情報を収集し、
前記ターゲットＤＢＭＳ内のテーブルのセットのサイズと、前記セットの中のそれぞれのテーブルに関連した参照カウントであり、前記ワークロードのセットによる使用に基づく前記参照カウントとを取得し、
前記ターゲットＤＢＭＳ内の前記テーブルのセットの中のそれぞれのテーブルについて、前記ワークロードのセットによるテーブル・アクセスの頻度を評価し、
前記ワークロードのセットによって参照されているそれぞれのテーブルに関連したテーブル・アクセスの前記頻度を、アクセスの頻度が最小限またはゼロであるテーブルを前記ターゲットＤＢＭＳから削除することに関連したメモリおよびＣＰＵ節減コストにマップして、テーブル削除候補を識別し、
メモリ使用を低減させ、前記ターゲットＤＢＭＳ上でのワークロード・パフォーマンスを増大させるために、前記マップに基づいて、識別された前記テーブル削除候補を前記ターゲットＤＢＭＳから自動的に削除する、
請求項１４または１５に記載のコンピュータ・システム。
【請求項１７】
前記プロセッサがさらに、前記プログラム命令を実行して、
ソースＤＢＭＳから、前記ソースＤＢＭＳ上でランしているワークロードと、前記ソースＤＢＭＳ上で前記ワークロードをランすることに関連したコストとに関する情報を収集し、
収集した前記情報を使用して、前記ワークロードによって参照されているテーブルのセットを識別し、
前記テーブルのセットからテーブルを選択し、
選択した前記テーブルが前記ターゲットＤＢＭＳ内に位置するかどうかを判定する、
請求項１４に記載のコンピュータ・システム。
【請求項１８】
前記プロセッサがさらに、前記プログラム命令を実行して、
選択した前記テーブルが前記ターゲットＤＢＭＳ内に位置しないと前記コンピュータが判定したことに応答して、前記ソースＤＢＭＳのカタログ・テーブルを参照することにより、選択した前記テーブルにロードするデータ量を決定し、
データの前記量を前記選択したテーブルにロードするためのＣＰＵコスト値を計算し、
選択した前記テーブルに前記データ量をロードすることのＣＰＵコスト値を計算し、
計算した前記ＣＰＵコスト値の分だけＣＰＵコスト・カウンタを増分する、
請求項１７に記載のコンピュータ・システム。
【請求項１９】
前記プロセッサがさらに、前記プログラム命令を実行して、
前記ターゲットＤＢＭＳ上の前記テーブルのセットにデータをロードすることの全ＣＰＵコストを、前記ＣＰＵコスト・カウンタに基づいて決定し、
前記ターゲットＤＢＭＳ上の前記テーブルのセットに前記データをロードすることの前記全ＣＰＵコストを、前記ターゲットＤＢＭＳ上で前記ワークロードをランすることのワークロード節減コストと比較し、
前記コンピュータが前記全ＣＰＵコストを前記ワークロード節減コストと比較したことに応答して、前記全ＣＰＵコストが前記ワークロード節減コストよりも大きいかどうかを判定し、
前記全ＣＰＵコストが前記ワークロード節減コストよりも小さいと前記コンピュータが判定したことに応答して、前記ターゲットＤＢＭＳ内の前記テーブルのセットに前記データをロードするよう推奨する推奨ロード戦略を生成する、
請求項１８に記載のコンピュータ・システム。
【請求項２０】
前記プロセッサがさらに、前記プログラム命令を実行して、
選択した前記テーブルが前記ターゲットＤＢＭＳ内に位置すると前記コンピュータが判定したことに応答して、選択した前記テーブル上で増分更新が使用可能であるかどうかを判定し、
選択した前記テーブル上で増分更新が使用可能でないと前記コンピュータが判定したことに応答して、選択した前記テーブルがパーティション化されているかどうかを判定し、
選択した前記テーブルがパーティション化されていると前記コンピュータが判定したことに応答して、選択した前記テーブルのパーティション・リロードのＣＰＵコスト値を計算し、
選択した前記テーブルの前記パーティション・リロードの計算した前記ＣＰＵコスト値の分だけＣＰＵコスト・カウンタを増分する、
請求項１７に記載のコンピュータ・システム。
【請求項２１】
前記プロセッサがさらに、前記プログラム命令を実行して、
選択した前記テーブルがパーティション化されていないと前記コンピュータが判定したことに応答して、選択した前記テーブルの全体をリロードすることのＣＰＵコスト値を計算し、
選択した前記テーブルの全体をリロードすることの計算した前記ＣＰＵコスト値の分だけ前記ＣＰＵコスト・カウンタを増分する、
請求項２０に記載のコンピュータ・システム。
【請求項２２】
前記プロセッサがさらに、前記プログラム命令を実行して、
選択した前記テーブル上で増分更新が使用可能であると前記コンピュータが判定したことに応答して、選択した前記テーブルに対応するリアルタイム統計データを収集し、
選択した前記テーブルが現在もなお、選択した前記テーブルに対応する収集した前記リアルタイム統計データに基づく増分更新の資格を有しているかどうかを判定し、
選択した前記テーブルが現在は、収集した前記リアルタイム統計学データに基づく増分更新の資格を有していないと前記コンピュータが判定したことに応答して、選択した前記テーブルの前記増分更新を停止し、
選択した前記テーブルの現在までの前記増分更新に対する現在のＣＰＵコスト値を計算し、
選択した前記テーブルの現在までの前記増分更新に対する計算した前記現在のＣＰＵコスト値の分だけ前記ＣＰＵコスト・カウンタを増分する、
請求項２０または２１に記載のコンピュータ・システム。
【請求項２３】
前記プロセッサがさらに、前記プログラム命令を実行して、
選択した前記テーブルが現在もなお、収集した前記リアルタイム統計学データに基づく増分更新の資格を有していると前記コンピュータが判定したことに応答して、選択した前記テーブルの前記増分更新を継続し、
選択した前記テーブルの現在までの前記増分更新に対する前記現在のＣＰＵコスト値を計算し、
選択した前記テーブルの現在までの前記増分更新に対する計算した前記現在のＣＰＵコスト値の分だけ前記ＣＰＵコスト・カウンタを増分する、
請求項２２に記載のコンピュータ・システム。
【請求項２４】
前記プロセッサがさらに、前記プログラム命令を実行して、
前記ターゲットＤＢＭＳにロードされたテーブルを、それぞれのテーブルに対応するワークロード・ヒット数に関して評価し、
前記コンピュータが前記テーブルを評価したことに応答して、いずれかの前記テーブルが、しきいワークロード・ヒット数よりも小さい対応するワークロード・ヒット数を有するかどうかを判定し、
前記テーブルのうちの１つまたは複数のテーブルが、前記しきいワークロード・ヒット数よりも小さい対応するワークロード・ヒット数を有すると前記コンピュータが判定したことに応答して、前記しきいワークロード・ヒット数よりも小さい対応するワークロード・ヒット数を有するテーブルのリストを生成する、
請求項１４に記載のコンピュータ・システム。
【請求項２５】
前記プロセッサがさらに、前記プログラム命令を実行して、
テーブル削除リストの中のテーブルを前記ターゲットＤＢＭＳから削除することによる全メモリおよびＣＰＵ節減コストを計算し、
前記全メモリおよびＣＰＵ節減コストを用いて、前記ターゲットＤＢＭＳに対するテーブル削除レコメンデーションを生成し、
前記テーブル削除レコメンデーションを自動的に実行する、
請求項２４に記載のコンピュータ・システム。
【請求項２６】
特定のテーブルに対する決定されたワークロード節減コストが、前記特定のテーブルの予測される将来の照会を含む、請求項１４ないし２４のいずれかに記載のコンピュータ・システム。
【請求項２７】
ワークロード・パフォーマンスを増大させ、リソース使用を低減させるために、ソース・データベース管理システム（ＤＢＭＳ）からターゲットＤＢＭＳにデータのセットをロードするためのコンピュータ・プログラム製品であって、前記コンピュータ・プログラム製品が、
処理回路によって読取り可能なコンピュータ可読ストレージ媒体であり、請求項１ないし１３のいずれかに記載の方法を実行するために前記処理回路によって実行するための命令を記憶した前記コンピュータ可読ストレージ媒体
を含む、コンピュータ・プログラム製品。
【請求項２８】
コンピュータ可読媒体に記憶された、ディジタル・コンピュータの内部メモリにロード可能なコンピュータ・プログラムであって、前記プログラムがコンピュータ上でランされたときに、請求項１ないし１３のいずれかに記載の方法を実行するためのソフトウェア・コード部分を含むコンピュータ・プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は一般に、データベース管理システムに関し、より詳細には、ターゲット・データベース管理システムによって使用されているコンピュータ・メモリおよび中央処理ユニット・リソースを自動的に最適化して、加速されたアナリティカル照会ワークロード・パフォーマンス（accelerated analytical query workload performance）を増大させることに関する。
【背景技術】
【０００２】
データベースは、データの編成された集合体である。データベース管理システム（database management system）（ＤＢＭＳ）は、データベースを作成および管理するためのシステム・ソフトウェアである。ＤＢＭＳは、ユーザが、データベース内においてデータを作成し、読み取り、更新し、削除することを可能にする。言い換えると、ＤＢＭＳは、データベースとユーザの間またはデータベースとアプリケーションの間のインタフェースの役目を果たし、データが一貫して編成されること、および容易にアクセス可能な状態をデータが維持することを保証する。
【０００３】
ＤＢＭＳは、データ、データにアクセスすることを可能にするデータベース・エンジン、およびデータベースの論理構造を定義するデータベース・スキーマを管理する。これらの要素は、並行性（concurrency）、セキュリティ、データ保全性および均一な管理手順（uniform administration procedure）を提供するのに役立つ。ＤＢＭＳによってサポートされる典型的なデータベース管理タスクは、変更管理、パフォーマンス監視ならびにバックアップおよびリカバリを含む。多くのデータベース管理システム（ＤＢＭＳ）はさらに、自動化されたロールバック、リスタートおよびリカバリ、ならびにアクティビティの記録を実行することがある。
【０００４】
リレーショナルＤＢＭＳではレコードがテーブルの中に記憶される。レコードはしばしば行（row）と呼ばれ、記録の属性は列（column）と呼ばれる。データベースは一般に、異なるＤＢＭＳを横断する可搬性を持たないが、異なるＤＢＭＳは、例えば構造化照会言語（Structured Query Language）（ＳＱＬ）、オープン・データベース・コネクティビティ（Open Database Connectivity）（ＯＤＢＣ）またはジャバ・データベース・コネクティビティ（Java Database Connectivity）（ＪＤＢＣ）などの規格を使用して、単一のアプリケーションが２つ以上のＤＢＭＳとともに機能することを可能にすることによって、相互運用することができる。
【０００５】
技術の進歩の結果、あらゆる分野でデータ量が増大した。価値ある洞察（insight）を得るため、ユーザは、特定の分野の大量のデータに対してリアルタイム・アナリティクス（real-time analytics）を実行する能力を要求する。しかしながら、リアルタイム・データ・アナリティクスは、中央処理ユニット（ＣＰＵ）上での非常に時間がかかるコストの高い照会操作を必要とする。さらに、従来のＤＢＭＳでは通常、ＣＰＵリソースが、アナリティカル・ワークロードに対してではなくトランザクション・ワークロードに対して専ら使用される。
【０００６】
したがって、当技術分野では、上記の課題を解決することが求められている。
【発明の概要】
【０００７】
第１の態様から見ると、本発明は、ワークロード・パフォーマンスを増大させ、リソース使用を低減させるために、ソース・データベース管理システム（ＤＢＭＳ）からターゲットＤＢＭＳにデータのセットをロードするためのコンピュータ実施方法であって、このコンピュータ実施方法が、コンピュータによって、ターゲットＤＢＭＳにオフロードされる（offloaded）資格を有するテーブルのサイズおよび変更率（change rate）を使用して、データのセットをターゲットＤＢＭＳにロードすることに対応する全中央プロセッサ・ユニット（ＣＰＵ）コストと、１つまたは複数のロード戦略からなるロード戦略のセットに基づいてターゲットＤＢＭＳ上で１つまたは複数のワークロードを実行することに対応するワークロード節減コストとを決定すること、コンピュータによって、全ＣＰＵコストを、ロード戦略のセットの中のそれぞれのロード戦略のワークロード節減コストと比較すること、コンピュータによって、全ＣＰＵコストをそれぞれのロード戦略のワークロード節減コストと比較したことに基づいて、ロード戦略のセットから最適なロード戦略を選択すること、ならびにワークロード・パフォーマンスを増大させ、ＣＰＵコストを低減させる１つまたは複数のワークロードの加速された実行のために、コンピュータによって、選択した最適なロード戦略に従って、ソースＤＢＭＳからターゲットＤＢＭＳにデータのセットを自動的にロードすることを含む、コンピュータ実施方法を提供する。
【０００８】
別の態様から見ると、本発明は、ワークロード・パフォーマンスを増大させ、リソース使用を低減させるために、ソース・データベース管理システム（ＤＢＭＳ）からターゲットＤＢＭＳにデータのセットをロードするためのコンピュータ・システムであって、このコンピュータ・システムが、バス・システムと、バス・システムに接続されたストレージ・デバイスであり、プログラム命令を記憶したストレージ・デバイスと、バス・システムに接続されたプロセッサとを備え、このプロセッサが、プログラム命令を実行して、ターゲットＤＢＭＳにオフロードされる資格を有するテーブルのサイズおよび変更率を使用して、データのセットをターゲットＤＢＭＳにロードすることに対応する全中央プロセッサ・ユニット（ＣＰＵ）コストと、１つまたは複数のロード戦略からなるロード戦略のセットに基づいてターゲットＤＢＭＳ上で１つまたは複数のワークロードを実行することに対応するワークロード節減コストとを決定し、全ＣＰＵコストを、ロード戦略のセットの中のそれぞれのロード戦略のワークロード節減コストと比較し、全ＣＰＵコストをそれぞれのロード戦略のワークロード節減コストと比較したことに基づいて、ロード戦略のセットから最適なロード戦略を選択し、ワークロード・パフォーマンスを増大させ、ＣＰＵコストを低減させる１つまたは複数のワークロードの加速された実行のために、選択した最適なロード戦略に従って、ソースＤＢＭＳからターゲットＤＢＭＳにデータのセットを自動的にロードする、コンピュータ・システムを提供する。
【０００９】
別の態様から見ると、本発明は、ワークロード・パフォーマンスを増大させ、リソース使用を低減させるために、ソース・データベース管理システム（ＤＢＭＳ）からターゲットＤＢＭＳにデータのセットをロードするためのコンピュータ・プログラム製品であって、このコンピュータ・プログラム製品が、処理回路によって読取り可能なコンピュータ可読ストレージ媒体であり、本発明のステップを実行するための方法を実行するため処理回路によって実行するための命令を記憶したコンピュータ可読ストレージ媒体を含む、コンピュータ・プログラム製品を提供する。
【００１０】
別の態様から見ると、本発明は、コンピュータ可読媒体に記憶された、ディジタル・コンピュータの内部メモリにロード可能なコンピュータ・プログラムであって、プログラムがコンピュータ上でランされたときに、本発明のステップを実行するためのソフトウェア・コード部分を含むコンピュータ・プログラムを提供する。
【００１１】
例示的な一実施形態によれば、ワークロード・パフォーマンスを増大させ、リソース使用を低減させるために、ソース・データベース管理システム（ＤＢＭＳ）からターゲットＤＢＭＳにデータのセットをロードするためのコンピュータ実施方法が提供される。コンピュータは、ターゲットＤＢＭＳにオフロードされる資格を有するテーブルのサイズおよび変更率を使用して、データのセットをターゲットＤＢＭＳにロードすることに対応する全中央プロセッサ・ユニット（ＣＰＵ）コストと、１つまたは複数のロード戦略からなるロード戦略のセットに基づいてターゲットＤＢＭＳ上で１つまたは複数のワークロードを実行することに対応するワークロード節減コストとを決定する。コンピュータは、全ＣＰＵコストを、ロード戦略のセットの中のそれぞれのロード戦略のワークロード節減コストと比較する。コンピュータは、全ＣＰＵコストをそれぞれのロード戦略のワークロード節減コストと比較したことに基づいて、ロード戦略のセットから最適なロード戦略を選択する。コンピュータは、ワークロード・パフォーマンスを増大させ、ＣＰＵコストを低減させる１つまたは複数のワークロードの加速された実行のために、選択した最適なロード戦略に従って、ソースＤＢＭＳからターゲットＤＢＭＳにデータのセットを自動的にロードする。例示的な他の実施形態によれば、ワークロード・パフォーマンスを増大させ、リソース使用を低減させるために、ソースＤＢＭＳからターゲットＤＢＭＳにデータのセットをロードするためのコンピュータ・システムおよびコンピュータ・プログラム製品が提供される。
【００１２】
例示的な他の実施形態によれば、コンピュータは、ターゲットＤＢＭＳ上でランしているワークロードのセットと、ターゲットＤＢＭＳ上でそれぞれのワークロードをランすることに関連したコストとに関する情報を収集する。コンピュータは、ターゲットＤＢＭＳ内のテーブルのセットのサイズと、セットの中のそれぞれのテーブルに関連した参照カウントであり、ワークロードのセットによる使用に基づく参照カウントとを取得する。コンピュータは、ターゲットＤＢＭＳ内のテーブルのセットの中のそれぞれのテーブルについて、ワークロードのセットによるテーブル・アクセスの頻度を評価する。コンピュータは、ワークロードのセットによって参照されているそれぞれのテーブルに関連したテーブル・アクセスの頻度を、アクセスの頻度が最小限またはゼロであるテーブルをターゲットＤＢＭＳから削除することに関連したメモリおよびＣＰＵ節減コストにマップして、テーブル削除候補を識別する。コンピュータは、メモリ使用を低減させ、ターゲットＤＢＭＳ上でのワークロード・パフォーマンスを増大させるために、マップに基づいて、識別されたテーブル削除候補をターゲットＤＢＭＳから自動的に削除する。
【００１３】
したがって、例示的な実施形態は、それぞれのテーブルを参照しているワークロードをオフロードすることのＣＰＵ節減コストと、ターゲットＤＢＭＳ上のそれぞれのテーブルにデータをロードすることによって生じるＣＰＵコストとを比較することによって、それぞれのテーブルのコスト／ベネフィット・バランスを計算する。さらに、例示的な実施形態は、ターゲットＤＢＭＳ上で使用されていないまたは最小限にしか使用されていないテーブルを削除する。その結果として、例示的な実施形態は、メモリおよびＣＰＵ使用を最適化して、ワークロード・パフォーマンスを増大させる。
【００１４】
次に、添付図面を参照して、本発明の実施形態を単なる例として説明する。
【図面の簡単な説明】
【００１５】
【図１】例示的な実施形態を実施することができるデータ処理システムのネットワークの絵図である。
【図２】例示的な実施形態を実施することができるデータ処理システムの図である。
【図３】例示的な実施形態に基づく、最初にテーブル・データをロードするためのプロセスを示す流れ図である。
【図４】例示的な実施形態に基づく、最初にテーブル・データをロードするためのプロセスを示す流れ図である。
【図５】例示的な実施形態に基づく、パーティション化されたテーブルのデータをリフレッシュするためのプロセスを示す流れ図である。
【図６】例示的な実施形態に基づく、パーティション化されたテーブルのデータをリフレッシュするためのプロセスを示す流れ図である。
【図７】例示的な実施形態に基づく、テーブル・データの増分更新に関して使用可能にされたテーブルを評価するためのプロセスを示す流れ図である。
【図８】例示的な実施形態に基づく、テーブル・データの増分更新に関して使用可能にされたテーブルを評価するためのプロセスを示す流れ図である。
【図９】例示的な実施形態に基づく、参照されていないまたは最小限にしか参照されていないテーブルを削除するためのプロセスを示す流れ図である。
【図１０】例示的な実施形態に基づく、最適なロード戦略を選択するためのプロセスを示す流れ図である。
【図１１】例示的な実施形態に基づく、テーブル・アクセス頻度をメモリおよびＣＰＵ節減コストにマップするためのプロセスを示す流れ図である。
【発明を実施するための形態】
【００１６】
本発明は、統合化の可能な技術的詳細レベルにおける、システム、方法もしくはコンピュータ・プログラム製品、またはこれらの組合せとすることができる。このコンピュータ・プログラム製品は、本発明の諸態様をプロセッサに実行させるためのコンピュータ可読プログラム命令をその上に有するコンピュータ可読ストレージ媒体を含むことができる。
【００１７】
このコンピュータ可読ストレージ媒体は、命令実行デバイスが使用するための命令を保持および記憶することができる有形のデバイスとすることができる。このコンピュータ可読ストレージ媒体は例えば、限定はされないが、電子ストレージ・デバイス、磁気ストレージ・デバイス、光学ストレージ・デバイス、電磁気ストレージ・デバイス、半導体ストレージ・デバイスまたはこれらの適当な組合せとすることができる。コンピュータ可読ストレージ媒体のより具体的な例の非網羅的なリストは、ポータブル・コンピュータ・ディスケット、ハード・ディスク、ランダムアクセス・メモリ（ＲＡＭ）、リードオンリー・メモリ（ＲＯＭ）、消去可能なプログラマブル・リードオンリー・メモリ（ＥＰＲＯＭまたはフラッシュ・メモリ）、スタティック・ランダム・アクセス・メモリ（ＳＲＡＭ）、ポータブル・コンパクト・ディスク・リードオンリー・メモリ（ＣＤ−ＲＯＭ）、ディジタル・バーサタイル・ディスク（ＤＶＤ）、メモリ・スティック、フロッピー・ディスク、機械的にコード化されたデバイス、例えばパンチカードまたはその上に命令が記録された溝の中の一段高くなった構造体、およびこれらの適当な組合せを含む。本明細書で使用されるコンピュータ可読ストレージ媒体は、それ自体が一過性の信号、例えば電波もしくは他の自由に伝搬する電磁波、ウェーブガイドもしくは他の伝送体内を伝搬する電磁波（例えば光ファイバ・ケーブル内を通る光パルス）、または電線を通して伝送される電気信号であると解釈されるべきではない。
【００１８】
本明細書に記載されたコンピュータ可読プログラム命令は、コンピュータ可読ストレージ媒体から対応するそれぞれのコンピューティング／処理デバイスにダウンロードすることができ、あるいはネットワーク、例えばインターネット、ローカル・エリア・ネットワーク、ワイド・エリア・ネットワークもしくは無線ネットワークまたはそれらの組合せを介して外部コンピュータまたは外部ストレージ・デバイスにダウンロードすることができる。このネットワークは、銅伝送ケーブル、光伝送ファイバ、無線伝送、ルータ、ファイアウォール、スイッチ、ゲートウェイ・コンピュータもしくエッジ・サーバ、またはこれらの組合せを含んでもよい。各コンピューティング／処理デバイス内のネットワーク・アダプタ・カードまたはネットワーク・インタフェースは、コンピュータ可読プログラム命令をネットワークから受け取り、それらのコンピュータ可読プログラム命令を、対応するそれぞれのコンピューティング／処理デバイス内のコンピュータ可読ストレージ媒体に記憶するために転送する。
【００１９】
本発明の操作を実行するためのコンピュータ可読プログラム命令は、アセンブラ命令、命令セット・アーキテクチャ（ＩＳＡ）命令、機械命令、機械依存命令、マイクロコード、ファームウェア命令、状態設定データもしくは集積回路用の構成データであってもよく、またはＳｍａｌｌｔａｌｋ、Ｃ＋＋もしくは他の同種のものなどのオブジェクト指向プログラミング言語、および「Ｃ」プログラミング言語もしくは同種のプログラミング言語などの手続き型プログラミング言語を含む、１つもしくは複数のプログラミング言語の任意の組合せで書かれた、ソース・コードもしくはオブジェクト・コードであってもよい。このコンピュータ可読プログラム命令は、全体がユーザのコンピュータ上で実行されてもよく、一部がユーザのコンピュータ上で実行されてもよく、独立型ソフトウェア・パッケージとして実行されてもよく、一部がユーザのコンピュータ上で、一部が遠隔コンピュータ上で実行されてもよく、または全体が遠隔コンピュータもしくはサーバ上で実行されてもよい。上記の最後のシナリオでは、遠隔コンピュータが、ローカル・エリア・ネットワーク（ＬＡＮ）もしくはワイド・エリア・ネットワーク（ＷＡＮ）を含む任意のタイプのネットワークを介してユーザのコンピュータに接続されてもよく、またはこの接続が、外部コンピュータに対して（例えばインターネット・サービス・プロバイダを使用してインターネットを介して）実施されてもよい。いくつかの実施形態では、本発明の諸態様を実施するために、例えばプログラム可能ロジック回路、フィールド・プログラム可能ゲート・アレイ（ＦＰＧＡ）またはプログラム可能ロジックアレイ（ＰＬＡ）を含む電子回路が、このコンピュータ可読プログラム命令の状態情報を利用してその電子回路をパーソナライズすることにより、このコンピュータ可読プログラム命令を実行してもよい。
【００２０】
本明細書では、本発明の諸態様が、本発明の実施形態に基づく方法、装置（システム）およびコンピュータ・プログラム製品の流れ図もしくはブロック図またはその両方の図を参照して説明される。それらの流れ図もしくはブロック図またはそれらの両方の図の各ブロック、およびそれらの流れ図もしくはブロック図またはその両方の図のブロックの組合せは、このコンピュータ可読プログラム命令によって実施することができることが理解される。
【００２１】
これらのコンピュータ可読プログラム命令は、機械を形成する汎用コンピュータ、専用コンピュータまたは他のプログラム可能データ処理装置のプロセッサに、それらのコンピュータまたは他のプログラム可能データ処理装置のプロセッサによって実行されるこれらの命令が、これらの流れ図もしくはブロック図またはその両方の図のブロックに指定された機能／操作を実施する手段を生成するような態様で提供することができる。これらのコンピュータ可読プログラム命令はさらに、特定の方式で機能するようにコンピュータ、プログラム可能データ処理装置もしくは他のデバイスまたはこれらの組合せに指図することができるコンピュータ可読ストレージ媒体に、その中に命令が記憶されたコンピュータ可読ストレージ媒体が、これらの流れ図もしくはブロック図またはその両方の図のブロックに指定された機能／操作の態様を実施する命令を含む製造物品を含むような態様で記憶することができる。
【００２２】
コンピュータ可読プログラム命令はさらに、コンピュータ、他のプログラム可能装置または他のデバイス上で一連の操作ステップを実行させて、コンピュータによって実施されるプロセスを生み出すために、このコンピュータ、他のプログラム可能データ処理装置または他のデバイスに、このコンピュータ、他のプログラム可能装置または他のデバイス上で実施されるこれらの命令が、これらの流れ図もしくはブロック図またはその両方の図のブロックに指定された機能／操作を実施するような態様でロードすることができる。
【００２３】
添付図中の流れ図およびブロック図は、本発明のさまざまな実施形態に基づくシステム、方法およびコンピュータ・プログラム製品の可能な実施態様のアーキテクチャ、機能および操作を示す。この点に関して、それらの流れ図またはブロック図の各ブロックは、指定されたロジック機能を実施する１つまたは複数の実行可能命令を含む、命令のモジュール、セグメントまたは部分を表すことがある。いくつかの代替的実施態様では、これらのブロックに示された機能が、図に示された順序とは異なる順序で実施される。例えば、連続して示された２つのブロックが、実際は、実質的に同時に実行されることがあり、または、含まれる機能によってはそれらのブロックが逆の順序で実行されることもある。それらのブロック図もしくは流れ図またはその両方の図の各ブロック、ならびにそれらのブロック図もしくは流れ図またはその両方の図のブロックの組合せを、指定された機能もしくは操作を実行しまたは専用ハードウェアとコンピュータ命令の組合せを実施するハードウェアベースの専用システムによって実施することができることにも留意すべきである。
【００２４】
次に図、特に図１および図２を参照すると、例示的な実施形態を実施することができるデータ処理環境の図が示されている。図１および図２は、単なる例であることが意図されており、図１および図２が、異なる実施形態を実施することができる環境に関する限定を言明または暗示することは意図されていないことを理解すべきである。示された環境に対して多くの変更を加えることができる。
【００２５】
図１は、例示的な実施形態を実施することができるデータ処理システムのネットワークの絵図を示す。ネットワーク・データ処理システム１００は、例示的な実施形態を実施することができる、コンピュータ、データ処理システムおよび他のデバイスのネットワークである。ネットワーク・データ処理システム１００はネットワーク１０２を含み、ネットワーク１０２は、ネットワーク・データ処理システム１００内で一緒に接続されたコンピュータ、データ処理システムおよび他のデバイス間の通信リンクを提供するために使用される媒体である。ネットワーク１０２は、例えば有線通信リンク、無線通信リンクおよび光ファイバ・ケーブルなどの接続を含むことができる。
【００２６】
図示の例では、サーバ１０４、サーバ１０６およびサーバ１０８が、ストレージ１１０とともにネットワーク１０２に接続している。サーバ１０４、サーバ１０６およびサーバ１０８は例えば、ネットワーク１０２との高速接続を有するサーバ・コンピュータであってもよい。さらに、サーバ１０４はソースＤＢＭＳサーバ、サーバ１０６はターゲットＤＢＭＳサーバ、サーバ１０８はオフロード管理サーバである。ソースＤＢＭＳサーバ１０４、ターゲットＤＢＭＳサーバ１０６およびオフロード管理サーバ１０８はそれぞれ、１つまたは複数のコンピュータからなる一組のコンピュータを表していてもよいことに留意すべきである。さらに、ＤＢＭＳサーバ１０４、ターゲットＤＢＭＳサーバ１０６およびオフロード管理サーバ１０８は、データ・センタ内のコンピュータであってもよい。あるいは、ＤＢＭＳサーバ１０４、ターゲットＤＢＭＳサーバ１０６およびオフロード管理サーバ１０８は、クラウド環境のコンピューティング・ノードであってもよい。
【００２７】
ソースＤＢＭＳサーバ１０４は、テーブルの中にデータを記憶したリレーショナル・データベースを表し、そのデータを要求するリクエストに応える供給源である。言い換えると、ソースＤＢＭＳサーバ１０４は、そのデータに対応するクライアント・デバイスからの照会に対応する。このデータは任意のタイプのデータとすることができる。ターゲットＤＢＭＳサーバ１０６は、ソースＤＢＭＳサーバ１０４に含まれるデータに対する照会を加速するためのアクセラレータを表し、テーブルのリレーショナル・データベースを含む。オフロード・マネージャ・サーバ１０８は、ソースＤＢＭＳサーバ１０４からターゲットＤＢＭＳサーバ１０６に照会ワークロードをオフロードするプロセスを制御する。
【００２８】
オフロード・マネージャ・サーバ１０８は、それぞれのテーブルを参照している照会ワークロードをソースＤＢＭＳサーバ１０４からオフロードすることのＣＰＵ節減コストと、ターゲットＤＢＭＳ上の参照されているそれぞれのテーブルにデータをロードすることにより生じるＣＰＵコストとを比較することによって、照会ワークロードによって参照されているそれぞれのテーブルに対するリソース・コストとリソース・コスト節減との間のバランスを決定する。さらに、オフロード・マネージャ・サーバ１０８は、参照されていないまたは最小限にしか参照されていない（例えば特定のテーブルに対応する参照数が規定された参照しきい数よりも小さい）テーブルをターゲットＤＢＭＳ１０６から削除して、ターゲットＤＢＭＳ１０６上のメモリを解放する。したがって、オフロード・マネージャ・サーバ１０８は、ターゲットＤＢＭＳ１０６によるメモリおよびＣＰＵの使用を最適化して、加速されたアナリティカル照会ワークロード・パフォーマンスを増大させる。
【００２９】
ネットワーク１０２にはクライアント１１２、クライアント１１４およびクライアント１１６も接続している。クライアント１１２、１１４および１１６はソースＤＢＭＳサーバ１０４のクライアントである。クライアント１１２、１１４および１１６のユーザは、クライアント１１２、１１４および１１６を利用して、ソースＤＢＭＳサーバ１０４にデータを照会することができる。この照会は例えば、ソースＤＢＭＳサーバ１０４内のＣＰＵ使用の増大を必要とするアナリティカル照会であってもよい。この例では、クライアント１１２、１１４および１１６が、ネットワーク１０２との有線通信リンクを有するデスクトップまたはパーソナル・コンピュータとして示されている。しかしながら、クライアント１１２、１１４および１１６が、例えばネットワーク１０２との有線または無線通信リンクを有する、ネットワーク・コンピュータ、ラップトップ・コンピュータ、ハンドヘルド・コンピュータ、スマートフォン、スマート・ウォッチ、スマート・テレビジョン、ゲーム・デバイス、キオスク（kiosk）などの他のタイプのデータ処理システムを表すことがあることに留意すべきである。
【００３０】
ストレージ１１０は、任意のタイプのデータを、構造化されたフォーマットまたは構造化されていないフォーマットで記憶することができるネットワーク・ストレージ・デバイスを表す。さらに、ストレージ１１０は、複数のネットワーク・ストレージ・デバイスを表すことがある。ストレージ１１０は例えば、複数のソースＤＢＭＳサーバの識別子およびネットワーク・アドレス、複数のターゲットＤＢＭＳサーバの識別子およびネットワーク・アドレス、複数のクライアント・デバイスの識別子およびネットワーク・アドレス、リアルタイム・データベース統計量などを記憶することができる。さらに、ストレージ１１０は例えば、クライアント・デバイス・ユーザおよびシステム管理者に関連づけられたユーザ名、パスワードおよび生体測定データ（biometric data）を含むことがある認証または証明データなどの他のタイプのデータを記憶することができる。
【００３１】
さらに、ネットワーク・データ処理システム１００は、示されていない任意の数の追加のサーバ、クライアント・デバイス、ストレージ・デバイスおよび他のデバイスを含んでいてもよいことに留意すべきである。ネットワーク・データ処理システム１００内に位置するプログラム・コードは、コンピュータ可読ストレージ媒体上に記憶されていてもよく、使用のためにコンピュータまたは他のデータ処理デバイスにダウンロードされてもよい。例えば、ソースＤＢＭＳサーバ１０４上のコンピュータ可読ストレージ媒体にプログラム・コードが記憶されていてもよく、クライアント１１２上で使用するためにネットワーク１０２を介してクライアント１１２にダウンロードされてもよい。
【００３２】
図示の例では、例えばインターネット、イントラネット、ローカル・エリア・ネットワーク（ＬＡＮ）、ワイド・エリア・ネットワーク（ＷＡＮ）またはこれらの任意の組合せなどのいくつかの異なるタイプの通信ネットワークとして、ネットワーク・データ処理システム１００を実施することができる。図１は、単なる例であることが意図されており、図１が、異なる例示的な実施形態のアーキテクチャを限定することは意図されていない。
【００３３】
次に図２に参照すると、例示的な実施形態に基づくデータ処理システムの図が示されている。データ処理システム２００は、例示的な実施形態のプロセスを実施するコンピュータ可読プログラム・コードまたは命令がその中に位置することができる、図１のオフロード管理サーバ１０８などのコンピュータの一例である。この説明のための例では、データ処理システム２００が通信ファブリック（communications fabric）２０２を含み、通信ファブリック２０２は、プロセッサ・ユニット２０４、メモリ２０６、永続ストレージ２０８、通信ユニット２１０、入力／出力（Ｉ／Ｏ）ユニット２１２およびディスプレイ２１４の間の通信を提供する。
【００３４】
プロセッサ・ユニット２０４は、メモリ２０６にロードされていることがあるソフトウェア・アプリケーションおよびプログラムに関する命令を実行する役目を果たす。特定の実施態様に応じて、プロセッサ・ユニット２０４は、１つまたは複数のハードウェアＣＰＵデバイスからなる一組のハードウェアＣＰＵデバイスであってもよく、またはマルチプロセッサ・コアであってもよい。
【００３５】
メモリ２０６および永続ストレージ２０８はストレージ・デバイス２１６の例である。コンピュータ可読ストレージ・デバイスは、例えば、限定はされないが、データ、関数形式のコンピュータ可読プログラム・コードもしくは他の適当な情報またはこれらの組合せなどの情報を、一時的にもしくは永続的にまたはその両方で記憶することができる任意のハードウェアである。さらに、コンピュータ可読ストレージ・デバイスは、伝搬媒体を除外する。これらの例では、メモリ２０６が例えば、ランダムアクセス・メモリ、または他の適当な揮発性もしくは不揮発性のストレージ・デバイスであってもよい。特定の実施態様に応じて、永続ストレージ２０８はさまざまな形態をとることができる。例えば、永続ストレージ２０８は１つまたは複数のデバイスを含んでいてもよい。例えば、永続ストレージ２０８は、ハード・ドライブ、フラッシュ・メモリ、再書込み可能な光ディスク、再書込み可能な磁気テープまたはこれらのある組合せであってもよい。永続ストレージ２０８によって使用される媒体は取外し可能であってもよい。例えば、永続ストレージ２０８に対して取外し可能なハード・ドライブが使用されてもよい。
【００３６】
この例では、永続ストレージ２０８がオフロード・マネージャ２１８を記憶している。しかしながら、オフロード・マネージャ２１８は永続ストレージ２０８内にあるものとして示されているが、例示的な代替実施形態では、オフロード・マネージャ２１８がデータ処理システム２００の別個の構成要素であってもよいことに留意すべきである。例えば、オフロード・マネージャ２１８は、通信ファブリック２０２に結合されたハードウェア構成要素であってもよく、またはハードウェア構成要素とソフトウェア構成要素の組合せであってもよい。例示的な別の代替実施形態では、オフロード・マネージャ２１８の第１の部分がデータ処理システム２００上に位置していてもよく、オフロード・マネージャ２１８の第２の部分が、図１のターゲットＤＢＭＳサーバ１０６などの第２のデータ処理システム上に位置していてもよい。例示的な別の代替実施形態では、オフロード・マネージャ２１８が、データ処理システム２００上に位置する代わりに、またはデータ処理システム２００上に位置することに加えて、ターゲットＤＢＭＳサーバ内に位置していてもよい。
【００３７】
オフロード・マネージャ２１８は、長時間ランしているアナリティカル照会ワークロードを、例えば図１のソースＤＢＭＳサーバ１０４などのソースＤＢＭＳから、例えば図１のターゲットＤＢＭＳサーバ１０６などのターゲットＤＢＭＳにオフロードするプロセスを制御する。オフロード・マネージャ２１８は、ソースＤＢＭＳ上ではなくターゲットＤＢＭＳ上でワークロードをランすることによるＣＰＵワークロード・コストの節減と、ワークロードによって参照されているターゲットＤＢＭＳ上のテーブルへのデータのロードに対応するＣＰＵコストとを決定する。オフロード・マネージャ２１８はさらに、ターゲットＤＢＭＳ上の既にロードされたどのテーブルを削除して、ターゲットＤＢＭＳのメモリ・リソースを節減し、ターゲットＤＢＭＳ上でのワークロード・パフォーマンスを増大させることができるのかを決定する。
【００３８】
この例では、永続ストレージ２０８がさらに、ソースＤＢＭＳ２２０、全ＣＰＵコスト２２２、ワークロード節減コスト２２４、リアルタイム統計データ２２６、ターゲットＤＢＭＳ２２８および推奨ロード戦略（load strategy recommendation）２３０を記憶している。ソースＤＢＭＳ２２０は、ソースＤＢＭＳの識別子およびネットワーク・アドレスを表す。オフロード・マネージャ２１８は、それらの識別子およびネットワーク・アドレスを使用してソースＤＢＭＳに接続し、ソースＤＢＭＳに対応する情報を取得する。この情報は例えばワークロード２３２を含んでいてもよい。ワークロード２３２は、ソースＤＢＭＳ上でランしている１つまたは複数のワークロードからなるワークロードのセットを表す。ワークロード２３２は例えば、ソースＤＢＭＳ上でのＣＰＵ使用の増大を必要とするアナリティカル照会であってもよい。テーブル２３４は、ワークロード２３２を実行するためにソースＤＢＭＳによって参照されているテーブルのセットを表す。サイズ２３６は、ワークロード２３２に関して参照されているテーブルのセットの中のそれぞれのテーブルのサイズを表す。変更率２３８は、ワークロード２３２に関して参照されているテーブルのセットの中のそれぞれのテーブルの変更の頻度を表す。
【００３９】
オフロード・マネージャ２１８は、サイズ２３６および変更率２３８を利用して、ワークロード２３２に対応する全ＣＰＵコスト２２２を計算する。全ＣＰＵコスト２２２は、ターゲットＤＢＭＳにテーブル２３４をロードしてターゲットＤＢＭＳ上でワークロード２３２を実行することの総計のＣＰＵ使用コストを表す。ワークロード節減コスト２２４は、ソースＤＢＭＳからターゲットＤＢＭＳにワークロード２３２をオフロードすることによるＣＰＵ使用の低減を表す。
【００４０】
リアルタイム統計データ２２６は、サイズ、変更率、エラーなどの、テーブル２３４に対応する現在のリアルタイム情報を表す。ターゲットＤＢＭＳ２２８は、ターゲットＤＢＭＳの識別子およびネットワーク・アドレスを表す。オフロード・マネージャ２１８は、それらの識別子およびネットワーク・アドレスを使用して、ターゲットＤＢＭＳに接続し、ターゲットＤＢＭＳに対応する情報を取得する。
【００４１】
テーブル・アクセスしきい値２４０は、ターゲットＤＢＭＳにロードされたテーブルに対する参照またはアクセスの予め規定された最小数を表す。オフロード・マネージャ２１８は、テーブル・アクセスしきい値２４０に等しいかまたはそれよりも小さい対応する数のアクセスを有するテーブルを、テーブル削除候補２４２として識別する。テーブル削除候補２４２は、メモリを増やし、したがってターゲットＤＢＭＳ上でのワークロード・パフォーマンスを増大させるためにオフロード・マネージャ２１８がターゲットＤＢＭＳから削除することができる１つまたは複数のテーブルからなるテーブルのセットを表す。
【００４２】
推奨ロード戦略２３０は、ターゲットＤＢＭＳのテーブルにデータをロードするためにオフロード・マネージャ２１８が利用することができるテーブル・ロード計画を表す。推奨ロード戦略２３０は例えば、アンロード・ベースの（UNLOAD-based）リフレッシュ戦略もしくは増分更新戦略またはその両方であってもよい。アンロード・ベースのリフレッシュ戦略は、特定の時点においてターゲットＤＢＭＳ上のワークロードによって参照されているテーブル・パーティションおよびテーブル全体を更新する。増分更新戦略は、ターゲットＤＢＭＳ上のワークロードによって参照されているテーブルの中のデータを絶えず更新する。
【００４３】
この例では、通信ユニット２１０が、図１のネットワーク１０２などのネットワークを介した他のコンピュータ、データ処理システムおよびデバイスとの通信を提供する。通信ユニット２１０は、物理通信リンクと無線通信リンクの両方を使用することによって通信を提供することができる。物理通信リンクは、例えばワイヤ、ケーブル、ユニバーサル・シリアル・バスまたは他の物理技術を利用して、データ処理システム２００用の物理通信リンクを確立することができる。無線通信リンクは、例えば短波、高周波、超高周波、マイクロ波、ワイヤレス・フィデリティ（wireless fidelity）（Ｗｉ−Ｆｉ）、Ｂｌｕｅｔｏｏｔｈ（登録商標）技術、グローバル・システム・フォー・モバイル・コミュニケーションズ（global system for mobile communications）（ＧＳＭ）、符号分割多重アクセス（ＣＤＭＡ）、第２世代（２Ｇ）、第３世代（３Ｇ）、第４世代（４Ｇ）、４Ｇロング・ターム・レボリューション（Long Term Evolution）（ＬＴＥ）、ＬＴＥアドバンスト（LTE Advanced）または他の無線通信技術もしくは規格を利用して、データ処理システム２００用の無線通信リンクを確立することができる。
【００４４】
入力／出力ユニット２１２は、データ処理システム２００に接続されていることがある他のデバイスとのデータの入力および出力を可能にする。例えば、入力／出力ユニット２１２は、キーパッド、キーボード、マウスもしくは他の適当な何らかの入力デバイスまたはこれらの組合せを介したユーザ入力のための接続を提供することができる。ディスプレイ２１４は、ユーザに対して情報を表示する機構を提供する。例えばユーザ・インタフェースを通してオンスクリーン選択を実行することまたはデータを入力することを可能にするために、ディスプレイ２１４はタッチ・スクリーン機能を含んでいてもよい。
【００４５】
通信ファブリック２０２を通してプロセッサ・ユニット２０４と通信するストレージ・デバイス２１６内に、オペレーティング・システム、アプリケーションもしくはプログラムまたはこれらの組合せのための命令が位置していてもよい。この説明のための例では、これらの命令が、関数形式で永続ストレージ２０８上にある。プロセッサ・ユニット２０４によってランするために、これらの命令をメモリ２０６にロードすることができる。プロセッサ・ユニット２０４は、メモリ２０６などのメモリ内に位置していることがあるコンピュータ実施命令を使用して、異なる実施形態のプロセスを実行することができる。これらのプログラム命令は、プログラム・コード、コンピュータ使用可能プログラム・コードまたはコンピュータ可読プログラム・コードと呼ばれ、プロセッサ・ユニット２０４内のプロセッサによって読み取られ、ランされることがある。異なる実施形態では、メモリ２０６または永続ストレージ２０８などの異なるコンピュータ可読物理ストレージ・デバイス上に、これらのプログラム命令が具体化されていることがある。
【００４６】
プログラム・コード２４４は、選択的に取外し可能なコンピュータ可読媒体２４６上に関数形式で位置し、プログラム・コード２４４は、プロセッサ・ユニット２０４によってランするために、データ処理システム２００にロードされてもよく、またはデータ処理システム２００に転送されてもよい。プログラム・コード２４４とコンピュータ可読媒体２４６はコンピュータ・プログラム製品２４８を形成する。一例では、コンピュータ可読媒体２４６が、コンピュータ可読ストレージ媒体２５０またはコンピュータ可読信号媒体２５２であってもよい。コンピュータ可読ストレージ媒体２５０は例えば、永続ストレージ２０８の部分であるハード・ドライブなどのストレージ・デバイスに転送するために永続ストレージ２０８の部分であるドライブまたは他のデバイス内に挿入または配置された光学または磁気ディスクを含むことができる。コンピュータ可読ストレージ媒体２５０は、データ処理システム２００に接続されたハード・ドライブ、サム・ドライブ（thumb drive）またはフラッシュ・メモリなどの永続ストレージの形態をとることができる。いくつかの事例では、コンピュータ可読ストレージ媒体２５０が、データ処理システム２００から取外し可能でないものであってもよい。
【００４７】
あるいは、プログラム・コード２４４を、コンピュータ可読信号媒体２５２を使用してデータ処理システム２００に転送することもできる。コンピュータ可読信号媒体２５２は例えば、プログラム・コード２４４を含む被伝搬データ信号であってもよい。例えば、コンピュータ可読信号媒体２５２は、電磁信号、光学信号もしくは他の適当なタイプの信号またはこれらの組合せであってもよい。これらの信号は、無線通信リンク、光ファイバ・ケーブル、同軸ケーブル、ワイヤもしくは他の適当なタイプの通信リンクまたはこれらの組合せなどの通信リンクを介して伝送されてもよい。言い換えると、この説明のための例では、通信リンクもしくは接続またはその両方が、物理または無線式であってもよい。コンピュータ可読媒体は、プログラム・コードを含む通信リンクまたは無線伝送などの非有形媒体の形態をとるものであってもよい。
【００４８】
いくつかの例示的な実施形態では、プログラム・コード２４４が、データ処理システム２００内で使用するために、コンピュータ可読信号媒体２５２によって、ネットワークを介して、別のデバイスまたはデータ処理システムから永続ストレージ２０８にダウンロードされてもよい。例えば、データ処理システム内のコンピュータ可読ストレージ媒体の中に記憶されたプログラム・コードが、ネットワークを介して、そのデータ処理システムからデータ処理システム２００にダウンロードされてもよい。プログラム・コード２４４を提供するデータ処理システムは、プログラム・コード２４４を記憶および送信することができるサーバ・コンピュータ、クライアント・コンピュータまたは他の何らかのデバイスであってもよい。
【００４９】
データ処理システム２００の示された異なる構成要素が、異なる実施形態が実施される方式のアーキテクチャを限定することは意図されていない。それらの異なる例示的な実施形態は、データ処理システム２００に関して説明した構成要素の他に、またはデータ処理システム２００に関して説明した構成要素の代わりに構成要素を含むデータ処理システム内で実施されることがある。図２に示された他の構成要素は、示された説明のための例とは異なるものとすることができる。異なる実施形態は、プログラム・コードを実行することができる任意のハードウェア・デバイスまたはシステムを使用して実施されることがある。一例として、データ処理システム２００は、無機構成要素と統合された有機構成要素を含むものであってもよく、もしくは人間以外の有機構成要素から全体が構成されていてもよく、またはその両方であってもよい。例えば、ストレージ・デバイスは有機半導体から構成されていてもよい。
【００５０】
別の例として、データ処理システム２００内のコンピュータ可読ストレージ・デバイスは、データを記憶することができる任意のハードウェア装置である。メモリ２０６、永続ストレージ２０８およびコンピュータ可読ストレージ媒体２５０は、有形の物理ストレージ・デバイスの例である。
【００５１】
別の例では、通信ファブリック２０２を実施するためにバス・システムが使用されてもよく、そのバス・システムは、システム・バスまたは入力／出力バスなどの１つまたは複数のバスから構成されたものであってもよい。当然ながら、このバス・システムは、バス・システムに接続された異なる構成要素またはデバイス間のデータの転送を提供する適当な任意のタイプのアーキテクチャを使用して実施することができる。さらに、通信ユニットは、データを送信および受信するために使用されるモデムまたはネットワーク・アダプタなどの１つまたは複数のデバイスを含むものであってもよい。さらに、メモリは例えば、通信ファブリック２０２に存在することがあるインタフェースおよびメモリ・コントローラ・ハブに見られるものなどのメモリ２０６またはキャッシュであってもよい。
【００５２】
長時間ランしているアナリティカル照会ワークロードのオフロードを加速するために、アクセラレータが使用される。照会を加速するためには、照会によって参照されているテーブルのデータをアクセラレータにロードする必要がある。そのような多数の照会がアクセラレータにオフロードされると、メモリ消費が増大し、その一方で照会パフォーマンスは低下する。
【００５３】
ＣＰＵ、メモリおよび永続ストレージなどのリソース制約物（resource restriction）は、加速された照会パフォーマンスを強化するために、アクセラレータによる高度に最適化されたリソース使用を要求する。多くの場合、アクセラレータによって使用されるシステム・ハードウェアにテーブル・データを無制限にオフロードすると、システム・リソースが必要以上に消費される。その結果として、テーブル・データの知的な（intelligent）テーブル・ロードおよびアンロードは、ワークロードまたは照会パフォーマンスを向上させる。
【００５４】
現在、ワークロード・チューナ（workload tuner）が、アクセラレータにオフロードしたときにどのテーブルおよびデータのパフォーマンスが向上するかについての示唆を提供する。しかしながら、ワークロード・チューナは、照会統計量だけに基づいて推奨を提供する。言い換えると、ワークロード・チューナは、検討中の照会ワークロードがどのように導き出されるのかに依存する。ワークロードの部分である照会がステートメント・キャッシュ（Statement cache）から来ている場合、ＤＢＭＳ上で照会をランすることの実コストは既知である。
【００５５】
しかしながら、ワークロード・チューナが、アクセラレータにオフロードするテーブルを示唆することによって照会チューニング洞察を提案するときには、データをアクセラレータにロードするための実ＣＰＵ使用コストは考慮されない。時間が経過して、多数のテーブルのデータがアクセラレータにロードされると、アクセラレータによって利用されるメモリ・リソースも使用しつくされ、パフォーマンスは低下する。
【００５６】
例示的な実施形態は、ソースＤＢＭＳからオフロードされるワークロードによって参照されているそれぞれのテーブルにデータをロードすることのＣＰＵ使用コストを考慮することによって、ターゲットＤＢＭＳ（すなわちアクセラレータ）のテーブルにデータをロードする。したがって、例示的な実施形態は、それぞれのテーブルを参照しているワークロード／照会をオフロードすることのＣＰＵ節減コストと、ターゲットＤＢＭＳ上のそれぞれのテーブルにデータをロードすることによって生じるＣＰＵコストとを比較することによって、それぞれのテーブルの「コスト／ベネフィット・バランス」を計算する。さらに、例示的な実施形態は、ターゲットＤＢＭＳによって使用されていないかまたは最小限にしか使用されていないデータ（すなわちテーブル）を削除することを推奨する推奨を提供する。結果的に、例示的な実施形態は、ターゲットＤＢＭＳによって使用されるメモリおよびＣＰＵリソースを最適化して、加速されたアナリティカル・ワークロード／照会パフォーマンスを増大させることによって、システム・リソース最適化を提供する。
【００５７】
例示的な実施形態は、ソースＤＢＭＳから、ソースＤＢＭＳデータ・セットのサブセットを含むターゲットＤＢＭＳへのデータ・ロード戦略を最適化するためのコンピュータ実施方法を提供する。ターゲットＤＢＭＳは、このデータのサブセットを使用して、１つまたは複数のワークロード（例えばアナリティカル照会）をランする。例示的な実施形態は、ソースＤＢＭＳをヒットしているワークロードと、ソースＤＢＭＳ上でワークロードをランすることに対応するコストと、ワークロードによって参照されているテーブルと、ワークロードによって参照されているテーブルであって、ターゲットＤＢＭＳにオフロードされるテーブルの資格に関する情報を収集する。例示的な実施形態は、ターゲットＤＢＭＳにオフロードされる資格を有するテーブルのサイズを取得する。さらに、例示的な実施形態は、ターゲットＤＢＭＳにオフロードされる資格を有するテーブルの変更率を評価する。例示的な実施形態は、ターゲットＤＢＭＳにオフロードされる資格を有するテーブルのサイズおよび変更率を使用して、データのサブセットをターゲットＤＢＭＳにロードすることに対応する全ＣＰＵコストと、１つまたは複数のロード戦略からなるロード戦略のセットに基づいてターゲットＤＢＭＳ上で１つまたは複数のワークロードを実行することに対応するワークロード節減コストとを決定する。特定のテーブルに対する決定されたワークロード節減コストは、その特定のテーブルに対応する予測される将来のワークロードを含む。例示的な実施形態は、全ＣＰＵコストを、ロード戦略のセットの中のそれぞれのロード戦略のワークロード節減コストと比較する。例示的な実施形態は、全コストをそれぞれのロード戦略のワークロード節減コストと比較したことに基づいて、ロード戦略のセットから最適なロード戦略を選択する。例示的な実施形態は、１つまたは複数のワークロードの加速された実行のために、選択した最適なロード戦略に従って、ターゲットＤＢＭＳへのデータのサブセットのロードを自動的に実施する。
【００５８】
さらに、例示的な実施形態は、ターゲットＤＢＭＳに対応するデータ削除戦略を最適化するためのコンピュータ実施方法であって、その結果、加速されたワークロード・パフォーマンスを提供するコンピュータ実施方法を提供する。例示的な実施形態は、ターゲットＤＢＭＳ上でランしているワークロードのセットと、ターゲットＤＢＭＳ上でそれぞれのワークロードをランすることに関連したコストとに関する情報を収集する。例示的な実施形態は、ターゲットＤＢＭＳ内のテーブルのセットの中のそれぞれのテーブルのサイズと、セットの中のそれぞれのテーブルに関連した参照カウントであり、ワークロードのセットによる使用に基づく参照カウントとを取得する。例示的な実施形態は、ターゲットＤＢＭＳ内のテーブルのセットの中のそれぞれのテーブルについて、ワークロードのセットによるテーブル・アクセスの頻度を評価する。例示的な実施形態は、ワークロードのセットによって参照されているそれぞれのテーブルに関連したテーブル・アクセスの頻度を、アクセスの頻度が最小限またはゼロであるテーブルをターゲットＤＢＭＳから削除することに関連したメモリおよびＣＰＵ節減コストにマップして、テーブル削除候補を識別する。例示的な実施形態は、マップに基づいて、識別されたテーブル削除候補をターゲットＤＢＭＳから自動的に削除する。
【００５９】
アクセラレータ（すなわちターゲットＤＢＭＳ）は、特定のタイプのデータベース・ワークロード（例えばアナリティカル照会）を迅速に実行するのに特に適している。例示的な実施形態は、ワークロード（例えば照会）パフォーマンスを増大させるために、データの全部または一部をソース・データベースからターゲット・データベースにコピーする。例示的な実施形態は、ソース・データベースが受け取った照会をソース・データベース内で実行するのか、またはターゲット・データベースにオフロードするのかを動的に判定する。例示的な実施形態がターゲット・データベースに照会をオフロードするか否かは、ワークロード（例えばアナリティカル照会ワークロード）のタイプに依存する。ソース・データベース内の元のデータテーブル上で実行されるよりも、ターゲット・データベース上で実行された方がワークロードが速く実行されると例示的な実施形態が判定または予測したときに、例示的な実施形態は、ターゲット・データベースにワークロードをディスパッチする。したがって、例示的な実施形態は、ターゲット・データベースを利用して、ワークロード／照会の実行を加速する。
【００６０】
ターゲット・データベースにデータをロードおよびアンロードする以前の方法は常に手動プロセスであった。そのプロセスは、データベース管理者の最良の判断に委ねられていた。いくつかの最良の実施は示されたが、以前の方法は、データのロードおよびアンロード戦略上の判断を実行する際にデータベース管理者をサポートする手段を有していなかった。
【００６１】
ソースＤＢＭＳ内のデータの編成はテーブル間で異なることがある。一部のテーブルはパーティション化されていないテーブルであり、一部のテーブルは、範囲またはグロース（growth）によってパーティション化されている。これらのテーブルの中のデータの変更率も、テーブルの目的に基づいて大幅に変動する。したがって、最適なロード戦略を推奨および実施するプロセスが求められている。
【００６２】
例示的な実施形態は、ソースＤＢＭＳ上ではなくターゲットＤＢＭＳ上でワークロードをランすることによるワークロード・コストの節減と、ターゲットＤＢＭＳ上で参照されているテーブルへのデータの最初のロードに対応するＣＰＵコストとに関する情報を受け入れる。次いで、例示的な実施形態は、これらのテーブルの中のデータの変更率を決定し、所与のテーブルに対して使用することができる異なるロード戦略に関連したＣＰＵコストを計算する。この情報が受け入れられ、計算された後、例示的な実施形態は、ターゲットＤＢＭＳ上でのワークロード・パフォーマンス節減およびターゲットＤＢＭＳのテーブルにデータをロードすることに関連したコストを含む実コストと、関連したデータ・ロード・オーバーヘッドを最小化する理論的根拠を含む推奨された／選択されたロード戦略とを、ユーザ（例えばデータベース管理者）に提示する。例示的な実施形態はさらに、ターゲットＤＢＭＳ上で、推奨された／選択されたロード戦略を使用したロード操作を自動的に実行する。
【００６３】
例示的な実施形態は、例えばパラメータが「はい」にセットされているときに、ターゲットＤＢＭＳ上でワークロードをランすることによるワークロード・コストの節減に関するデータを収集する。特定のワークロードが与えられると、例示的な実施形態は、ソースＤＢＭＳ上でワークロードを直接にランすることのワークロード・コストを決定し、ターゲットＤＢＭＳ上でワークロードをランするとワークロード・コストが低減すると例示的な実施形態が判定したことに応答して、ターゲットＤＢＭＳ上でワークロードをランすることを推奨する。したがって、例示的な実施形態は、ワークロード節減コストに基づいて推奨を生成する。例示的な実施形態は、ワークロードによって参照されているそれぞれのテーブルのサイズとターゲットＤＢＭＳにロードする資格とに関する情報を、ソースＤＢＭＳカタログ・テーブルから取り出す。
【００６４】
ターゲットＤＢＭＳ上のデータを同期させるために例示的な実施形態が実行することができる２つのタイプのデータ・ロード／リフレッシュ戦略、すなわちアンロード・ベースのリフレッシュ戦略および増分更新戦略がある。アンロード・ベースのリフレッシュ戦略は、特定の時点においてテーブル・パーティションおよびテーブル全体を更新する。アンロード・ベースのリフレッシュ機能は、ソースＤＢＭＳ上のデータのスナップショットを捕捉し、そのデータをターゲットＤＢＭＳに転送する。増分更新戦略は、ソースＤＢＭＳログに記録された変更を適用することによって、ターゲットＤＢＭＳ上のデータを絶えず更新する。ソースＤＢＭＳからターゲットＤＢＭＳのテーブルにデータをロードすることに関連した全ＣＰＵコストは、選択されたロード戦略に基づいて変動する。
【００６５】
増分更新またはアンロード・ベースのリフレッシュにおけるデータ同期のためのＣＰＵコストは、ターゲットＤＢＭＳから転送されるデータの全サイズに依存する。増分更新の場合、転送されるデータの全サイズは、ソースＤＢＭＳ内のテーブルに適用されたバイトの変化の正味のボリュームである。アンロード・ベースのリフレッシュでは、パーティション全体だけをリフレッシュすることができるため、転送されるデータの全サイズが、変更したパーティションの数およびサイズに依存する。増分更新機能は、ソースＤＢＭＳサブシステム全体のログを読み取るため、ＣＰＵコストの推定値は、このサブシステムのログに記録されたアクティビティ全体に基づいていなければならない。範囲内変化と範囲外変化が識別されなければならない。範囲内変化は、ターゲットＤＢＭＳ上の増分更新されたテーブルに関するログ・アクティビティを示し、範囲外変化は他の全てのアクティビティを示す。アンロード・ベースのリフレッシュを使用したデータ・ロードのＣＰＵコストは、変更された行の数および主題テーブルの平均行長さの関数である。増分更新では、ソースＤＢＭＳを走査する必要があるときに、データ・リフレッシュのＣＰＵコストが、主題テーブルの平均行長さ、挿入、更新および削除の数、ならびに範囲外変更をフィルタリングすることに関連した時間の関数である。
【００６６】
現在、ユーザは、参照されている検討中のそれぞれのテーブルを転送するためのステップを計算し、手動で実行している。これは、時間がかかり、エラーを生じやすく、したがってこの現行のプロセスを最適でないものにする。このことは、多数の因子の計算を自動化するための論理を含め、結果を統合して具体的なコスト・データおよび推奨を生成することによって例示的な実施形態が考慮し、対処する問題の一部である。さらに、例示的な実施形態は、生成された推奨に基づいて自動的に行動をとる能力を有する。
【００６７】
次に図３〜４を参照すると、例示的な実施形態に基づく、最初にテーブル・データをロードするためのプロセスを示す流れ図が示されている。このプロセスでは、ターゲットＤＢＭＳ上でワークロード／照会をランすることによるワークロード／照会コスト節減が使用可能であるが、ターゲットＤＢＭＳ上でワークロード／照会がランすることを可能にするのに必要なテーブル・データはまだ使用可能ではない。図３〜４に示されたプロセスは、例えば図１のオフロード・マネージャ・サーバ１０８または図２のデータ処理システム２００などのコンピュータ内で実施することができる。
【００６８】
このプロセスは、コンピュータが、ソースＤＢＭＳから、ソースＤＢＭＳ上でランしているワークロードと、ソースＤＢＭＳ上でワークロードをランすることに関連したコストとに関する情報を収集する（ステップ３０２）ときに始まる。これは、ソースＤＢＭＳに対するワークロードの実行計画を生成することによって実行される。ソースＤＢＭＳは、例えば図１のソースＤＢＭＳサーバ１０４であってもよい。その後、コンピュータは、収集した情報を使用して、ワークロードによって参照されているテーブルのセットを識別する（ステップ３０４）。
【００６９】
続いて、コンピュータは、テーブルのセットからテーブルを選択する（ステップ３０６）。コンピュータは、選択したテーブルがターゲットＤＢＭＳ内に位置するかどうかに関する判定を実行する（ステップ３０８）。ターゲットＤＢＭＳは、例えば図１のターゲットＤＢＭＳサーバ１０６であってもよい。選択したテーブルがターゲットＤＢＭＳ内に位置するとコンピュータが判定した場合、ステップ３０８の「はい」出力に進み、プロセスは、図５のステップ４１０に進む。選択したテーブルがターゲットＤＢＭＳ内に位置しないとコンピュータが判定した場合、ステップ３０８の「いいえ」出力に進み、コンピュータは、ソースＤＢＭＳのカタログ・テーブルを参照することにより、選択したテーブルに最初にロードするデータ量を決定する（ステップ３１０）。
【００７０】
さらに、コンピュータは、選択したテーブルにこのデータ量をロードすることのＣＰＵコスト値を計算する（ステップ３１２）。コンピュータはさらに、計算したＣＰＵコスト値の分だけＣＰＵコスト・カウンタを増分する（ステップ３１４）。その後、コンピュータは、テーブルのセットの中に別のテーブルが存在するかどうかに関する判定を実行する（ステップ３１６）。テーブルのセットの中に別のテーブルが存在するとコンピュータが判定した場合、ステップ３１６の「はい」出力に進み、プロセスはステップ３０６に戻り、コンピュータは、テーブルのセットから別のテーブルを選択する。テーブルのセットの中に別のテーブルが存在しないとコンピュータが判定した場合、ステップ３１６の「いいえ」出力に進み、コンピュータは、ターゲットＤＢＭＳにデータをロードすることの全ＣＰＵコストを、ＣＰＵコスト・カウンタに基づいて決定する（ステップ３１８）。
【００７１】
コンピュータは、ターゲットＤＢＭＳにデータをロードすることの全ＣＰＵコストを、ターゲットＤＢＭＳ上でワークロードをランすることのワークロード節減コストと比較する（ステップ３２０）。さらに、コンピュータは、ターゲットＤＢＭＳにテーブル・データをロードすることによる将来のワークロード節減コストを考慮する。コンピュータが全ＣＰＵコストをワークロード節減コストと比較したことに応答して、コンピュータは、全ＣＰＵコストがワークロード節減コストよりも大きいかどうかに関する判定を実行する（ステップ３２２）。全ＣＰＵコストがワークロード節減コストよりも大きいとコンピュータが判定した場合、ステップ３２２の「はい」出力に進み、その後、プロセスは終了となる。全ＣＰＵコストがワークロード節減コストよりも小さいとコンピュータが判定した場合、ステップ３２２の「いいえ」出力に進み、コンピュータは、ターゲットＤＢＭＳのテーブルにデータをロードするよう推奨する推奨ロード戦略を生成する（ステップ３２４）。推奨ロード戦略を生成するプロセスについては、下記の図１０の説明においてより詳細に説明する。
【００７２】
さらに、コンピュータは、ターゲットＤＢＭＳ上の既にロードされたテーブルを削除することができるかどうかに関する判定を実行する（ステップ３２６）。ターゲットＤＢＭＳ上の既にロードされたテーブルを削除することができるとコンピュータが判定した場合、ステップ３２６の「はい」出力に進み、プロセスは、図９のステップ６０２に進む。ターゲットＤＢＭＳ上の既にロードされたテーブルを削除することができないとコンピュータが判定した場合、ステップ３２６の「いいえ」出力に進み、コンピュータは、推奨ロード戦略内のテーブルに対応するリアルタイム統計データを収集して、テーブルの更新パターンを決定する（ステップ３２８）。
【００７３】
その後、コンピュータは、推奨ロード戦略内のテーブルが、収集したリアルタイム統計データに基づく増分更新の資格を有するかどうかに関する判定を実行する（ステップ３３０）。推奨ロード戦略内のテーブルが、収集したリアルタイム統計データに基づく増分更新の資格を有していないとコンピュータが判定した場合、ステップ３３０の「いいえ」出力に進み、コンピュータは、ターゲットＤＢＭＳ上での増分更新の資格を有していない推奨ロード戦略内のテーブルのアンロード・ベースのリフレッシュを実行する（ステップ３３２）。推奨ロード戦略内のテーブルが、収集したリアルタイム統計データに基づく増分更新の資格を有するとコンピュータが判定した場合、ステップ３３０の「はい」出力に進み、コンピュータは、ターゲットＤＢＭＳ上での増分更新の資格を有する推奨ロード戦略内のテーブルの増分更新を使用可能にする（ステップ３３４）。さらに、コンピュータは、レビュー（review）のため、推奨ロード戦略を理論的根拠（rationale）とともにユーザに送信する（ステップ３３６）。その後、プロセスは終了となる。
【００７４】
次に図５〜６を参照すると、例示的な実施形態に基づく、パーティション化されたテーブルのデータをリフレッシュするためのプロセスを示す流れ図が示されている。このプロセスでは、ターゲットＤＢＭＳ上でワークロードをランすることによるワークロード節減コストが使用可能であり、ターゲットＤＢＭＳ上でワークロードをランするために必要なテーブル・データをリフレッシュする必要がある。図５〜６に示されたプロセスは、例えば図１のオフロード・マネージャ・サーバ１０８または図２のデータ処理システム２００などのコンピュータ内で実施することができる。
【００７５】
このプロセスは、コンピュータが、ソースＤＢＭＳから、ソースＤＢＭＳ上でランしているワークロードと、ソースＤＢＭＳ上でワークロードをランすることに関連したコストとに関する情報を収集する（ステップ４０２）ときに始まる。コンピュータは、収集した情報を使用して、ワークロードによって参照されているテーブルのセットを識別する（ステップ４０４）。コンピュータは、テーブルのセットからテーブルを選択する（ステップ４０６）。
【００７６】
コンピュータは、選択したテーブルがターゲットＤＢＭＳ内に位置するかどうかに関する判定を実行する（ステップ４０８）。選択したテーブルがターゲットＤＢＭＳ内に位置しないとコンピュータが判定した場合、ステップ４０８の「いいえ」出力に進み、プロセスは、図３のステップ３１０に戻る。選択したテーブルがターゲットＤＢＭＳ内に位置するとコンピュータが判定した場合、ステップ４０８の「はい」出力に進み、コンピュータは、選択したテーブル上で増分更新が使用可能であるかどうかに関する判定を実行する（ステップ４１０）。選択したテーブル上で増分更新が使用可能であるとコンピュータが判定した場合、ステップ４１０の「はい」出力に進み、プロセスは、図７のステップ５１２に進む。選択したテーブル上で増分更新が使用可能でないとコンピュータが判定した場合、ステップ４１０の「いいえ」出力に進み、コンピュータは、選択したテーブルがパーティション化されているかどうかに関する判定を実行する（ステップ４１２）。
【００７７】
選択したテーブルはパーティション化されているとコンピュータが判定した場合、ステップ４１２の「はい」出力に進み、コンピュータは、選択したテーブルのパーティション・リロードのＣＰＵコスト値を計算する（ステップ４１４）。コンピュータは、例えばＳＹＳＰＲＯＣ．ＡＣＣＥＬ＿ＬＯＡＤ＿ＴＡＢＬＥＳに記憶された手順を利用して、以前にテーブル・データがターゲットＤＢＭＳにロードされたときの最後のロード／リフレッシュ以降にどのパーティション化が変更されたのかを識別することができる。その後、プロセスはステップ４１８に進む。選択したテーブルはパーティション化されていないとコンピュータが判定した場合、ステップ４１２の「いいえ」出力に進み、コンピュータは、選択したテーブルの全体をリロードすることのＣＰＵコスト値を計算する（ステップ４１６）。
【００７８】
その後、コンピュータは、計算したＣＰＵコスト値の分だけＣＰＵコスト・カウンタを増分する（ステップ４１８）。さらに、コンピュータは、テーブルのセットの中に別のテーブルが存在するかどうかに関する判定を実行する（ステップ４２０）。テーブルのセットの中に別のテーブルが存在するとコンピュータが判定した場合、ステップ４２０の「はい」出力に進み、プロセスはステップ４０６に戻り、コンピュータは、テーブルのセットの中の別のテーブルを選択する。テーブルのセットの中に別のテーブルが存在しないとコンピュータが判定した場合、ステップ４２０の「いいえ」出力に進み、コンピュータは、ターゲットＤＢＭＳのテーブルにデータをリロードすることの全ＣＰＵコストを、ＣＰＵコスト・カウンタに基づいて決定する（ステップ４２２）。
【００７９】
コンピュータは、ターゲットＤＢＭＳのテーブルにデータをリロードすることの全ＣＰＵコストを、ターゲットＤＢＭＳ上でワークロードをランすることのワークロード節減コストと比較する（ステップ４２４）。コンピュータが全ＣＰＵコストをワークロード節減コストと比較したことに応答して、コンピュータは、全ＣＰＵコストがワークロード節減コストよりも大きいかどうかに関する判定を実行する（ステップ４２６）。全ＣＰＵコストがワークロード節減コストよりも大きいとコンピュータが判定した場合、ステップ４２６の「はい」出力に進み、その後、プロセスは終了となる。全ＣＰＵコストがワークロード節減コストよりも小さいとコンピュータが判定した場合、ステップ４２６の「いいえ」出力に進み、コンピュータは、ターゲットＤＢＭＳのテーブルにデータをリロードするよう推奨する推奨ロード戦略を生成する（ステップ４２８）。
【００８０】
さらに、コンピュータは、推奨ロード戦略を自動的に実行する（ステップ４３０）。さらに、コンピュータは、ターゲットＤＢＭＳ上の既にロードされたテーブルを削除することができるかどうかに関する判定を実行する（ステップ４３２）。ターゲットＤＢＭＳ上の既にロードされたテーブルを削除することができるとコンピュータが判定した場合、ステップ４３２の「はい」出力に進み、プロセスは、図９のステップ６０２に進む。ターゲットＤＢＭＳ上の既にロードされたテーブルを削除することができないとコンピュータが判定した場合、ステップ４３２の「いいえ」出力に進み、プロセスはその後、終了となる。
【００８１】
次に図７〜８を参照すると、例示的な実施形態に基づく、テーブル・データの増分更新に関して使用可能にされたテーブルを評価するためのプロセスを示す流れ図が示されている。このプロセスでは、ターゲットＤＢＭＳ上でワークロードをランすることによるワークロード節減コストが使用可能であり、さらに、テーブルの増分更新が使用可能にされているため、ターゲットＤＢＭＳ上でワークロードをランするために必要なテーブル・データが使用可能であり、最新（current）である。図７〜８に示されたプロセスは、例えば図１のオフロード・マネージャ・サーバ１０８または図２のデータ処理システム２００などのコンピュータ内で実施することができる。
【００８２】
このプロセスは、コンピュータが、ソースＤＢＭＳから、ソースＤＢＭＳ上でランしているワークロードと、ソースＤＢＭＳ上でワークロードをランすることに関連したコストとに関する情報を収集する（ステップ５０２）ときに始まる。コンピュータは、収集した情報を使用して、ワークロードによって参照されているテーブルのセットを識別する（ステップ５０４）。コンピュータは、テーブルのセットからテーブルを選択する（ステップ５０６）。
【００８３】
コンピュータは、選択したテーブルがターゲットＤＢＭＳ内に位置するかどうかに関する判定を実行する（ステップ５０８）。選択したテーブルがターゲットＤＢＭＳ内に位置しないとコンピュータが判定した場合、ステップ５０８の「いいえ」出力に進み、プロセスは、図３のステップ３１０に戻る。選択したテーブルがターゲットＤＢＭＳ内に位置するとコンピュータが判定した場合、ステップ５０８の「はい」出力に進み、コンピュータは、選択したテーブル上で増分更新が使用可能であるかどうかに関する判定を実行する（ステップ５１０）。
【００８４】
選択したテーブル上で増分更新が使用可能でないとコンピュータが判定した場合、ステップ５１０の「いいえ」出力に進み、プロセスは、図５のステップ４１２に戻る。選択したテーブル上で増分更新が使用可能であるとコンピュータが判定した場合、ステップ５１０の「はい」出力に進み、コンピュータは、選択したテーブルに対応するリアルタイム統計データを収集する（ステップ５１２）。その後、コンピュータは、選択したテーブルが現在もなお、収集したリアルタイム統計データに基づく増分更新の資格を有しているかどうかに関する判定を実行する（ステップ５１４）。
【００８５】
選択したテーブルが現在は、収集したリアルタイム統計データに基づく増分更新の資格を有していないとコンピュータが判定した場合、ステップ５１４の「いいえ」出力に進み、コンピュータは、選択したテーブルの増分更新を停止する（ステップ５１６）。その後、プロセスはステップ５２０に進む。選択したテーブルが現在もなお、収集したリアルタイム統計データに基づく増分更新の資格を有しているとコンピュータが判定した場合、ステップ５１４の「はい」出力に進み、コンピュータは、選択したテーブルの増分更新を継続する（ステップ５１８）。
【００８６】
コンピュータは、選択したテーブルの現在までの増分更新に対する現在のＣＰＵコスト値を計算する（ステップ５２０）。さらに、コンピュータは、計算した現在のＣＰＵコスト値の分だけＣＰＵコスト・カウンタを増分する（ステップ５２２）。さらに、コンピュータは、テーブルのセットの中に別のテーブルが存在するかどうかに関する判定を実行する（ステップ５２４）。
【００８７】
テーブルのセットの中に別のテーブルが存在するとコンピュータが判定した場合、ステップ５２４の「はい」出力に進み、プロセスはステップ５０６に戻り、コンピュータは、テーブルのセットの中の別のテーブルを選択する。テーブルのセットの中に別のテーブルが存在しないとコンピュータが判定した場合、ステップ５２４の「いいえ」出力に進み、コンピュータは、ターゲットＤＢＭＳ上のテーブルの増分更新の全ＣＰＵコストを、ＣＰＵコスト・カウンタに基づいて判定する（ステップ５２６）。
【００８８】
コンピュータは、ターゲットＤＢＭＳ上のテーブルの増分更新の全ＣＰＵコストを、ターゲットＤＢＭＳ上でワークロードをランすることのワークロード節減コストと比較する（ステップ５２８）。コンピュータが全ＣＰＵコストをワークロード節減コストと比較したことに応答して、コンピュータは、全ＣＰＵコストがワークロード節減コストよりも大きいかどうかに関する判定を実行する（ステップ５３０）。全ＣＰＵコストがワークロード節減コストよりも大きいとコンピュータが判定した場合、ステップ５３０の「はい」出力に進み、コンピュータは、ターゲットＤＢＭＳ上のテーブルの増分更新を停止するよう推奨する推奨を生成する（ステップ５３２）。その後、プロセスはステップ５３６に進む。全ＣＰＵコストがワークロード節減コストよりも小さいとコンピュータが判定した場合、ステップ５３０の「いいえ」出力に進み、コンピュータは、ターゲットＤＢＭＳ上のテーブルの増分更新を継続するよう推奨する推奨を生成する（ステップ５３４）。さらに、コンピュータは、推奨を自動的に実行する（ステップ５３６）。その後、プロセスは終了となる。
【００８９】
次に図９を参照すると、例示的な実施形態に基づく、参照されていないまたは最小限にしか参照されていないテーブルを削除するためのプロセスを示す流れ図が示されている。このプロセスでは、ワークロード加速を使用可能にするためにターゲットＤＢＭＳにロードする必要があるテーブル・データに関する情報が使用可能であり、システム負荷を維持するためにターゲットＤＢＭＳから削除することができる候補テーブルに関してターゲットＤＢＭＳをチェックする必要がある。図９に示されたプロセスは、例えば図１のオフロード・マネージャ・サーバ１０８または図２のデータ処理システム２００などのコンピュータ内で実施することができる。
【００９０】
このプロセスは、コンピュータが、ターゲットＤＢＭＳにロードされたテーブルを、それぞれのテーブルに対応するワークロード・ヒット数に関して評価する（ステップ６０２）ときに始まる。コンピュータがテーブルを評価したことに応答して、コンピュータは、いずれかのテーブルが、しきいワークロード・ヒット数よりも小さい対応するワークロード・ヒット数を有するかどうかに関する判定を実行する（ステップ６０４）。どのテーブルも、しきいワークロード・ヒット数よりも小さい対応するワークロード・ヒット数を有していないとコンピュータが判定した場合、ステップ６０４の「いいえ」出力に進み、その後、プロセスは終了となる。１つまたは複数のテーブルが、しきいワークロード・ヒット数よりも小さい対応するワークロード・ヒット数を有するテーブルのリストを生成するとコンピュータが判定した場合、ステップ６０４の「はい」出力に進み、コンピュータは、しきいワークロード・ヒット数よりも小さい対応するワークロード・ヒット数を有するテーブルのリストを生成する（ステップ６０６）。
【００９１】
コンピュータは、テーブルのリストからテーブルを選択する（ステップ６０８）。コンピュータは、選択したテーブルをターゲットＤＢＭＳから削除することができるかどうかに関する判定を実行する（ステップ６１０）。選択したテーブルをターゲットＤＢＭＳから削除することはできないとコンピュータが判定した場合、ステップ６１０の「いいえ」出力に進み、コンピュータは、選択したテーブルをターゲットＤＢＭＳ上に維持する（ステップ６１２）。その後、プロセスはステップ６１８に進む。選択したテーブルをターゲットＤＢＭＳから削除することができるとコンピュータが判定した場合、ステップ６１０の「はい」出力に進み、コンピュータは、選択したテーブルをテーブル削除リストに追加する（ステップ６１４）。さらに、コンピュータは、選択したテーブルをターゲットＤＢＭＳから削除することによるメモリおよびＣＰＵ節減コストを計算する（ステップ６１６）。
【００９２】
コンピュータは、テーブルのリストの中に別のテーブルが存在するかどうかに関する判定を実行する（ステップ６１８）。テーブルのリストの中に別のテーブルが存在するとコンピュータが判定した場合、ステップ６１８の「はい」出力に進み、プロセスはステップ６０８に戻り、コンピュータは、テーブルのリストの中の別のテーブルを選択する。テーブルのリストの中に別のテーブルが存在しないとコンピュータが判定した場合、ステップ６１８の「いいえ」出力に進み、コンピュータは、テーブル削除リストの中のテーブルをターゲットＤＢＭＳから削除することによる全メモリおよびＣＰＵ節減コストを計算する（ステップ６２０）。
【００９３】
さらに、コンピュータは、全メモリおよびＣＰＵ節減コストを用いて、ターゲットＤＢＭＳに対するテーブル削除レコメンデーションを生成する（ステップ６２２）。さらに、コンピュータは、テーブル削除レコメンデーションを自動的に実行する（ステップ６２４）。その後、プロセスは終了となる。
【００９４】
次に図１０を参照すると、例示的な実施形態に基づく、最適なロード戦略を選択するためのプロセスを示す流れ図が示されている。図１０に示されたプロセスは、例えば図１のオフロード・マネージャ・サーバ１０８または図２のデータ処理システム２００などのコンピュータ内で実施することができる。
【００９５】
このプロセスは、コンピュータが、ソースＤＢＭＳをヒットしているワークロードと、ソースＤＢＭＳ上でワークロードをランすることに対応するコストと、ワークロードによって参照されているテーブルと、ワークロードによって参照されているテーブルであって、ターゲットＤＢＭＳにオフロードされるテーブルの資格に関する情報を収集する（ステップ７０２）ときに始まる。コンピュータはさらに、ターゲットＤＢＭＳにオフロードされる資格を有するテーブルのサイズを取得する（ステップ７０４）。さらに、コンピュータは、ターゲットＤＢＭＳにオフロードされる資格を有するテーブルの変更率を評価する（ステップ７０６）。
【００９６】
ターゲットＤＢＭＳにオフロードされる資格を有するテーブルのサイズおよび変更率を使用して、コンピュータは、データのサブセットをターゲットＤＢＭＳにロードすることに対応する全ＣＰＵコストと、１つまたは複数のロード戦略からなるロード戦略のセットに基づいてターゲットＤＢＭＳ上で１つまたは複数のワークロードを実行することに対応するワークロード節減コストとを決定する（ステップ７０８）。コンピュータは、全ＣＰＵコストを、ロード戦略のセットの中のそれぞれのロード戦略のワークロード節減コストと比較する（ステップ７１０）。
【００９７】
コンピュータは、全ＣＰＵコストをそれぞれのロード戦略のワークロード節減コストと比較したことに基づいて、ロード戦略のセットから最適なロード戦略を選択する（ステップ７１２）。次いで、コンピュータは、１つまたは複数のワークロードの加速された実行のために、選択した最適なロード戦略に従って、ターゲットＤＢＭＳへのデータのサブセットのロードを自動的に実施する（ステップ７１４）。その後、プロセスは終了となる。
【００９８】
次に図１１を参照すると、例示的な実施形態に基づく、テーブル・アクセス頻度をメモリおよびＣＰＵ節減コストにマップするためのプロセスを示す流れ図が示されている。図１１に示されたプロセスは、例えば図１のオフロード・マネージャ・サーバ１０８または図２のデータ処理システム２００などのコンピュータ内で実施することができる。
【００９９】
このプロセスは、コンピュータが、ターゲットＤＢＭＳ上でランしているワークロードのセットと、ターゲットＤＢＭＳ上でそれぞれのワークロードをランすることに関連したコストとに関する情報を収集する（ステップ８０２）ときに始まる。さらに、コンピュータは、ターゲットＤＢＭＳ内のテーブルのセットのサイズと、セットの中のそれぞれのテーブルに関連した参照カウントであり、ワークロードのセットによる使用に基づく参照カウントとを取得する（ステップ８０４）。さらに、コンピュータは、ターゲットＤＢＭＳ内のテーブルのセットの中のそれぞれのテーブルについて、ワークロードのセットによるテーブル・アクセスの頻度を評価する（ステップ８０６）。
【０１００】
その後、コンピュータは、ワークロードのセットによって参照されているそれぞれのテーブルに関連したテーブル・アクセスの頻度を、アクセスの頻度が最小限またはゼロであるテーブルをターゲットＤＢＭＳから削除することに関連したメモリおよびＣＰＵ節減コストにマップして、テーブル削除候補を識別する（ステップ８０８）。次いで、コンピュータは、メモリ使用を低減させ、ターゲットＤＢＭＳ上でのワークロード・パフォーマンスを増大させるために、このマップに基づいて、識別されたテーブル削除候補をターゲットＤＢＭＳから自動的に削除する（ステップ８１０）。その後、プロセスは終了となる。
【０１０１】
このように、本発明の例示的な実施形態は、ターゲット・データベース管理システムによって使用されるコンピュータ・メモリおよび中央処理ユニット・リソースを最適化してワークロード・パフォーマンスを増大させるための、コンピュータ実施方法、コンピュータ・システム、およびコンピュータ・プログラム製品を提供する。本発明のさまざまな実施形態の説明は、例示のために提示されたものであり、網羅的であることも、開示された実施形態に限定されることも意図されていない。当業者には、記載された実施形態の趣旨を逸脱しない多くの修正および変更が明白となろう。本明細書で使用されている用語は、実施形態の原理、実際的な用途または市場に出ている技術に優る技術的改良を最もよく説明するため、または本明細書に開示された実施形態を当業者が理解することを可能にするために選択されたものである。
【図１】
2021521507.tif 000003
【図２】
2021521507.tif 000004
【図３】
2021521507.tif 000005
【図４】
2021521507.tif 000006
【図５】
2021521507.tif 000007
【図６】
2021521507.tif 000008
【図７】
2021521507.tif 000009
【図８】
2021521507.tif 000010
【図９】
2021521507.tif 000011
【図１０】
2021521507.tif 000012
【図１１】
2021521507.tif 000013
【手続補正書】
【提出日】令和3年7月14日(2021.7.14)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
ワークロード・パフォーマンスを増大させ、リソース使用を低減させるために、ソース・データベース管理システム（ソースＤＢＭＳ）からターゲットＤＢＭＳにデータのセットをロードするためのコンピュータ実施方法であって、前記コンピュータ実施方法が、
コンピュータによって、
前記ターゲットＤＢＭＳにオフロードされる資格を有するテーブルのサイズおよび変更率を使用して、前記データのセットを前記ターゲットＤＢＭＳにロードすることに対応する全ＣＰＵコストと、複数のロード戦略からなるロード戦略のセットに基づいて前記ターゲットＤＢＭＳ上でワークロードを実行することに対応するワークロード節減コストとを決定すること、
前記全ＣＰＵコストを、前記ロード戦略のセットの中のそれぞれのロード戦略の前記ワークロード節減コストと比較すること、
前記全ＣＰＵコストをそれぞれのロード戦略の前記ワークロード節減コストと比較したことに基づいて、前記ロード戦略のセットから最適なロード戦略を選択すること、ならびに
選択した前記最適なロード戦略に従って、前記ソースＤＢＭＳから前記ターゲットＤＢＭＳに前記データのセットを自動的にロードすること
を含む、コンピュータ実施方法。
【請求項２】
前記コンピュータによって、前記ソースＤＢＭＳをヒットしているワークロードと、前記ソースＤＢＭＳ上で前記ワークロードをランすることに対応するコストと、前記ワークロードによって参照されているテーブルと、前記ワークロードによって参照されている前記テーブルであって、かつ前記ターゲットＤＢＭＳにオフロードされる前記テーブルの資格（エリジビリティ）に関する情報を収集すること、
前記コンピュータによって、前記ターゲットＤＢＭＳにオフロードされる資格を有するそれぞれの前記テーブルのサイズを取得すること、および
前記コンピュータによって、前記ターゲットＤＢＭＳにオフロードされる資格を有するそれぞれの前記テーブルの変更率を評価すること
をさらに含む、請求項１に記載のコンピュータ実施方法。
【請求項３】
前記コンピュータによって、前記ターゲットＤＢＭＳ上でランしているワークロードのセットと、前記ターゲットＤＢＭＳ上でそれぞれのワークロードをランすることに関連したコストとに関する情報を収集すること、
前記コンピュータによって、前記ターゲットＤＢＭＳ内のテーブルのセットのサイズと、前記セットの中のそれぞれのテーブルに関連した参照カウントであって、前記ワークロードのセットの使用に基づく前記参照カウントとを取得すること、
前記コンピュータによって、前記ターゲットＤＢＭＳ内の前記テーブルのセットの中のそれぞれのテーブルについて、前記ワークロードのセットによるテーブルアクセスの頻度を評価すること、
前記コンピュータによって、前記ワークロードのセットによって参照されているそれぞれのテーブルに関連したテーブルアクセスの前記頻度を、アクセスの頻度が最小限またはゼロであるテーブルを前記ターゲットＤＢＭＳから削除することに関連したＣＰＵ節減コストにマップして、テーブル削除候補を識別すること、ならびに
メモリ使用を低減させ、前記ターゲットＤＢＭＳ上でのワークロード・パフォーマンスを増大させるために、前記コンピュータによって、識別された前記テーブル削除候補を前記ターゲットＤＢＭＳから自動的に削除すること
をさらに含む、請求項１または２に記載のコンピュータ実施方法。
【請求項４】
前記コンピュータによって、ソースＤＢＭＳから、前記ソースＤＢＭＳ上でランしているワークロードと、前記ソースＤＢＭＳ上で前記ワークロードをランすることに関連したコストとに関する情報を収集すること、
前記コンピュータによって、収集した前記情報を使用して、前記ワークロードによって参照されているテーブルのセットを識別すること、
前記コンピュータによって、前記テーブルのセットからテーブルを選択すること、および、
前記コンピュータによって、選択した前記テーブルが前記ターゲットＤＢＭＳ内に位置するかどうかを判定すること
をさらに含む、請求項１に記載のコンピュータ実施方法。
【請求項５】
選択した前記テーブルが前記ターゲットＤＢＭＳ内に位置しないと前記コンピュータが判定したことに応答して、前記コンピュータによって、前記ソースＤＢＭＳのカタログテーブルを参照することにより、選択した前記テーブルにロードするデータ量を決定すること、
前記コンピュータによって、選択した前記テーブルに前記データ量をロードすることのＣＰＵコスト値を計算すること、および
前記コンピュータによって、計算した前記ＣＰＵコスト値の分だけＣＰＵコスト・カウンタを増分すること
をさらに含む、請求項４に記載のコンピュータ実施方法。
【請求項６】
前記コンピュータによって、前記ターゲットＤＢＭＳ上の前記テーブルのセットにデータをロードすることの全ＣＰＵコストを、前記ＣＰＵコスト・カウンタに基づいて決定すること、
前記コンピュータによって、前記ターゲットＤＢＭＳ上の前記テーブルのセットに前記データをロードすることの前記全ＣＰＵコストを、前記ターゲットＤＢＭＳ上で前記ワークロードをランすることのワークロード節減コストと比較すること、
前記コンピュータが前記全ＣＰＵコストを前記ワークロード節減コストと比較したことに応答して、前記コンピュータによって、前記全ＣＰＵコストが前記ワークロード節減コストよりも大きいかどうかを判定すること、および
前記全ＣＰＵコストが前記ワークロード節減コストよりも小さいと前記コンピュータが判定したことに応答して、前記コンピュータによって、前記ターゲットＤＢＭＳ内の前記テーブルのセットに前記データをロードするよう推奨する推奨ロード戦略を生成すること
をさらに含む、請求項５に記載のコンピュータ実施方法。
【請求項７】
選択した前記テーブルが前記ターゲットＤＢＭＳ内に位置すると前記コンピュータが判定したことに応答して、前記コンピュータによって、選択した前記テーブル上で増分更新が使用可能であるかどうかを判定すること、
選択した前記テーブル上で増分更新が使用可能でないと前記コンピュータが判定したことに応答して、前記コンピュータによって、選択した前記テーブルがパーティション化されているかどうかを判定すること、
選択した前記テーブルがパーティション化されていると前記コンピュータが判定したことに応答して、前記コンピュータによって、選択した前記テーブルのパーティション・リロードのＣＰＵコスト値を計算すること、および
前記コンピュータによって、選択した前記テーブルの前記パーティション・リロードの計算した前記ＣＰＵコスト値の分だけＣＰＵコスト・カウンタを増分すること
をさらに含む、請求項４に記載のコンピュータ実施方法。
【請求項８】
選択した前記テーブルがパーティション化されていないと前記コンピュータが判定したことに応答して、前記コンピュータによって、選択した前記テーブルの全体をリロードすることのＣＰＵコスト値を計算すること、および
前記コンピュータによって、選択した前記テーブルの全体をリロードすることの計算した前記ＣＰＵコスト値の分だけ前記ＣＰＵコスト・カウンタを増分すること
をさらに含む、請求項７に記載のコンピュータ実施方法。
【請求項９】
選択した前記テーブル上で増分更新が使用可能であると前記コンピュータが判定したことに応答して、前記コンピュータによって、選択した前記テーブルに対応するリアルタイム統計データを収集すること、
前記コンピュータによって、選択した前記テーブルが現在もなお、選択した前記テーブルに対応する収集した前記リアルタイム統計データに基づく増分更新の資格を有しているかどうかを判定すること、
選択した前記テーブルが現在は、収集した前記リアルタイム統計データに基づく増分更新の資格を有していないと前記コンピュータが判定したことに応答して、前記コンピュータによって、選択した前記テーブルの前記増分更新を停止すること、
前記コンピュータによって、選択した前記テーブルの現在までの前記増分更新に対する現在のＣＰＵコスト値を計算すること、および
前記コンピュータによって、選択した前記テーブルの現在までの前記増分更新に対する計算した前記現在のＣＰＵコスト値の分だけ前記ＣＰＵコスト・カウンタを増分すること
をさらに含む、請求項７または８に記載のコンピュータ実施方法。
【請求項１０】
選択した前記テーブルが現在もなお、収集した前記リアルタイム統計データに基づく増分更新の資格を有していると前記コンピュータが判定したことに応答して、前記コンピュータによって、選択した前記テーブルの前記増分更新を継続すること、
前記コンピュータによって、選択した前記テーブルの現在までの前記増分更新に対する前記現在のＣＰＵコスト値を計算すること、および
前記コンピュータによって、選択した前記テーブルの現在までの前記増分更新に対する計算した前記現在のＣＰＵコスト値の分だけ前記ＣＰＵコスト・カウンタを増分すること
をさらに含む、請求項９に記載のコンピュータ実施方法。
【請求項１１】
前記コンピュータによって、前記ターゲットＤＢＭＳにロードされたテーブルを、それぞれのテーブルに対応するワークロード・ヒット数に関して評価すること、
前記コンピュータが前記テーブルを評価したことに応答して、前記コンピュータによって、いずれかの前記テーブルが、しきいワークロード・ヒット数よりも小さいワークロード・ヒット数を有するかどうかを判定すること、および
前記テーブルのうちの１つまたは複数のテーブルが、前記しきいワークロード・ヒット数よりも小さいワークロード・ヒット数を有すると前記コンピュータが判定したことに応答して、前記コンピュータによって、前記しきいワークロード・ヒット数よりも小さいワークロード・ヒット数を有するテーブルのリストを生成すること
をさらに含む、請求項１に記載のコンピュータ実施方法。
【請求項１２】
前記コンピュータによって、テーブル削除リストの中のテーブルを前記ターゲットＤＢＭＳから削除することによる全メモリおよびＣＰＵ節減コストを計算すること、
前記コンピュータによって、前記全メモリおよびＣＰＵ節減コストを用いて、前記ターゲットＤＢＭＳに対するテーブル削除レコメンデーションを生成すること、ならびに
前記コンピュータによって、前記テーブル削除レコメンデーションを自動的に実行すること
をさらに含む、請求項１１に記載のコンピュータ実施方法。
【請求項１３】
特定のテーブルに対する決定されたワークロード節減コストが、前記特定のテーブルの予測される将来の照会を含む、請求項１ないし１２のいずれかに記載のコンピュータ実施方法。
【請求項１４】
請求項１ないし１３のいずれかに一項に記載のコンピュータ実施方法を実施するコンピュータ。
【請求項１５】
請求項１ないし１３のいずれか一項に記載のコンピュータ実施方法をコンピュータに実施させるためのプログラム。
【請求項１６】
請求項１５に記載のプログラムを記憶した記憶媒体。
【国際調査報告】
2021521507.tif 000014
2021521507.tif 000015