1

CaféObjectScript(IntersystemsのMUMPSの方言)で、グローバル添え字範囲のキーの近似中点または線形点に効率的にスキップする方法はありますか?レコード数に基づいて等しい。

下付き文字のキー範囲をほぼ等しいチャンクに分割してから、各チャンクを並行して処理したいと思います。

グローバルのキーが何らかのバイナリツリーに配置されていることを知っているので、これは基盤となるデータストレージエンジンの簡単な操作であるはずですが、これを行うためのインターフェイスがあるかどうかはわかりません。

グローバルのキースペース全体をスキャンすることでそれを行うことができますが、それでは操作を並行して実行しようとする目的が無効になります。シーケンシャルスキャンは、このグローバルで数時間かかります。スキャンを開始する前に、キースペースを分割する必要があります。

各スレッドが、キースペースのほぼ同じサイズの連続したチャンクに個別にスキャンするようにします。問題は、各スレッドに与えるキー範囲を計算することです。

4

2 に答える 2

0

関数$orderまたは$queryで2番目のパラメーター「direction」(1または-1)を使用できます

于 2012-07-24T06:05:14.920 に答える
0

私の特別なニーズのために、私が使用しているアプリケーションには、インデックスグローバルと呼ばれるものがあることがわかりました。メインテーブルにリンクしている、さまざまなキーを使用してアプリによって維持される別のグローバル。ほんのわずかな時間でそれをスキャンし、そこからキーセットを分割することができます。

誰かがメインのグローバルだけを与えられて私がやりたいことをする方法を思いついたら、私はそれに受け入れられた答えを変更します。

于 2012-07-27T13:31:23.757 に答える