2010-11-27 7 views
1

J'ai ce tableau dans l'oracle et je dois récupérer deux colonnes de la table desc_data par exemple:Récupération de données DB

select ticket_id, date_logged from desc_data; 

j'aurais environ 10.000 enregistrements dans ce tableau, donc si je fais cette opération de Java et effectuer certaines opérations dans Java en mettant ces valeurs dans une liste, puis sur la base de certaines conditions filtrer les données et les insérer dans une autre table, serait-il possible et si c'est possible serait-ce un overhead?

Répondre

2

Je pense préférable d'utiliser une procédure stockée dans la base de données et de l'appeler depuis Java. Mais ce que vous considérez comme une solution possible aussi.

+0

mais ma question est que java peut traiter 10 000 enregistrements à la fois ??? – shankar

+0

Java peut traiter autant d'enregistrements que la mémoire peut contenir un tel nombre d'enregistrements. Par exemple, si vous voulez stocker 10 000 entrées en mémoire, vous aurez besoin de 10 000 * 4 octets ou, moins de 4 Ko. Tout ce que vous devez vérifier, c'est les paramètres d'espace de tas passés à la cible jvm. –

+0

Donc, vous voulez dire que vous devez récupérer 10 000 enregistrements, puis effectuer des opérations dans Java ne devrait pas poser de problème !! – shankar

0

Cela dépend du type de filtrage que vous souhaitez effectuer sur vos 10000 enregistrements. Si le filtrage est simple, comme le filtrage des enregistrements dans une plage de dates, vous pouvez le faire en utilisant simplement SQL. Si votre traitement est plus complexe, vous pouvez également utiliser une procédure stockée. Comme vous utilisez Oracle, vous pouvez les écrire en Java. Voir here pour un exemple.

+0

bien je veux récupérer des ID de défaut et leur dernière colonne de temps mise à jour et la comparer une liste existante j'ai dans java – shankar

+0

Si la liste que vous avez actuellement dans Java a été stockée dans une autre table, disons que nous l'avons appelée filter_table, alors vous pourriez faire le filtrage que vous voulez avec une jointure interne sur les deux tables. Si le contenu de filter_table ne change pas beaucoup entre les moments où vous voulez faire cette comparaison, alors cela fonctionnera bien et sera très rapide. Si la liste des identifiants de défauts change très régulièrement, il serait préférable de faire le filtrage comme vous l'avez suggéré, en récupérant les enregistrements de la table desc_data et en faisant le filtrage en Java: avec 10000 enregistrements, il ne faudrait probablement que quelques secondes. – corriganjc

+0

Pas la liste que j'ai vient d'une feuille excel ..thats de l'ensemble du problème :) – shankar

Questions connexes