(57)【特許請求の範囲】
【請求項１】
データベースの移行において、コンピュータを、
移行元データベースに含まれるユーザの表データについて移行先データベースへ移行するに必要なメモリ量を予め前記表データに含まれる所定数データの移行に必要なメモリ量の実測により得られる近似の２次曲線から算定する手段と、
前記表データの移行に対して予め割り当てられた所定の限界メモリ使用量を基準に前記表データの分割の要否を判定する手段と、
前記表データのうち分割が必要と判定された表データを略前記限界メモリ使用量となるいくつかの移行セグメントと前記限界メモリ使用量に満たないセグメントとに分割してさらに複数の前記限界メモリ使用量に満たないセグメントを組み合わせて略前記限界メモリ使用量となる並行移行セグメントを構成する手段として機能させる表データ移行プログラム。
【請求項２】
請求項１に記載の表データ移行プログラムにおいて、前記移行セグメント及び前記並行移行セグメントの移行時間を予め前記表データに含まれる所定数のデータの移行に必要な移行時間を実測することにより得られる近似の２次曲線から算定する手段としてコンピュータを機能させる表データ移行プログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、データベースの移行支援機能に関する。
【０００２】
【従来の技術】
データベースは、データベースの管理情報が格納された管理情報登録ファイル、データベースの表に関する定義情報が格納された表定義情報ファイル、データ値の構成のバージョン管理をする構成管理情報ファイル、表データの格納されているデータファイル等から構成されている。
【０００３】
一般に、移行前のデータベースと移行後のデータベースとでは、情報の持ち方が異なり、データベースの移行は、ディスクからディスクへの単なるコピーではできないことが多い。データベースの移行は、通常、市販のデータベース・サーバ・プログラムに含まれている、あるいは、オプションとして用意されているデータベース移行専用プログラムを使って行われていた。
【０００４】
一般に、管理情報登録ファイル、表定義情報ファイル、構成管理情報ファイル等は、前記データベース移行専用プログラムにより移行されるか、又は、必要に応じて、新規に作成される。
一方、ユーザが作成した表データの移行は、前記データベース移行専用プログラムにより図２に示すフローチャートに従って行われていた。具体的な例として、例えば、前記データベース・サーバ・プログラムとデータベース移行専用プログラムがインストールされ実行可能な処理装置と、これらに関連づけられた移行元データベースＰおよび移行先データベースＱにおいて、データベースＰ内にある表データを、移行先データベースＱに移行する場合について示す。図１１のように、移行元データベースＰ内には２つの表、部署テーブルとユーザテーブルがある。部署テーブルには１万件の部署名とこれらに対応した部署コードが記載されている。また、ユーザテーブルには１０万件のユーザ名とこれらに対応した部署コードが記載されている。これら２つの表に示されているデータを元に、移行先データベースＱ内に図１２に示すような部署ユーザテーブルの作成を伴う表データの移行を説明する。ここで、図１１及び図１２の備考欄の件数の記述は、説明のために追加したものである。データベース移行処理装置（図示省略）に接続されたモニター画面、キーボード、マウス等（共に図示省略）により、例えば、データベース・サーバ・プログラムの初期画面（図示省略）からデータベース移行専用プログラムを選択して起動を指示し、画面に従って必要な事項の指示入力をすると、図２のフローチャートに示すごとく、まず、移行元データベースＰの部署テーブルから部署名と部署コードのデータを全件（１万件）抽出し、前記データベース移行処理装置のメインメモリに一時保持させる。次に、前記メインメモリから部署名と部署コードが順次取り出され、部署コードに該当する部署に所属するユーザ名がユーザテーブルから抽出される。さらに、抽出されたユーザ名の分だけ、部署名、部署コード、ユーザ名のデータセットが作成され、前記メインメモリに一時保持される（Ｓ２０１）。ここで、編集・加工要否判定（Ｓ２０２）がＮ、すなわち必要でなく、編集・加工（Ｓ２０３）をしない場合には、以上の処理を全データについて終了した時点で、前記メインメモリに保持されていた前記データセットが移行先データベースＱの部署ユーザテーブルデータとしてデータベースＱに転送される（Ｓ２０４）。前述の例の場合、データの抽出は、１つの部署毎に所属するユーザが抽出されるため、部署データの件数分、すなわち１万回行われる。ここでは、図１１の部署コード１万件についての抽出がされたが、もし、図１１にある１０万名の各ユーザ毎のデータを抽出する必要がある場合には、１０万回の抽出が行われることになる。さらに、１００万名のユーザのデータが存在する場合には、より多くのデータベース移行処理装置のメモリと、処理時間が必要となる。このように、一口に表データの移行といっても、データ抽出及びコンピュータのメモリへのデータの保持の内容は様々である。前述の例では、部署テーブルのデータは最初に全件抽出されてコンピュータのメモリに保持されるが、ユーザテーブルのデータは１０万回に分けて抽出される。また、ユーザ毎の抽出の場合には１回あたりに抽出される件数は少ないが、抽出対象となる母体件数が増えると、これに必要なコンピュータのメモリ量は増大する。さらに、前述の例では例示しなかったが、この後のデータの編集・加工が必要な場合にはさらにデータ抽出が必要になる場合もある（Ｓ２０３）。ここで、編集・加工とは、必要に応じ、例えば、あるデータに対して計算処理を行なったり、あるいは複数の表データを参照して結合を行う編集・加工を行なうことであり、この後に、得られたデータセットが移行先データベースへ転送される（Ｓ２０４）。
【０００５】
実際のデータベースの移行において、移行元データベースにある表データが何種類もあり、しかも、これら表データの中に含まれるデータ件数が、例えば、数十万件といったデータを移行する場合は、データ抽出とコンピュータのメモリへの保存、および、その後の編集・加工において、コンピュータは多量のメモリを必要とし、特に、コンピュータのメインメモリ領域に不足が生じると、ページングの発生により抽出速度が急激に落ちたり、場合によっては、処理の中断、コンピュータ・システムのハングアップといった現象が生ずる。
【０００６】
このような現象が発生するのを防ぐため、抽出前に移行の対象となる表データに含まれるデータ件数を見て、経験的に表データを分割してから移行処理させたり、逆にまた、データ件数の少ない表データについては、移行処理を効率的に行うために、例えば、移行処理装置に搭載した市販のメモリ監視ツールによりメインメモリ使用率やＣＰＵ負荷率の監視を行ないながら、移行中に他の表データのデータ移行を追加指示し、並行させて移行処理する並行移行といった方法が取られていた。このような経験的な方法により表データの分割、並行移行を行った場合には、コンピュータのメモリ不足をきたらして処理が中断したり、場合によっては、コンピュータがハングアップして、表データの移行を再度やり直したり、逆に、安全を見すぎて、移行時間が不必要に長くかかるという問題が生じていた。
【０００７】
【発明が解決しようとする課題】
本発明は、表データの移行に先立って移行元データベース内の表データ毎にコンピュータのメモリ使用量に関する精度の高い算定結果を得、さらに、前記算定結果を基に前記表データを分割して移行したり、他の表データと組み合わせて移行することにより、移行中にコンピュータのメモリ不足による処理の中断やハングアップの発生を回避し、逆に、安全を見すぎて移行時間が不必要に長くかかるという問題を解決することを目的とする。
【０００８】
【課題を解決するための手段】
第一の発明は、データベースの移行において、コンピュータを、移行元データベースに含まれるユーザの表データについて移行先データベースへ移行するに必要なメモリ量を予め前記表データに含まれる所定数データの移行に必要なメモリ量の実測により得られる近似の２次曲線から算定する手段と、前記表データの移行に対して予め割り当てられた所定の限界メモリ使用量を基準に前記表データの分割の要否を判定する手段と、前記表データのうち分割が必要と判定された表データを略前記限界メモリ使用量となるいくつかの移行セグメントと前記限界メモリ使用量に満たないセグメントとに分割してさらに複数の前記限界メモリ使用量に満たないセグメントを組み合わせて略前記限界メモリ使用量となる並行移行セグメントを構成する手段として機能させる表データ移行プログラムである。
【０００９】
本発明の表データ移行プログラムは、図４のサンプルデータ件数移行処理フローチャートに示すように、移行に先立って、移行する表データ毎に所定のサンプルデータ件数だけ、表データからの移行を図５に示す実際の移行と同じプロセスでコンピュータに実行させる。サンプルデータ件数の移行処理が開始されると、本発明の表データ移行プログラムは、コンピュータに図３のフローチャートに示す所定のデータ件数に対するコンピュータのメモリ使用量（以降、メモリ使用量と略す）を実測する指示をし、データ件数に対するメモリ使用量の関係を求める近似式を計算させる。ここでメモリとは、コンピュータのメインメモリあるいは、これに代わるメモリを指す。また、メモリ使用量の実測値は、図４に示すフローの初めから終わりまでの間において実測した最大値を指す。
【００１０】
データ件数に対するメモリ使用量の関係は、単純な直線で近似できるような場合もあるが、実際には曲線となる。これは、１つの表データに関して１件毎の抽出、編集・加工の内容を同じとすると、件数が増えても処理量は件数に比例すると考えられるが、例えば、１件毎の処理に伴い、後の処理では先に行った処理の結果に対する処理も加わり、関連する表からのデータ抽出や編集・加工量が加速度的に増える場合がある。このように、データ件数とメモリ使用量の関係は、経験的に２次式で近似できる。また、後述するデータ件数と移行に要する所要時間も同様に２次式で近似できる。このため、本発明の表データ移行プログラムは、サンプルデータ件数として３種類を指定するようになっている。
【００１１】
コンピュータは、１つの表データに対して、それぞれ３種類のサンプルデータ件数について図４のサンプルデータ件数移行処理フローチャートに従ってデータ件数の異なる３種類の移行を繰り返し、データ件数に対するメモリ使用量を実測する。そして、各々の表データを移行するに必要なメモリ使用量とデータ件数との近似の関係式を求めて、コンピュータのメモリの一部に保持する。そして、前記近似式を基に本発明の表データ移行プログラムは、移行する表データ毎に、コンピュータの所定の限界メモリ量を使用した場合に移行できる最大データ件数を各表データ毎にコンピュータに算定させる。これらの算定結果から本発明の表データ移行プログラムは、コンピュータに各表データ毎に移行できる最大データ件数と表データに含まれる件数とを比較させ、各表データを一括して移行できるか又は複数のセグメントに分割して移行するかを判定させる。ここで、複数のセグメントに分割するというのは、表データ毎に所定の限界メモリ量を使用して移行できる最大データ件数を含むセグメントと、所定の限界メモリ量を使用して移行できる最大データ件数に満たない、言わば端数のデータ件数を含むセグメントとに分割することである。
【００１２】
このように、各表データは、コンピュータの所定の限界メモリ使用量以下で一括して移行できるデータ件数から成る表データか、又は一括して移行できないため複数のセグメントに分割される表データとに分類される。これら各表データとセグメントに関する情報はコンピュータのメモリの一部に記憶される。さらに、分割する必要がないと判定された端数データ件数を含む表データのセグメントと、分割された表データのセグメントのうち単一では所定の限界メモリ使用量に満たない端数のデータ件数を含むセグメントは、所定の限界メモリ使用量以下となるように組み合わされて並行して移行される。このため、あるセグメントは、そのセグメントのままで、また、あるセグメントは、必要に応じてさらに分割されて他のセグメントとともに並行移行される。表データが分割されたときの最大データ件数を含むセグメントは、移行に際し単独で所定の限界メモリ使用量を必要とするセグメントであり、移行セグメントと呼ぶ。また、複数のセグメントが所定の限界メモリ使用量以下に組み合わされ並行して移行処理されるセグメントを並行移行セグメントと呼ぶ。図１の移行処理装置２内のメモリ（図示省略）の一部にセグメント情報１１として保持されている前記メモリ使用量とデータ件数との関係を示す近似式を元に、さらに各表データ毎に１件のデータに対して必要な移行処理装置２内のメモリ使用量を算出しておき、例えば、図１のデータファイル７に含まれた各表データの番号の若い順から移行のためのセグメントを構成する。図１のデータファイル７における表１データは、一括して移行できる以上のデータ件数をもっているため、２つのセグメント００１と００２に分割する。ここでは、セグメント００１は、同時に移行処理できる最大データ件数をもつ移行セグメントである。次に、セグメント００２は、このままのデータ量では移行処理装置２の所定の限界メモリ使用量に満たないため、次の表２データの中のデータをセグメント００２に分配する。これにより、セグメント００２はちょうど移行処理装置２の所定の限界メモリ使用量のデータ量となったため、１つのセグメントとされる。次の表３データに含まれるデータは、新たなセグメント００３に組み込まれ、ちょうど移行処理装置２の所定の限界メモリ使用量に達した場合、セグメント００３は、１つの移行セグメントとして構成される。以上のようにして移行セグメントセット１３が構成される。ここで、前述のようにセグメント００２は表１データと表２データのデータを含んでおり、２種類にわたる表データのデータを含んで並行移行が行われるセグメントの例である。移行セグメントセット１３は、最終的に移行先ＤＢ３へ転送する００１からｋまでの各セグメントから構成されるセグメントの組を表わしている。また、上記のようにセグメント情報１１を基に前記移行セグメントセット１３を構成することをセグメント化と呼び、図１に示されるセグメント化処理１２において、セグメント情報１１に従って移行するためのセグメントを構成し、移行セグメントセット１３がつくられる。そして、これらセグメントに関する情報もセグメント情報１１に記憶される。
【００１３】
さらに、第二の発明は、第一の発明に記載の表データ移行プログラムにおいて、前記移行セグメント及び前記並行移行セグメントの移行時間を予め前記表データに含まれる所定数のデータの移行に必要な移行時間を実測することにより得られる近似の２次曲線から算定する手段としてコンピュータを機能させる表データ移行プログラムである。本発明の表データ移行プログラムは、移行する表データ毎に所定のデータ件数を図４に示すサンプル件数データ移行処理フローチャートに従ってコンピュータに移行させる。ここで、前記表データ移行プログラムには、図４におけるサンプルデータ件数移行処理フローの移行時間の測定を指示する関数が埋め込まれている。移行する表データ毎に３種類の所定サンプルデータ件数を移行するに必要な移行時間とデータ件数との関係を実測することにより、前記移行時間とデータ件数との関係を二次関数の曲線で近似して求め、求めた近似式を、図１に示すコンピュータである移行処理装置２内のメモリの一部にセグメント情報１１として保持させる。図１において、移行セグメントセット１３に記載された各セグメント毎の移行に要する時間を、前記近似式を使って算定するよう前記表データ移行プログラムの指示によりコンピュータが求める。
【００１４】
【発明の実施の形態】
本発明の実施の形態について図面を参照して詳細に説明する。図１は、本発明の実施の形態１の全体構成図を示す。移行元ＤＢ１は、移行元のデータベースであり、コンピュータである移行処理装置２に接続されている。また、移行先ＤＢ３は、移行元ＤＢ１の移行先であり、移行処理装置２に接続されている。
【００１５】
移行元ＤＢの内容４は、移行元ＤＢ１に含まれる内容を示しており、これらは移行処理装置２にインストールされているＤＢ移行プログラム８により移行先ＤＢ３へ移行される。ＤＢ移行プログラム８は、データベース移行専用プログラム９と本発明による表データ移行プログラム１０とで構成されている。これら２つのプログラムは、本実施例においては、それぞれ独立したプログラムであるが、表データ移行プログラム１０は、データベース移行専用プログラム９の中に１モジュールとして組み込まれていても構わない。ＤＢ管理情報ファイル５とＤＢ定義情報ファイル６は、データベース移行専用プログラム９により移行されるか又は必要に応じて新規に作成される。一方、データファイル７は、表データ移行プログラム１０により移行される。
【００１６】
はじめに、ＤＢ管理情報ファイル５、ＤＢ定義情報ファイル６の移行について説明する。ＤＢ管理情報ファイル５には、管理情報登録ファイルや構成管理情報ファイルといったファイルが、また、ＤＢ定義情報ファイル６には表定義情報ファイルが含まれている。また、データベース移行専用プログラム９は、本実施例では、市販のデータベース・サーバ・プログラム（図示省略）に含まれているデータベース移行専用プログラムである。データべース移行専用プログラム９は、移行処理装置２に接続されたディスプレイ、マウス、キーボード等（共に図示省略）からの指示入力により、ＤＢ管理情報ファイル５、ＤＢ定義情報ファイル６の内容を必要に応じて他のファイルと関連を保ちながら、それぞれ移行先ＤＢ３へ移行していく。まず、データべース移行専用プログラム９を起動する指示入力により、前記ディスプレイ上に移行開始画面が表示される（図示省略）。表示画面に従って、各ファイルの移行先ディレクトリまたはフォルダほか必要な項目について指定をし、移行の実行を指示することにより、移行先ＤＢ３へ移行される。
【００１７】
次に、表データの移行について説明する。データファイル７には、表１データから表ｎデータがあり、各表データの関係情報、バージョン情報等は、すべてＤＢ管理情報５、ＤＢ定義情報６に収められている。表データの移行は、大別すると二段階になっている。第一段階は、図１に示す移行元ＤＢ１のデータファイル７から移行セグメントセット１３を作成する段階、第二段階は、移行セグメントセット１３に基づいてデータファイル７を移行先ＤＢ３へ移行する段階である。
【００１８】
第一段階は、表データ移行プログラム１０が、図１の移行処理装置２がもつメモリ量の許容範囲内でデータファイル７内の各表データを分割または組み合わせて移行するために、移行セグメントセット１３に示すＫ個のセグメント（００１〜Ｋ）を構成するセグメントの情報をセグメント情報１１に作成する。セグメント情報１１に作成された情報の例を図８、図９に示す。図８は、図１における移行セグメントセット１３の中のセグメント００１には、表１データの１番目から３２３４００９番目迄のデータが所属データファイル名、所属データ内レコード番号と共に記録されていることを示している。同様に、図９は、セグメント００２には表１データの３２３４０１０番目から４２１００３０番目までのデータがセグメント００２のセグメント内レコード番号００００００１から０９７６０２１として、さらに続けてレコード番号０９７６０２２から４２８６１４２として、表２データの００００００１番目から３３１０１２１番目までのデータが所属データファイル名、所属データ内レコード番号と共に記録されている。図８、図９に示すごとく、セグメント情報１１には、図１の移行セグメントセット１３の中の各セグメントに含まれるレコード単位のデータが、どの表データ番号（表１データ〜表ｎデータ）の中のどのレコードにあったものかが記録されている。
【００１９】
表データ移行プログラム１０により作成されるセグメント情報について説明する。図４に示すサンプルデータ件数移行処理フローチャートに従って、表データ移行プログラム１０は移行処理装置２に各表データのサンプルデータ件数を抽出させ、これらサンプルデータの移行処理を移行処理装置２が実行する中で、図３に示す各実測値を得て、分割要否の判定を移行処理装置２に行わせてセグメント情報を作成する。図３は、本発明の表データ移行プログラム１０によるセグメント情報作成フローチャートである。表データ移行プログラム１０の実行開始を移行処理装置２へ指示入力すると、例えば、移行処理装置２に接続されたディスプレイに初期画面として２つの選択メニュー「セグメント情報作成」と「表データの移行」メニューが表示される（図示省略）。「セグメント情報作成」メニューを選択して次のメニュー画面で対象とする表データの指定において、移行元ＤＢ１の中のデータファイル７にある全てのファイルを指定して実行を指示すると図３、図４のフローに示す処理が開始され、サンプルデータ件数移行処理と共にセグメント情報作成が開始される。
【００２０】
はじめに、図１のデータファイル７にある各表データ（表１データから表ｎデータ）毎に移行データ件数と移行処理装置２のメモリ使用量との関係が求められる。図４のフローチャートに従って移行元ＤＢ１のデータファイル７の各々の表データに対し、所定の３種類のサンプルデータ件数（Ｘ1，Ｘ2，Ｘ3）を各表データの頭から抽出して、これらのデータ件数を処理するに必要なメモリ使用量（Ｙ1，Ｙ2，Ｙ3）および移行時間（Ｔ1，Ｔ2，Ｔ3）を実測する命令が表データ移行プログラム１０により移行処理装置２に対して行われる。移行処理装置２が抽出して実測するサンプルのデータ件数は、例えば、（１００件，１０００件，１００００件）の３種類と決めてある。ここで、表データがデータ件数１０，０００件未満のデータ件数しか含まない場合は、１０件、１００件、１，０００件のデータ件数、又は、１件，１０件，１００件という各３種類のデータ件数による測定をするようにプログラムされている。本発明の表データ移行プログラム１０は、前記実測を行うために各々の表データから、１００件、１，０００件、１０，０００件を順次表データの頭からデータ抽出指示を行い、移行処理装置２は、図４のフローチャートに示すプロセスを実行する。さらに、表データ移行プログラム１０には、データ移行におけるメモリ使用量と図４のフロー全体における移行時間の測定を指示する関数が埋め込まれており、移行処理装置２は、前記サンプルデータ件数に対してメモリ使用量および移行時間の実測を行う（Ｓ３０１）。
【００２１】
図６には、各表データにつき各々サンプルデータ件数がＸ1＝１００件、Ｘ2＝１，０００件、Ｘ3＝１０，０００件の場合の表データからの移行時におけるメモリ使用量がそれぞれＹ1、Ｙ2、Ｙ3メガバイト（ＭＢ）である例を示す。表データ移行プログラム１０により、移行処理装置２は、近似の２次曲線Ｙ＝ａＸ2＋ｂＸ＋ｃの定数ａ，ｂ，ｃを算出結果として得る（Ｓ３０２）。
【００２２】
また、図７には、データ件数がＸ1＝１００件、Ｘ2＝１，０００件、Ｘ3＝１０，０００件のデータ件数に対する図４のフローに示す移行処理に要する時間の実測値が、それぞれＴ1、Ｔ2、Ｔ3秒である例を示す。表データ移行プログラム１０により、移行処理装置２は近似の２次曲線Ｔ＝ｄＸ2＋ｅＸ＋ｆの定数ｄ，ｅ，ｆを算出結果として得る（Ｓ３０３）。
【００２３】
図６において、ＹP（限界メモリ使用量）はメモリ使用量の限界を示し、例えば、移行処理装置２が前記移行処理以外に必要なメモリ使用量を加味して、移行処理に使用できるメモリ量を全体の８０％と設定したときに対応するメモリ量である。移行処理装置２は、表データ移行プログラム１０の指示によりＹPに対応するデータ件数ＸPを算出する。ＸP（一括移行可能データ件数）は、表データ毎に一括して移行できる最大データ件数を表す（Ｓ３０４）。つぎに、表データ移行プログラム１０は表データ毎に一括移行可能か分割して移行するかを決めるため、移行処理装置２に各表データ毎に分割の要否を判定させる（Ｓ３０５）。すなわち、Ｘ0＝ｍＸP＋Ｘrにおいて、Ｘ0は、表データ毎に存在する全データ件数であり、ｍは、ｍ＝０または正の整数である。従って、ｍが０の場合は一括して移行できるデータ量であり分割は不要、ｍが１以上の場合は、ｍ個の一括移行可能データ件数ＸPを含んだセグメント及び１つの端数データ件数Ｘrを含むセグメントに分割される（Ｓ３０５，Ｓ３０６）。また、表データ毎の端数データ件数Ｘrを含むセグメントの表データ移行におけるメモリ使用量は、表データ毎のＹr＝ａＸr2＋ｂＸr＋ｃから算定される。次に、これら端数データ件数Ｘrを含むセグメント個々のメモリ使用量に対し、限界メモリ使用量ＹPに対するメモリ使用率α＝メモリ使用量÷限界メモリ使用量ＹPを移行処理装置２により求める（Ｓ３０７）。ここで、メモリ使用率αは、異なる表データの端数データ件数Ｘrを含むセグメントを集め、実際に移行するための移行セグメントセット１３の中の並行移行セグメントを編成するのに必要となる値である。Ｓ３０５とＳ３０６から表データ毎の一括移行可能データ件数ＸPを含むセグメントと、端数データ件数Ｘrを含むセグメントに分けられるので、一括移行可能データ件数ＸPを含むセグメントはそのまま移行セグメントとし、端数データ件数Ｘrを含むセグメントは前記メモリ使用率αが１を超えない範囲で並行移行セグメントとして割り付けが行われる（Ｓ３０８）。ここで、並行移行セグメントの割り付けを行うには，（Ｓ３０３）で求めたデータ件数Ｘと移行時間Ｔとの関係を示す近似式Ｔ＝ｄＸ2＋ｅＸ＋ｆが使われる。複数のセグメントからメモリ使用率αが１を超えない範囲で並行移行するためのセグメントへ構成する方法を例で説明する。
【００２４】
並行移行対象となる端数データ件数Ｘrを含むセグメントとして、
セグメントＡ：  α＝０．３、  セグメントＢ：  α＝０．５、
セグメントＣ：  α＝０．５、  セグメントＤ：  α＝０．７
がある。図１３において、セグメントＡとセグメントＢを並行移行するとα＝０．３＋０．５＝０．８となり、あとα＝０．２の余裕がある。そこで、セグメントＣのデータを全部加えて並行移行させようとするとα＝０．８＋０．５＝１．３となってしまうので、セグメントＣのデータをα＝０．２となるデータ件数をもつＣ0.2とα＝０．３となるデータ件数をもつＣ0.3とに分け、セグメントＡとセグメントＢとセグメントＣ0.2とでα＝１の並行移行セグメントを構成する。並行移行が開始されると、図１３に示す通り、前記の各セグメントの移行時間が（Ｓ３０３）で求めたデータ件数Ｘと移行時間Ｔとの関係を示す近似式Ｔ＝ｄＸ2＋ｅＸ＋ｆから移行処理装置２によって求められ、Ｔ1時間後にセグメントＡの移行が終了すると算定されるため、この時点で全体としてα＝０．７となるので、さらに図１３に示すように、セグメントＣ0.3を並行移行に加える。つぎにＴ2時間後に、セグメントＢとセグメントＣ0.2が移行を終了すると算定されるので、この時点でさらにα＝０．７であるセグメントＤを並行移行に加える。この例では、セグメントＡ、Ｂ、Ｃ、Ｄの移行はＴ4時間後に終了すると算定される。
【００２５】
以上のサンプルデータ件数による移行処理に必要な計算式は、まとめて図１０に示されており、セグメント情報１１の中に記録される。このように、セグメント情報１１を基にセグメント化処理１２を行い、実際の移行に用いるセグメントに構成して移行セグメントセット１３が決められる。最後に、移行セグメントセット１３が決められると、移行処理装置２は先に求めた表データ毎のデータ件数と移行時間の関係を示す近似式Ｔ＝ｄＸ2＋ｅＸ＋ｆにより、セグメント情報１１を基に全表データの移行時間を算定する（Ｓ３０９）。ここで、例えば、移行セグメントセット１３内のセグメント００１については、表１データにおけるＴｃが移行算定時間である。また、セグメント００２においては、表１データのＸrに対応する移行時間と、表２データのＸrに対応する移行時間とが偶然にも同じと算定された場合は、図１に示された移行セグメントセット１３でよいが、表１データのＸrに対応する移行時間と、表２データのＸrに対応する移行時間とに差があると算定された場合は、図１３のように一方が移行終了する時点で、更に次の端数データ件数Ｘrを含むセグメントからのデータが補充されて並行移行される。この後、上記で実行され移行先ＤＢ３に転送されたサンプルデータ件数による移行データは実測後に削除されるようにプログラムされている。なお、前記第一段階において、表データ移行プログラム１０は、移行処理装置２が移行処理に使用できるＹP（限界メモリ使用量）の値を「セグメント情報作成」メニューの中で設定変更できるようになっている。
【００２６】
次に、第二段階として実際の表データ移行を行う。表データ移行プログラム１０は、移行処理装置２に対して移行元ＤＢ１からセグメント毎のデータ抽出、編集・加工、移行先ＤＢ３への転送を指示する。これを図５のフローチャートで説明する。前述の移行処理装置２に接続されているディスプレイ、マウス、キーボード等からの指示入力により表データ移行プログラム１０を起動し、初期画面において表示される２つの選択メニュー「セグメント情報作成」と「表データの移行」から「表データの移行」メニューを選択する（図示省略）。これにより、図５のフローチャートに示す表データ移行が開始される。移行処理装置２は、データファイル７内の表データから移行セグメントセット１３のセグメント毎にデータを抽出し、メモリに一時保持する（Ｓ５０１）。抽出された各セグメントのデータは、メモリから順次読み出され、必要に応じ関連する他の表データからのデータ抽出も行い、その後、編集・加工要否判定を行う（Ｓ５０２）。編集・加工が必要なデータは、従来技術による表データ抽出後の編集・加工のためのサブルーチン処理（図示省略）に引き渡され、処理が完了した後の結果は、移行先ＤＢ３へファイル転送される（Ｓ５０３，Ｓ５０４）。移行先ＤＢ３へファイル転送が完了した後は、別途、移行先ＤＢ３内で、セグメント情報１１にある図８、図９に例示された各セグメント内の情報及び移行後のデータ編集・加工情報などに従って、必要に応じた再配列が行われる。なお、前記第二段階において、表データの移行順序の指定、表毎に分割して移行を行う、行わないの指定は、必要に応じて、表データ移行プログラム１０の「表データの移行」メニューの中で指定変更できるようになっている。
【００２７】
【発明の効果】
以上のように、本発明により、移行元データベース内の表データ毎に移行処理装置のメモリ使用量に関する精度の高い算定結果を得、さらに、前記算定結果から前記表データ毎に、分割して移行するものと他の表データと並行して移行するものとに区別して移行することにより、移行中にコンピュータのメモリ不足のため処理速度の低下、処理の中断、さらには、ハングアップといった不具合を回避し、逆に、安全を見すぎて、移行時間が不必要に長くかかってしまうという問題を解決し、移行処理装置の現有のメモリ量で、安全にしかも効率よく表データの移行を行なえると共に、セグメント情報にもとづいた精度の高い表データの移行時間算定を基に、表データ全体の確度の高い移行算定時間を得ることができる。
【図面の簡単な説明】
【図１】本発明の全体構成図。
【図２】従来の表データ移行フローチャート。
【図３】セグメント情報作成フローチャート。
【図４】サンプルデータ件数移行処理フローチャート。
【図５】表データ移行フローチャート。
【図６】表データのデータ件数とメモリ使用量の関係図。
【図７】表データのデータ件数と移行時間の関係図。
【図８】セグメント情報（例１）。
【図９】セグメント情報（例２）。
【図１０】サンプルデータ件数による移行処理算定結果。
【図１１】データベースＰ内の２つのテーブル。
【図１２】データベースＱ内の１つのテーブル。
【図１３】複数の端数セグメントの並行移行。
【符号の説明】
１  移行元ＤＢ
２  移行処理装置
３  移行先ＤＢ
４  移行元ＤＢの内容
５  ＤＢ管理情報ファイル
６  ＤＢ定義情報ファイル
７  データファイル
８  ＤＢ移行プログラム
９  データベース移行専用プログラム
１０  表データ移行プログラム
１１  セグメント情報
１２  セグメント化処理
１３  移行セグメントセット
【図１】
0004055396.tif 000002
【図２】
0004055396.tif 000003
【図３】
0004055396.tif 000004
【図４】
0004055396.tif 000005
【図５】
0004055396.tif 000006
【図６】
0004055396.tif 000007
【図７】
0004055396.tif 000008
【図８】
0004055396.tif 000009
【図９】
0004055396.tif 000010
【図１０】
0004055396.tif 000011
【図１１】
0004055396.tif 000012
【図１２】
0004055396.tif 000013
【図１３】
0004055396.tif 000014