大きなテーブルからデータのチャンクを繰り返し選択しています。選択する値の範囲のサイズを決定する方法を教えてください。これにより、テーブルに可能な限り数回アクセスできるようになりますが、毎回テーブルで完全なテーブル スキャンを実行する必要がなくなります。
サイズが 1000 のクエリの例:
SELECT id, data_col
FROM table_with_data
WHERE id BETWEEN 1000 AND 2000
ORDER BY id;
SELECT id, data_col
FROM table_with_data
WHERE id BETWEEN 2001 AND 3000
ORDER BY id;
SELECT id, data_col
FROM table_with_data
WHERE id BETWEEN 3001 AND 4000
ORDER BY id;
必要に応じて追加の背景: 私の特定のケースでは、Hector を使用して Oracle データベースから値をすばやく取得し、CASSANDRA データベースにロードしようとしています。データを選択して結果をロードする 20 ~ 40 のスレッドが一度に実行されます。いくつかのパフォーマンス テストを行っているときに、今日のテーブルに最適な「バッチ」サイズを見つけています。ただし、テーブルは時間の経過とともにゆっくりと大きくなり、私のテストでは非常に一貫した結果が得られないため、サイズを決定するためのより良い方法があるかどうかを確認したかった.