Oracle データベースから大量のデータを処理し、取得したデータに対して計算を実行する VB.NET アプリケーションがあります。データは 3 つの関連テーブルから取得されています。
メイン テーブルには、計算が必要な項目ごとに 1 つのレコードがあります (現時点では 100 万行弱)。他の 2 つのテーブルのそれぞれに 1 対多の関係があり、主テーブルの各レコードに対して副テーブルの平均 20 レコード (合計約 2000 万行) があります。
現在、OracleDataReader オブジェクトを使用してデータを取得し、これらのテーブルを結合するクエリの結果に REF_CURSOR を返すストアド プロシージャにアクセスしています。.NET コードは一度に 1 つずつレコードを読み取り、主キー列を使用して、この結果セットから一連のレコードを計算バッチにグループ化し、必要な計算を実行します。
このアプリケーションの処理時間は私が現在必要としているよりも長く、複数のワーカー スレッドがメイン レコード/サブの各セットで計算を実行できるように、アプリケーションのマルチスレッドをサポートできる処理のためにこのデータにアクセスするより効率的な方法を探しています。 -データベースからのレコード セット。助言がありますか?