08 octobre 2017

ORDER BY et Consistents gets réduits par 10 : un ORDER BY ne ralentit pas toujours une requête!

IntroductionVous savez qu'un ORDER BY dans une requête SQL va générer au niveau d'Oracle un SORT des données. Cette opération de tri est très consommatrice en terme de ressources mais, sur le coût total du plan d'exécution, ce coût peut être annulé en gagnant sur d'autres opérations. Nous allons voir qu'une requête avec un ORDER BY peut être aussi rapide voir même plus rapide qu'une requête sans le ORDER BY. Points d'attentionRéfléchissez bien avant de faire un ORDER BY car cette opération est très lourde pour Oracle et dans... [Lire la suite]
Posté par David DBA à 14:21 - - Commentaires [0] - Permalien [#]
Tags : ,

15 septembre 2017

Les informations affichées par Oracle ne sont pas toujours fiables

IntroductionUn problème agaçant avec Oracle est que les informations recherchées sont parfois difficiles à trouver voir même sont incomplètes. Soit ces infos sont dispersées dans plusieurs vues sans point d'entrée unique, soit des paramètres de niveau base sont écrasés par des paramètres de niveau local soit les infos ne sont pas où le DBA junior pensent qu'elles devraient être. Oracle est devenu au fil des versions de plus en plus complexe et des règles d'anciennes versions sont obsolètes pour les nouvelles versions, comme par... [Lire la suite]
Posté par David DBA à 12:35 - - Commentaires [0] - Permalien [#]
Tags : , , ,
08 septembre 2017

Oracle et les ordres DDL : empêcher le COMMIT implicite du DDL d'avoir lieu avec un trigger

IntroductionSous Oracle tout ordre DDL a un COMMIT implicite; c'est une règle d'or qu'on vous a enseigné dès qu'on commence à travailler avec ce SGBD. Néanmoins ce COMMIT implicite peut-être évité même après que l'ordre DDL ait réussi; nous allons tester cela avec l'exemple du CREATE TABLE. Points d'attentionN/A. Base de testsN'importe quelle base Oracle.  Exemples============================================================================================Le COMMIT implicite d'un ordre DDL : modes de... [Lire la suite]
Posté par David DBA à 13:11 - - Commentaires [0] - Permalien [#]
Tags : , ,
24 août 2017

Les services Oracle : où trouver la liste complète?

IntroductionPour se connecter à une base Oracle via le fichier TNSNAMES.ora, Oracle recommande d'utiliser le nom d'un service avec le paramètre SERVICE_NAME. On peut aussi utiliser le nom de l'instance avec INSTANCE_NAME mais Oracle met depuis plusieurs versions en avant cette notion de services. Entre le client et le serveur Oracle, il s'agit d'un maillon supplémentaire dans la chaîne de connexion et il est fondamental de pouvoir identifier les services disponibles dans une base pour s'y connecter et de savoir à quelle PDB ce service... [Lire la suite]
Posté par David DBA à 17:37 - - Commentaires [0] - Permalien [#]
Tags : ,
04 août 2017

Les tablespaces sous Oracle - article 3 : modifications

IntroductionCet article est le troisième et dernier d'une série consacrée aux tablespaces. Le premier concernait la recherche d'informations sur les tablespaces, le deuxième la création et la suppression de ces mêmes tablespaces et celui-ci leur modification.Partie 1 : afficher les informations sur les tablespaces Partie 2 : création et suppression de tablespacesPartie 3 : modifications de tablespaces (cet article) Points d'attentionN/A. Base de testsUne base Oracle 12c. ... [Lire la suite]
Posté par David DBA à 09:10 - - Commentaires [0] - Permalien [#]
Tags : ,
01 août 2017

Les tablespaces sous Oracle - article 2 : création et suppression

IntroductionCet article est le deuxième d'une série consacrée aux tablespaces. Le premier concernait la recherche d'informations sur les tablespaces, celui-ci concerne la création et la suppression de ces mêmes tablespaces.Partie 1 : afficher les informations sur les tablespaces Partie 2 : création et suppression de tablespaces (cet article)Partie 3 : modifications de tablespaces Points d'attentionLes recommandations Oracle sont les suivantes pour créer un tablespace :          • EXTENT... [Lire la suite]
Posté par David DBA à 17:30 - - Commentaires [0] - Permalien [#]
Tags : ,

28 juillet 2017

Les tablespaces sous Oracle - article 1 : afficher les informations

IntroductionCet article est le premier d'une série consacrée aux tablespaces. Ce sujet est trop volumineux pour tenir en un seul article, il sera donc rédigé en plusieurs parties. Vous y trouverez surtout les commandes SQL pour effectuer les opérations de base sur les tablespaces plutôt que des infos théoriques sur ces objets.Partie 1 : introduction et afficher les informations sur les tablespaces (cet article)Partie 2 : création et suppression de tablespaces Partie 3 : modifications de tablespacesPour rappel, un tablespace Oracle est... [Lire la suite]
Posté par David DBA à 13:36 - - Commentaires [0] - Permalien [#]
Tags : ,
18 juillet 2017

Bug Oracle : vues systèmes comme DICT inconnues en 11g lors de l'ouverture de la base

IntroductionSur Oracle 11gR2 (et peut-être sur les versions précédentes), il existe un bug très curieux : les vues du dictionnaire de données comme DICT ne sont pas accessibles une fois la base ouverte si on a fait un DESC sur ces vues avant que la base ne soit ouverte. En d'autre mots, si on ouvre la base de données étape par étape (STARTUP NOMOUNT puis des ALTER DATABASE) et qu'on veuille accéder à ces vues à une étape où elles ne sont pas encore accessibles, alors elles restent inaccessibles même quand la base est OPEN! Nous allons... [Lire la suite]
Posté par David DBA à 09:21 - - Commentaires [0] - Permalien [#]
Tags :
15 juillet 2017

CHAR et littéral : Oracle ajoute des blancs au littéral pour faire une comparaison (blank-padded semantics)

IntroductionEn 1995 quand je travaillais sur Oracle 7 comme développeur, on m'avait mis en garde sur le fait suivant : ne mettre en CHAR que des colonnes pour lesquelles l'espace total est occupé par des caractères sinon l'espace en plus est complété avec des blancs par Oracle et cela pose des problèmes pour faire des recherches.Ce que je viens de découvrir c'est que depuis la version 7, Oracle gère parfaitement bien ces espaces en plus dans le cas où on fait une recherche en comparant une colonne CHAR avec un littéral. Le développeur... [Lire la suite]
Posté par David DBA à 17:03 - - Commentaires [0] - Permalien [#]
Tags :
03 juillet 2017

SYS ne peut pas tout faire sous Oracle

          IntroductionSYS est le user le plus puissant sous Oracle! Mais cela ne signifie pas pour autant qu'il puisse TOUT faire! Même lui a des limites, fixées par les développeurs du SGBD et c'est l'objet de cet article. Points d'attentionEn tant que SYS vous pouvez facilement casser votre base, donc faites bien attention si vous vous connectez avec ce user. A noter que parmi les bonnes pratiques d'Oracle, il est dit qu'il ne faut quasiment jamais se connecter comme AS SYSDBA (user... [Lire la suite]
Posté par David DBA à 20:15 - - Commentaires [0] - Permalien [#]
Tags : ,