05 mars 2017

Comment le nom des structures mémoires Oracle X$ est construit

                           IntroductionDans mon article "Trouver les objets Oracle cachés : tables système xxx$, structures mémoire X$xxx, paramètres cachés, packages PL/SQL cachés" je parlais des structures mémoires X$xxx. Celles-ci ont des noms très particuliers comme X$KSDAFT ou X$KQFOPT et je vous mets au défi de deviner à quoi elles servent rien qu'avec leur nom! Malheureusement ces structures mémoires ne sont... [Lire la suite]

22 février 2017

DBMS_ADVANCED_REWRITE : intercepter et remplacer un ordre SQL

                             IntroductionParfois un ordre SQL mal écrit est exécuté sur une base de données sans qu'il soit possible de modifier son texte. Les raisons peuvent être multiples :           ordre SQL issu du logiciel d'un éditeur tiers disparu          ordre SQL venant d'un programme interne du client mais... [Lire la suite]
Posté par David DBA à 13:45 - - Commentaires [0] - Permalien [#]
Tags : ,
16 février 2017

Statistiques sur les SELECT des colonnes : package DBMS_FGA

IntroductionUn client est venu me voir avec un problème sur une table comprenant 300 colonnes... Oui, 300! Son problème a été rapidement résolu, il ne portait pas sur ce nombre de colonnes MAIS je me suis posé la question : est-ce que toutes les colonnes de cette table sont vraiment utilisées? Est-il possible de nettoyer la table en supprimant des colonnes et gagner ainsi de l'espace disque, voir de supprimer des index sur des colonnes devenues inutiles au fil des ans?La question est : où trouver les statistiques d'utilisation des... [Lire la suite]
Posté par David DBA à 18:44 - - Commentaires [0] - Permalien [#]
Tags : , , ,
11 février 2017

Les types d’objets d'une base de données Oracle

          IntroductionUne base de données Oracle renferme bien plus de types d'objets qu'un DBA débutant voir même confirmé peut imaginer. Nous manipulons tellement souvent les tables, vues, séquences et autres objets communs du bestiaire Oracle que nous pensons tout connaître de la base. Grave erreur car en réalité Oracle met à notre disposition des dizaines de types d'objets différents, du plus commun au plus exotique; oui, je dis bien des dizaines et c'est ce que nous allons voir. ... [Lire la suite]
Posté par David DBA à 11:30 - - Commentaires [0] - Permalien [#]
Tags : , ,
09 février 2017

Pourquoi ma session Oracle est bloquée? Tableau commençant à 0

IntroductionOracle met à notre disposition via le dictionnaire de données des milliers de vues. Cette richesse est aussi une faiblesse : où trouver les bonnes informations? Est-ce que je cherche dans les bonnes vues, est-ce qu'il n'y en aurait pas de plus pertinentes que celles que je regarde actuellement? Ceci est particulièrement vrai dans le cas de sessions bloquées. Identifier qui me bloque, quel objet, sur quelle ligne... il est compliqué de retrouver toutes ces infos car elles sont éparpillées dans N vues : V$SESSION,... [Lire la suite]
Posté par David DBA à 15:00 - - Commentaires [0] - Permalien [#]
Tags : , , , ,
02 février 2017

Trouver les objets Oracle cachés avec le dictionnaire de données

IntroductionLa base de données Oracle s'appuie sur des objets qui ne sont pas documentés et ne devraient jamais être utilisés directement. Pour pallier cela, Oracle propose des objets alternatifs (en général des vues) qui s'appuient eux-même sur ces objets cachés et qui sont parfaitement documentés.Néanmoins, dans certains cas, il est bon de savoir que ces objets existent, ne serait-ce que pour mieux comprendre comment fonctionne Oracle et pour accéder à des informations qui n'existent pas dans les vues ou dans les objets officiels. ... [Lire la suite]
28 janvier 2017

Oracle les alias d'un SELECT ne sont connus que du ORDER BY

IntroductionDans la suite de cet article j'utiliserai les termes suivants :          - SELECT : ordre SELECT dans son ensemble avec les clauses WITH, SELECT, FROM, WHERE, GROUP BY, HAVING, ORDER BY          - Clause SELECT ou sous-clause SELECT : partie SELECT proprement dite du SELECT, soit la partie avant le FROM Sous Oracle il est possible de définir des alias de colonnes dans la clause SELECT mais aussi des alias de tables ou vues dans la... [Lire la suite]
Posté par David DBA à 15:44 - - Commentaires [0] - Permalien [#]
Tags : , ,
19 janvier 2017

Oracle et les commentaires sous SQL*Plus et dans SQL

IntroductionSous Oracle il est possible de mettre des commentaires dans un ordre SQL sous trois formes différentes :           -- (double tirets) : commentaire de ligne dans l'ordre SQL sans caractère de fin          /* */ : commentaire de bloc dans l'ordre SQL, sur une ligne ou plusieurs          REMARK ou REM : commentaire sous SQL*Plus mais pas dans l'ordre SQL (quoique...)Cela permet de... [Lire la suite]
Posté par David DBA à 09:43 - - Commentaires [0] - Permalien [#]
Tags : , ,