30 juin 2018

Les limites du logiciel Oracle

IntroductionLa base Oracle, comme tout logiciel, a des limites internes : vous ne pouvez pas faire TOUT ce que vous voulez mais, rassurez-vous, ces limites sont peu nombreuses :-)  Nous allons voir qu'il est cependant inutile de vouloir tester ces limites car, en général, cela conduit à de nouveaux problèmes.   Points d'attentionNA.   Base de testsUne base Oracle 12c.     Exemples============================================================================================Les documents de... [Lire la suite]
Posté par David DBA à 19:11 - - Permalien [#]
Tags :

20 juin 2018

Comment créer un trigger sur SELECT

IntroductionOracle permet de créer des triggers sur les opérations DML suivantes : INSERT, UPDATE, DELETE mais pas SELECT. Nous allons voir comment contourner cette restriction avec un audit de granularité fine créé via le package DBMS_FGA, et, lorsque l'audit se déclenchera, celui-ci appellera une procédure stockée.Un SELECT qui exécute du code PL/SQL : cela ressemble fortement à un trigger sur SELECT, non? Attention, c'est un pseudo-trigger, de niveau Statement et pas de niveau Row : si le SELECT ramène 100 lignes, la procédure... [Lire la suite]
Posté par David DBA à 10:00 - - Permalien [#]
Tags : , ,
02 juin 2018

Jointure d'index : le INDEX FAST FULL SCAN n'est pas optimisé par Oracle

IntroductionLe but de cet article est de discuter du mode d'accès aux index appelé INDEX FAST FULL SCAN, et plus précisément de montrer qu'il n'est pas optimisé (oui, c'est prétentieux de ma part) lors d'une jointure d'index. Pour cela nous allons utiliser un hint et montrer que Oracle lit TOUS les blocs de l'index puis filtre les données au lieu de traiter N blocs d'un coup et de s'arrêter une fois tous les enregistrements trouvés, ce qui serait plus pertinent. Bien sur, INDEX FAST FULL SCAN signifie "lecture rapide de TOUT l'index"... [Lire la suite]
Posté par David DBA à 18:57 - - Permalien [#]
Tags : ,