Acceder aux données d'une BD oracle

foufi5 Messages postés 4 Date d'inscription mardi 10 janvier 2006 Statut Membre Dernière intervention 7 août 2008 - 5 août 2008 à 18:34
foufi5 Messages postés 4 Date d'inscription mardi 10 janvier 2006 Statut Membre Dernière intervention 7 août 2008 - 7 août 2008 à 15:11
Bonjour tout le monde
en faite je travaille sur une application avec la technologie j2ee et une base de données oracle je me charge du module statistiques en fait je dois acceder au données de la base faire des operations pour generer les statistiques savoir combien on a recu de cv d ingenieur de technicien.......
le probleme c'est que mon encadrant ne veut pas q je travaille directement sur la BD pour ne pas la surcharger donc ce qu il m a proposé c'est de generer un fichier à partir de la base qui contient toute la Bd et travailler dessus mais la en cherchant j'ai trouvé que cette solution n'est pas bonne voire n'est pas realisable (comment je pourrai faire pour etablir les relations entre les tables ) si vous avez une solution aidez moi merci d'avance

4 réponses

indiana_jules Messages postés 750 Date d'inscription mardi 9 mars 2004 Statut Membre Dernière intervention 23 décembre 2008 22
6 août 2008 à 13:43
Salut,
As-tu seulement une table à exporter, ou un ensemble de tables ? Si tu as une seule table, avec des éléments simples, tu peux peut-être l'exporter en Excel, et ensuite utiliser l'API  JXcel.

Autrement, une autre solution, ce serait de dupliquer les tables (en gardant les inde qui t'intéressent) d'un autre schéma que celui de la production, en faisant des Bulk Loader (en mode Truncate) afin de charger rapidement les données.

Au pire, tu peux faire une sorte d'exportation vers la base de données Sqlite (base de données en locale). Tu auras ainsi la possibilité de faire des recherches SQL traditionnelle.

Voili voilà

le monde a des idées : la preuve, c'est qu'il y en a de mauvaises
ne comprends pas tout, mais je parle de tout : c'est ce qui compte
0
foufi5 Messages postés 4 Date d'inscription mardi 10 janvier 2006 Statut Membre Dernière intervention 7 août 2008
7 août 2008 à 09:47
Salut
merci indiana pour ta reponse mais des bulk loader en mode truncate je vois pas de quoi il s'agit si tu as un cours qui peut m'aider merci d'avance
0
indiana_jules Messages postés 750 Date d'inscription mardi 9 mars 2004 Statut Membre Dernière intervention 23 décembre 2008 22
7 août 2008 à 13:40
Salut,
le Bulk Loader est un mode de chargement particulier disponible sous Oracle (dans d'autres BDD il me semble aussi, comme SQL Server, ...). Le but est de pouvoir charger très rapidement des données d'une table à l'autre (en fait, il insére les données sans mettre à jour les index, en tapant directement dans les emplacements disques, du coup, c'est plus rapide. Ce sera à la fin que les index seront recalculés).

Du coup, pour te donner un ordre de grandeur, pour une petite table de 2.5 millions de lignes (prenant ps mal d'emplacement disque), avec une insertion classique, je mettais 20 minutes, avec le Bulk, je mettais moins de 6 minutes (tout dépende de la table, des index, de l'emplacement physique etc.).

Ensuite il existe 2 modes principales (après cela dépend des BDD, dans le cas d'Oracle, c'est 2): Truncate e tappend. Append ajout à la fin des données. Mais comme il ne gére pas les index lors de l'insertion, tu peux avoir potentiellement des doublons dans ta table (du coup, lors de la regénération des index, les index seront désactivées). Le Truncate lui vide complétement la table (très très rapidement), pour remplacer l'intégralité des données.

Le mieux est d'utiliser l'approche "API" qui te permet de faire l'opération directement entre deux tables. sinon, tu es obligé de passer par SQL Loader*, qui lui charge les données depuis un fichier (moins rapide du coup).

Pour l'utiliser, je te conseille de te balader sur des forums comme Ask Tom ou encore dba-oracle.

Sinon un petit lien:
http://infolab.stanford.edu/~ullman/fcdb/oracle/or-load.html#loading%20without%20a%20separate%20data%20file

Apres, cela dépend de la volumétrie de tes donénes. Peut-être qu'un pushdown (insert into ... select ...) est largement suffisant.

Voili voilà

le monde a des idées : la preuve, c'est qu'il y en a de mauvaises
ne comprends pas tout, mais je parle de tout : c'est ce qui compte
0
foufi5 Messages postés 4 Date d'inscription mardi 10 janvier 2006 Statut Membre Dernière intervention 7 août 2008
7 août 2008 à 15:11
merci beaucouuuuuup pour les explications indiana  
0
Rejoignez-nous