2010-11-27 13 views
1

から私はOracleでこのテーブルを持っていると私はテーブルから2つの列を取得する必要がdesc_data 例:取得データDB

select ticket_id, date_logged from desc_data; 

私はこのテーブルの10,000レコードの周りに持っているので、でしょう、私は、この操作を行うとjavaからいくつかの操作を実行し、これらの値をリストに入れ、いくつかの条件に基づいてデータをフィルタリングし、他のテーブルに挿入し直すことは可能でしょうか?

答えて

2

私はデータベース内のストアドプロシージャを使用し、javaから呼び出すほうがよいと思います。しかし、あなたが考えているのは解決策かもしれません。

+0

私の質問は、Javaプロセス10,000レコードを一度にすることができますか? – shankar

+0

javaは、メモリにこのようなレコード数を格納できる限り多くのレコードを処理できます。たとえば、10,000の整数をメモリに格納する場合は、10,000 * 4バイト、またはIOW、4KB未満が必要です。チェックする必要があるのは、ターゲットjvmに渡されるヒープスペースパラメータだけです。 –

+0

ですから、10,000レコードを取得してからjavaで操作を実行すると問題になることはありません。 – shankar

0

これは、10000レコードでどのようなフィルタリングを実行するかによって異なります。日付範囲のレコードをフィルタリングするなど、フィルタリングが単純な場合は、SQLだけを使用してレコードをフィルタリングすることができます。処理が複雑な場合は、ストアドプロシージャを使用することもできます。 Oracle上で実行しているので、これらはJavaで記述することができます。例については、hereを参照してください。

+0

よく、私は欠陥IDとそれらの最後に更新された時間列を取得し、それが私がJavaで持っている既存のリストを比較したい – shankar

+0

あなたが現在Javaで持っているリストが別のテーブルに格納されていたら、 2つのテーブルに対して内部結合を使用したいフィルタリング。この比較をしたいときにfilter_tableの内容があまり変化しない場合、うまく動作し、非常に高速になります。欠陥IDのリストが非常に規則的に変更された場合は、desc_dataテーブルからレコードを取得し、Javaでフィルタリングすることで、提案した方法でフィルタリングするのが最善の方法です:10000レコードでは、秒。 – corriganjc

+0

いいえ、私が持っているリストはExcelシートから来ています。それは全体的な問題です:) – shankar

関連する問題