から私はOracleでこのテーブルを持っていると私はテーブルから2つの列を取得する必要がdesc_data
例:取得データDB
select ticket_id, date_logged from desc_data;
私はこのテーブルの10,000レコードの周りに持っているので、でしょう、私は、この操作を行うとjavaからいくつかの操作を実行し、これらの値をリストに入れ、いくつかの条件に基づいてデータをフィルタリングし、他のテーブルに挿入し直すことは可能でしょうか?
から私はOracleでこのテーブルを持っていると私はテーブルから2つの列を取得する必要がdesc_data
例:取得データDB
select ticket_id, date_logged from desc_data;
私はこのテーブルの10,000レコードの周りに持っているので、でしょう、私は、この操作を行うとjavaからいくつかの操作を実行し、これらの値をリストに入れ、いくつかの条件に基づいてデータをフィルタリングし、他のテーブルに挿入し直すことは可能でしょうか?
私はデータベース内のストアドプロシージャを使用し、javaから呼び出すほうがよいと思います。しかし、あなたが考えているのは解決策かもしれません。
これは、10000レコードでどのようなフィルタリングを実行するかによって異なります。日付範囲のレコードをフィルタリングするなど、フィルタリングが単純な場合は、SQLだけを使用してレコードをフィルタリングすることができます。処理が複雑な場合は、ストアドプロシージャを使用することもできます。 Oracle上で実行しているので、これらはJavaで記述することができます。例については、hereを参照してください。
よく、私は欠陥IDとそれらの最後に更新された時間列を取得し、それが私がJavaで持っている既存のリストを比較したい – shankar
あなたが現在Javaで持っているリストが別のテーブルに格納されていたら、 2つのテーブルに対して内部結合を使用したいフィルタリング。この比較をしたいときにfilter_tableの内容があまり変化しない場合、うまく動作し、非常に高速になります。欠陥IDのリストが非常に規則的に変更された場合は、desc_dataテーブルからレコードを取得し、Javaでフィルタリングすることで、提案した方法でフィルタリングするのが最善の方法です:10000レコードでは、秒。 – corriganjc
いいえ、私が持っているリストはExcelシートから来ています。それは全体的な問題です:) – shankar
私の質問は、Javaプロセス10,000レコードを一度にすることができますか? – shankar
javaは、メモリにこのようなレコード数を格納できる限り多くのレコードを処理できます。たとえば、10,000の整数をメモリに格納する場合は、10,000 * 4バイト、またはIOW、4KB未満が必要です。チェックする必要があるのは、ターゲットjvmに渡されるヒープスペースパラメータだけです。 –
ですから、10,000レコードを取得してからjavaで操作を実行すると問題になることはありません。 – shankar