|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Invité de passage
![]() Inscription : juillet 2005 Messages : 14 ![]() |
Bonjour, je fais du développement sous Oracle depuis environ 8 ans sur des applications de gestion financière en Forms 61,SQL,PLSQL et Oracle 9 et j'aimerai me former et passer éventuellement des certifications en conception/améliration de base de données avec une spécialisation Datawarehouse. Je suis freelance et j'aimerai m'assurer une activité dans ce secteur.
Est-ce que quelqu'un ici aurait des conseils à me donner sur les formations à prévoir et sur les débouchés dans le secteur? Merci d'avance |
|
|
00
|
|
|
#2 |
![]() ![]() Gilles ROUARDAdministrateur de base de données Inscription : mars 2003 Messages : 220 ![]() |
Bonjour,
Pour ma part, je fais de l'Oracle depuis 10 ans, mais je m'y suis réellement mis depuis 6 ans. Pendant 5 ans, j'ai fait une mission en finance (Asset Management), dans le domaine du contrôle de risque. Je ne m'occupais que de la partie Oracle (mes collègues s'occupaient de la partie Java / WebLogic), de A à Z, c'est-à-dire : - modélisation sous PowerAMC (MPD/MCD), - développement avancé SQL et PL/SQL (par avancé, j'entends l'utilisation de fonctionnalités telles que l'objet, les collections, le Bulk Collect, les triggers sur tables mutantes, les fonctions analytiques...), - tuning SQL, - un peu d'administration et de tuning d'instance via Statspack. En règle générale, dans le domaine de la finance, tu es plutôt confronté à des bases très relationnelles (modélisation classique sous Merise, avec qq centaines de table), de faible volume (qq Go), avec pas mal de transactions en journée et du batch le soir. Dans ce genre de projet, où l'on connaît pas mal d'évolutions fonctionnelles, il faut soigner la MAJ du MCD (c'est fou le nombre de projets où il n'y a pas de MCD, ou bien où le MCD n'a pas été mis à jour depuis des lustres et est devenu caduque), d'essayer d'utiliser des fonctionnalités avancées telles que celles citées plus haut, et de s'intéresser au tuning SQL, c'est-à-dire savoir lire et interpréter un plan d'exécution. Pour se faire, rien de tel que de jeter un coup d'oeil sur la doc Oracle, notamment les 3 PDF 'SQL Reference', 'PL/SQL User's Guide and Reference' et 'Performance Tuning Guide'. A cela, je te conseille l'achat d'un bouquin sur le tuning SQL. Depuis plus d'un an, je suis en mission chez un assureur, en tant que DBA d'études Oracle, sur des Datawarehouses. Je te conseille à ce moment-là de jeter un coup d'oeil, toujours sur la doc Oracle, sur le PDF 'Performance Tuning Guide'. De toute façon, dans ce domaine, il faut maîtriser les aspects suivants : - au niveau de la modélisation, fini le modèle relationnel. Tu passes en modèle étoile (star schéma), c'est-à-dire une immense table de fait reliée à N tables de dimension, lesquelles sont dénormalisées. Parfois, les tables de dimension sont normalisées, et tu te retrouves dans un modèle en flocon (snowflake), - dans un DTW, on a du volume (qq Téra-octets). Cela signifie qu'il faut maitriser le partitionnement des tables et des index. A cela peut s'ajouter l'utilisation de l'option de compression de données, - pour les aggrégats, on utilise aussi des vues matérialisées, avec le Query Rewrite, - pour les performances, on utilise des index bitmaps (ou des bitmaps join index) sur les tables de fait. Tu dois donc comprendre les requêtes étoiles (Star Queries) et leur plan d'exécution, - et puis il y a l'option du parallélisme, aussi bien pour faire de la consultation (SELECT), de la MAJ (INSERT, UPDATE, DELETE, MERGE) ou de la création de tables ou d'index en parallèle. Voilà en gros les concepts que tu dois absorber. |
|
|
00
|
|
|
#3 |
|
Invité de passage
![]() Inscription : juillet 2005 Messages : 14 ![]() |
Bonjour et merci pour ces détails ça me fait déjà un paquet de choses à plancher.
justement je suis sur une appli financière pour la commission européenne sous oracle avec du java/weblogic, mon soucis est que l'appli est foireuse, tout a été fait en java, il n 'y a presque pas de PLSQL pour l'accès aux données, tout est codé dans les entity bean, niveau perf et maintenance, c'est pas franchement top... par contre j'ai aussi une appli qui me sert à synchroniser la base locale avec le système central, tout est écrit en PLSQL et tourne en batch qui génère du sql dynamique en fonction du paramétrage de mapping (correspondances tables et colonnes), ce sql dynamique effectue des lectures sur la base externe et des insert/update sur la base locale, mon soucis ici est que l'accès à la base externe se fait par database link et à priori on ne peut pas utiliser les index au travers d'un dblink car on est en sous oracle 9i. Est-ce que par hasard, tu connais des méthodes pour améliorer les perf sur une config comme celle là? Merci d'avance. |
|
|
00
|
|
|
#4 |
![]() ![]() Gilles ROUARDAdministrateur de base de données Inscription : mars 2003 Messages : 220 ![]() |
Bonjour,
Désolé de ne te répondre que maintenant, mais je reviens de 3 semaines de congés. Pour ton pb, j'avoue ne pas comprendre du tout quand tu dis que l'on ne peut pas utiliser d'index via un DB*Link !!! A priori, tu ne fais que du SELECT sur ta base distante, ceci afin de peupler ta base locale. Donc sur les tables distantes, si il y a des index, ceux-ci peuvent servir. Pour être fixé, seul le plan d'exécution te permettra d'être fixé quand à l'utilisation des index. En règle générale, pour avoir de bonnes performances, il faut soigner la conception et l'écriture des requêtes SQL dans le cas de bases distribuées. Il faut en effet limiter le volume de données à ramener via DB*Link, et aussi éviter des jointures entre tables distantes et tables locales. Je note au passage que les requêtes sur la base distante sont dynamiques, ce qui fait que le code SQL peut varier, et il est donc plus difficile de faire du tuning SQL. |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com