SQL Performance Analyzer et Virtual Private Database
Dans l'article précédent à propos des limites de SQL Performance Analyzer, j'ai souligné le fait que certaines informations comme la configuration NLS ou les informations de session n'étaient pas conservées lorsque vous ré-exécutiez les ordres capturés dans des SQL Tuning Set. Le résultat peut être que les différences constatées entre 2 exécutions ne viennent pas des changements réalisés comme la création d'un index ou le changement de version d'Oracle, mais de la méthode elle-même, y compris dans le cas de l'utilisation de SQL Performance Analyzer. Un autre exemple assez frappant est l'utilisation de la VPD comme vous allez le découvrir ci-après.
Le même exempleL'exemple utilisé est identique à celui de l'article précédent :
- Un schema demo
- Une table T
- Une requête marquée avec le commentaire MARKER
connect / as sysdbaLe résultatUtilisez SQL Performance Analyzer et imprimez le rapport comme ci-dessous :
create or replace function maskall(object_schema VARCHAR2,
object_name VARCHAR2)
return varchar2 as
retval varchar2(200);
begin
if user='DEMO' then
retval:='2=1';
end if;
return retval;
end;
/
BEGIN
dbms_rls.add_policy(object_schema => 'demo',
object_name => 't',
policy_name => 'mask T',
policy_function => 'maskall');
END;
/
Comme vous pouvez le constater, la VPD n'est pas déclenchée dans le cas de SQLPA et cela même si on aurait aimé avoir le même résultat que lors de l'exécution initiale. Bien sur, vous vous dites pourquoi ne pas utiliser sys_context('userenv', 'current_schema') dans la fonction de la VPD ? La vérité est que la VPD n'est de toute façon pas déclenchée dans le cas d'utilisateurs comme SYS ou les utilisateurs ayant le privilege EXEMPT ACCESS POLICY.
Note: Pour les exceptions qui concernent la VPD, reportez-vous à la section suivante d'Oracle 11.2 Security Guide
ArKZoYd
Yet An Other Oracle Blog
29 janvier 2012 : Utilisation et limites d'Oracle 11g DBMS_XA
DBMS_XA permet plusieurs choses parmi lesquelles coordonner plusieurs branches d'une transaction globale dans des sessions différentes. Les exemples n'étant pas foison, ni sur le web, ni sur les sites d'Oracle pour décrire l'utilisation d'une transaction multi-sessions, cet (...)
24 janvier 2012 : Fonctions de table et Parallèlisme
Il y a quelques semaines, yooo13 qui se reconnaîtra ;-), rebondissant sur un problème de performance d'un des batchs sur lesquels je travaillais, pointait le fait que les fonctions de table ou fonctions "pipelined" peuvent être parallélisées et que j'y trouverais une solution à mon (...)
22 janvier 2012 : Un exemple d'utilisation du hint "CARDINALITY"
Le hint CARDINALITY permet d'aider l'optimiseur Oracle en lui "soufflant" le nombre de lignes retournées pour une étape d'un plan. Vous pensez qu'avec les différents mécanismes de dynamic sampling, cardinality feedback, statistiques multi-colonnes, statistiques sur les colonnes (...)
7 janvier 2012 : Flashback et Snapshot Standby en Action
Qui utilise une base de données Oracle et n'a jamais besoin ? d'investiguer les causes d'un problème constaté en production quelques minutes/heures auparavant de tester une correction ou une évolutions et comparer le résultat à celui de la production de ré-exécuter un batch après (...)
4 janvier 2012 : Le premier jour de la première semaine de 2012... à New-York !
Discussion lunaire fin 2011 à propos de la première semaine de 2012 : Google Calendar et Microsoft Outlook ne sont pas d'accord ! Il y a ceux qui pensent que la première semaine commence au premier lundi de l'année ; Et Outlook qui met le premier jour de l'année la première semaine... Si on (...)
24 décembre 2011 : Développer des triggers "asynchrones" Oracle pour gagner en performance
Entre de mauvaises mains, les triggers sont des instruments de malheur. Leur temps d'exécution s'immisce dans les temps de réponse de vos ordres SQL sans que vous ne puissiez rien y faire... Seulement, voilà, ré-écrire une application est extrêmement coûteux et il faut trouver des (...)
24 décembre 2011 : Cloner vos schémas Oracle avec la commande RMAN Transport Tablespace
A l'heure où les opérations sur vos bases de données doivent être simples, rapides et fiables, faire correspondre schéma(s) applicatif(s) et un jeu de tablespaces est un excellent moyen de gérer clone et migration, y compris d'une plateforme à l'autre. Evidemment, cela suppose (...)
23 décembre 2011 : A la recherche d'un premier job ou d'un stage ?
Si vous êtes un fidèle de ce blog, vous savez que l'expérience ArKZoYd a donné naissance, il y a quelques mois, à The ArKZoYd Company. Nous sommes déjà confrontés à un de ces bons problèmes : il nous faut de l'aide, une aide intelligente et percutante. Nous recherchons un(e) jeune pour un (...)
16 décembre 2011 : Désinstaller Oracle avec le script "deinstall"
Très honnêtement, je n'utilise jamais le script deinstall pour supprimer Oracle. Je préfère utiliser runInstaller -detachHome, un tar suivi d'un rm -rf db_x qui a l'extrême avantage de pouvoir servir de base aux cloning d'environnements. Cela étant, je suis pour tout ce qui me (...)
30 novembre 2011 : **VIDEO** Gérer les Utilisateurs Oracle dans votre Annuaire grâce à EUS et OVD
Avec l'implémentation dans les drivers JDBC thin 11.2.0.3 de O5LOGON, il est désormais possible de gérer depuis les principaux annuaires du marché les mécanismes d'authentifications, d'autorisations et d'audits de vos bases de données Oracle Enterprise Edition 11g et... 10g. (...)
18 novembre 2011 : Faites du bruit pour /dev/random
Il y a quelque mois, j'ai attendu patiemment de très longues minutes pour créer un domaine Weblogic sur un serveur virtualisé au fond du datacenter. Hier, j'ai recroisé son petit frère et le même phénomène... Je me suis énervé au point de lui faire peur et le second serveur est allé (...)
16 novembre 2011 : Les joyaux du support Oracle pour vos bases de données
L'un des avantages du support Oracle est sa collection d'outils et de scripts. Ceux-ci sont largement utilisables en dehors du contexte des appels au support ou de "bugs". Les outils les plus connus sont OSWATCHER, LTOM, RDA et son module HCVE qui permet d'identifier rapidement des (...)
11 novembre 2011 : Oracle Database 11g and Ubuntu 11.10 Oneiric Ocelot
If you've upgraded your laptop to Ubuntu 11.10 Oneiric Ocelot and want to install an Oracle Database Software for strictly self-educational purposes, you might be very annoyed by a small change in the way gcc checks its references when linking. Note: Don't use Ubuntu with any Oracle (...)
25 octobre 2011 : Flashback Table et DDL...
Si l'article précédent présente Oracle Total Recall, c'est, certes pour illustrer une options simplissime pour résoudre un problème de plus en plus commun... C'est aussi pour soutenir que son utilisation peut amener à des situations étonnantes lorsque vous utiliser la commande (...)
24 octobre 2011 : Total Recall en 5'
De nombreux projets exigent désormais de tracer les modifications de vos bases de données. Pour cela, il existe plusieurs technologies qui vont des triggers "for each row" à Log Miner, Streams, GoldenGate ou Change Data Capture, de-supporté dans les futures versions. Si votre besoin est (...)
23 octobre 2011 : 10 algorithmes qui utilisent le même index
Cet article illustre sur une base Oracle 11.2, avec une seule table, les différents algorithmes qu'Oracle peut utiliser avec le même index B*Tree, à savoir : Index Unique Scan Index Range Scan Index Skip Scan Index Fast Full Scan Index Full Scan Index Range Scan Descending Index Full Scan (...)
23 octobre 2011 : Changements de coût des Index Skip Scan entre 10g et 11g
Si vous êtes attentifs aux changements de plans lors de vos migrations entre versions de base de données, vous avez sûrement remarqué que les plans mettant en oeuvre les algorithmes Index Skin Scan sont largement favorisés lors du passage en 11g. Pour vous en persuader, reprenez la table (...)
8 octobre 2011 : Présentations OOW11 et Démonstrations EM12c Cloud Control
Voici 2 URLs que vous explorerez sans doute longuement : Beaucoup des présentations OOW11 sous format PDF 80 videos dédiées à Enterprise Manager 12c Cloud Control sur Oracle Learning Library Bonnes lectures... J'ai repéré quelques perles et vous (...)
1er octobre 2011 : Openworld et JavaOne dans les starting blocks
A nous, restés en France : Oracle OpenWorld 2011 et JavaOne démarrent demain avec leurs concerts de news déjà... Les lancements officiels comme Oracle VM 3.0 (aka 4x moins cher), JCP.Next (JSR 348) ou Oracle Database Appliance ; les nouveautés discrètes comme le supports d'HCC sur ZFS (...)
25 septembre 2011 : Programmation "Event-Based"
L'article précédent présente les limites de l'utilisation de DBMS_SCHEDULER avec des évènements : Les messages ne peuvent pas être traités de manière séquentielle Vous pouvez perdre les messages en cas d'un crash d'instance et ceci, bien que les files d'attentes soient (...)
23 septembre 2011 : Oracle Event-Based Scheduler n'est pas Event-Based
Ca parait sévère dit comme ça... Le fait est que, si vous envisagez de gérer des évènements de manière asynchrone dans une base Oracle, il y a de grande chance que le scheduler ne soit pas l'outils pour ça. A moins que : vous n'ayez pas peur de perdre des évènements vous n'ayez pas (...)
22 septembre 2011 : Pourquoi Oracle Database Appliance n'a rien à voir avec Exadata ?
A force d'entendre parler de "mini-exadata", beaucoup s'attendaient à voir apparaître... un mini-exadata ? Oracle Database Appliance (ODA) est une appliance d'une toute autre nature. Pas sur que tout le monde l'ai bien compris. Cet article revient sur l'annonce et ce qui (...)
21 septembre 2011 : Pythian is breaking the rules !
J'adore cet état d'esprit !!!!!! Migrer une base Oracle de 10 To de 9i AIX à Exadata X2-2 pour moins de 15k€ au cours du jour pour un tarif fixe et avec moins de 4 heures d'indisponiblité, c'est juste ENORME... Faites votre quotation en ligne. Vous allez pouvoir challenger vos (...)
17 septembre 2011 : Référencer les tables d'une requêtes dans vos hints
Lorsqu'une requête inclut des sous-requêtes, il n'est pas toujours simple de référencer les tables associées dans des hints ; cet article illustre, grâce à quelques exemples simples, comment faciliter ces références : grâce à des hints au niveau de chaque bloc à l'aide du hint (...)
8 septembre 2011 : Exadata et SAP : c'est hot !
Si vous utilisez SAP et que vous êtes, pour de bonnes ou de mauvaises raisons >:), intéressé par les technologies Oracle et en particulier Exadata, le sujet a rarement été aussi chaud : Inscrivez-vous à la présentation SAP / Exadata, le 28 septembre 2011 matin à l'aéroclub de France. Je (...)
8 septembre 2011 : Exadata et SAP : c'est hot !
Si vous utilisez SAP et que vous êtes, pour de bonnes ou de mauvaises raisons >:), intéressé par les technologies Oracle et en particulier Exadata, le sujet a rarement été aussi chaud : Inscrivez-vous à la présentation SAP / Exadata, le 28 septembre 2011 matin à l'aéroclub de France. Je (...)
4 septembre 2011 : 2x plus rapide à 100% de charge
J'aime mon laptop. Pas cher, facile à remplacer, un peu de RAM, Linux, quad-cores, 64 bits. Bref, il me permet de simuler beaucoup de comportements des serveurs et j'ai 5 navigateurs web différents sans compter wget et curl... Alors quand, pour un bête test de montée en charge, (...)
1er septembre 2011 : Range Partitioning Multi-Colonnes vs Multi-Niveau
Il ne faut confondre Range Partitioning multi-colonnes et Range-Range Partitioning. Outre la syntaxe, le modèle de partitionnement est très différent. Vous pourrez, dans certains cas, avoir le choix entre l'une et l'autre des implémentations mais ce n'est pas parce qu'on peut (...)
1er septembre 2011 : Range Partitioning et Null
Hors contexte, cet article n'a pas beaucoup de sens ! Pourquoi utiliser la valeur NULL dans une clé de partitionnement ? Evidemment, il ne s'agit pas d'encourager qui que ce soit à ce genre de pratiques ; ou au moins, il ne s'agit pas de l'encourager, plus que ça. Oracle (...)
27 août 2011 : blog.arkzoyd.com ou 4j.arkzoyd.com ?
Pour soigner sa schizophrénie, lui redonner un semblant de lisibilité et répondre aux préoccupations des personnes intéressées par Oracle mais pas par Java et vice-versa, le blog est scindé en 2 : URLsblog.arkzoyd.com4j.arkzoyd.com EditoLes technologies Oracle Database Server, Data Mining, (...)
27 août 2011 : Servlet Asynchrones et Programmation Comet
HTTP est un protocole sans état dont l'initiative de la connexion revient au client. Ses défauts font également ses forces puisqu'ils lui confèrent une capacité de montée en charge sans limite et sa tolérance aux pannes. Evidemment, il a fallu le faire évoluer le protocole (version 1.1) (...)
26 août 2011 : Index, Surindexation et Supervision (aka Monitoring)
Les index sont une arme redoutable à double tranchant. De sorte qu'une maladie assez répandue sur les bases de données Oracle est la sur-indexation ! Dans cet article, vous trouverez quelques réflexions à ce sujet et notamment : Des exemples de conséquences négatives de l'utilisation (...)
25 août 2011 : Servlet Asynchrones et Programmation Comet
HTTP est un protocole sans état dont l'initiative de la connexion revient au client. Ses défauts font également ses forces puisqu'ils lui confèrent une capacité de montée en charge sans limite et sa tolérance aux pannes. Evidemment, il a fallu le...
24 août 2011 : Oracle Single Sign-On Suite Ad
Je ne sais pas si c'est la rentrée ou OOW11 qui approchent mais toujours est-il que ça repart ! D'abord Oracle VM 3.0.1 à télécharger ce matin sur Oracle Software Delivery Cloud. C'est pas mieux que eDelivery, ça ? Le marketing, c'est est génial ;-). Maintenant une publicité (...)
22 août 2011 : Utiliser Datapump en PL/SQL
Le PL/SQL, lorsqu'on utilise une base de données Oracle, est plus facile à porter d'une plateforme à une autre qu'un script Perl, il permet de gérer finement les exceptions, il est facilement intégrable à tous les outils de la base de données à commencer par DBMS_SCHEDULER et il est (...)
22 août 2011 : Ajouter un filtre de Servlet lors du déploiement d'un WAR
Les annotations et le support de Comet font partie des apports les plus intéressants de la version 3.0 des servlets et par conséquent de Java EE 6. Une des conséquences directes de l'utilisation d'annotations, est qu'ajouter un filtre de servlets à l'archive d'un projet web (...)
19 août 2011 : Navigateur JNDI: Glassfish vs Weblogic
Glassfish a perdu, depuis la version 3, la possibilité de naviguer dans l'arborescence de ses resources JNDI grace à sa console d'administration. Il ne semble pas avoir retrouvée cette capacité depuis lors. Dommage! Weblogic offre, quant à lui, Plus (...)
19 août 2011 : JMX et MBeans 101
Java Management eXtension ou JMX est idéal pour superviser et configurer des application Java. Outre sa simplicité de développement, JMX permet notamment : de publier méthodes de configurations, sondes et notifications automatiquement dans un serveur facile d'accès d'y accéder à (...)
15 août 2011 : **VIDEO** Diagnostics des applications Weblogic en production
JRockit Mission Control permet de diagnostiquer les problèmes de performance des applications qui s'appuient sur Weblogic. C'est le cas, y compris en production à l'aide du niveau le plus bas de Weblogic Diagnostic Framework (WLDF). Vous trouverez illustré dans cette video : (...)
14 août 2011 : REF CURSOR gets OUT ?
Après avoir détricoté des erreurs ORA-00604 et ORA-01001 qui apparaissaient en manipulant des REF CURSOR comme paramètres depuis des clients ODP.NET et Java, je suis tombé sur une section de la documentation assez étonnante... Celle-ci suggère que vous ne devez pas utiliser de paramètre OUT de (...)
13 août 2011 : Recréer le tablespace SYSAUX
Le tablespace SYSAUX fait partie de votre base de données au même titre que SYSTEM. Il n'est pas supporté de le recréer. Cela est notamment dû au fait que certaines tables qui le constituent ne sont pas recréées dans le script catalog.sql mais font parties des fichiers inclus dans (...)
12 août 2011 : Compilation PL/SQL, paramètres OUT et affectations
Vous pouvez utiliser un paramêtre OUT comme source d'affectation, y compris si la valeur n'a pas été initialisée. Dans ce cas, sa valeur sera considérée comme NULL. Le tableau "PL/SQL Subprogram Parameter Modes" de la documentation explicite ce cas un peu particulier. On peut facilement (...)
3 août 2011 : Enregistrer les archives WLDF dans une base Oracle
Franchement, je suis mitigé quant à l'utilité réelle de la fonctionnalité qui suit : pour bien utiliser données collectées et instrumentations des serveurs et applications Weblogic, vous passerez sans doute par la mise en place d'un référentiel de performances qui consolide toutes vos (...)
2 août 2011 : Injecter le contexte d'execution (ECID) de Weblogic dans V$SESSION
Si vous lisez cet article dans la perspective de la video de l'article précédent, vous comprendrez facilement comment : capturer une requête dans une base de données Oracle savoir quels sont les écrans et les utilisateurs impactés par cette requête connaître toutes les requêtes associées (...)
31 juillet 2011 : Exemple de Scenario JDBC avec Apache JMeter
Apache JMeter est un outil simple pour écrire des tests fonctionnels et des tests de charge. Dans cet article, vous trouverez un exemple d'utilisation qui met en oeuvre des requêtes JDBC avec une base Oracle. L'objectif est d'illustrer l'utilisation de variables dans ces (...)
30 juillet 2011 : Glassfish et JRockit Mission Control
Vous pouvez bien sur utiliser JRockit Mission Control avec Glassfish ! Il faut juste pour cela qu'une des conditions ci-dessous soit validée : Tester ou développer dans le cadre des contraintes des licences Oracle décrites dans la FAQ JRockit Utiliser une licence Java SE Advanced avec (...)
30 juillet 2011 : Weblogic et JRockit Mission Control
JRockit Mission Control permet de diagnostiquer les dysfonctionnements qui apparaissent dans la machine virtuelle d'Oracle. Il est particulièrement bien intégrée à WebLogic. Il inclut une console temps réel mais également des outils tels que l'analyseur des fichiers générés par le (...)
29 juillet 2011 : Accéder à une base de données Oracle en C# via ODP.NET
Oracle Data Provider for .NET (ODP.NET) permet d'accéder à vos bases Oracle depuis vos programmes .NET. Oracle fournit également une extension pour Visual Studio appelée Oracle Developer Tools for Visual Studio. Cette extension permet notamment : de créer, modifier et manipuler vos objets (...)
29 juillet 2011 : Variables Bind et Protocole ou Traces Oracle Net
Il est possible de retrouver les valeurs de bind dans le protocole Oracle Net ou dans les traces du clients. Dans ce cas les valeurs apparaissent sous la forme d'un code au format hexadécimal XX YY YY YY YY YY où: XX indique la longueur de la valeur passée YY indique la valeur elle-même (...)
24 juillet 2011 : Introduction à Oracle "JVM Diagnostics"
Oracle "JVM Diagnostics", abbrégé JVMD, permet de superviser très finement avec un intervalle d'échantillonnage de l'ordre de la seconde et même bien inférieur, l'utilisation de vos machines virtuelles Java en production. Il est compatible avec la plupart des JVM du marché, y (...)
18 juillet 2011 : DBMS_PROFILER vs DBMS_HPROF
Le profiler hiérarchique d'Oracle 11g permet, comme son grand frère avant lui, d'analyser le temps passé dans les différentes procédures, fonctions, triggers et lignes de code d'un package PL/SQL. Les 2 solutions, la nouvelle comme l'ancienne, ne nécessitent aucune préparation (...)
14 juillet 2011 : Wrap et Unwrap de code PL/SQL
Wrapper un code PL/SQL (procédure, fonction ou package) contenu dans un fichier nommé greg.sql est simple. Cela nécessite d'utiliser la commande wrap comme décrit dans la documentation et illustré ci-dessous ; wrap iname=greg.sql oname=greg.plsSi vous pensez que cette méthode peut (...)
14 juillet 2011 : Rafraichir vos environnements pour Oracle Database Replay
Un des aspects associés à la mise en oeuvre d'Oracle Database Replay est la nécessité de reconstruire l'environnement avant chaque "replay". La plupart des méthodes de rafraichissement supprime le jeu de résultats obtenus lors de l'exécution précédente. Bref, peu importe que vous (...)
14 juillet 2011 : Flashback On... line
Si on se refère à cette section de la documentation d'Oracle 11.2, on ne peut pas activer ni désactiver le mode Flashback database en ligne : Use this clause to put the database in or take the database out of FLASHBACK mode. You can specify this clause only if the database is in ARCHIVELOG (...)
9 juillet 2011 : Comment visualiser sont les ordres qui divergent des originaux dans DB Replay ?
Après avoir rejoué une charge avec DB Replay, il est probable que certaines requêtes divergent. Il se peut que ce soit à cause d'une erreur, ou dans le cas le plus probable, parce que le résultat d'une requête est différent entre la capture et le replay ; par exemple la requête (...)
8 juillet 2011 : Comparer Capture et Replay de Real Application Testing
Replongeons-nous, encore une fois, dans Oracle Database Replay et illustrons notamment la nouvelle possibilité offerte à partir de la version 11.2.0.2 de générer des SQL Tuning Set (STS) puis de les comparer... J'ai écrit les 2 premiers articles d'introduction à Real Application Testing (...)
25 juin 2011 : Supprimer un curseur de la Shared Pool
Oracle 11g offre la possibilité, "backportée" en 10g, de supprimer un curseur de la shared pool à l'aide de la commande dbms_shared_pool.purge. Cette fonctionnalité permet, entre autre, de forcer le reparsing d'un seul ordre SQL et, ainsi, la collecte de nouvelles valeurs de bind dans (...)
20 juin 2011 : Supprimer les informations collectées par Health Monitor Check
Health Monitor Check comme les autres fonctions d'Oracle Diagnostic Repository (ADR) stocke ses données dans les fichiers situés dans $ORACLE_BASE/diag/rdbms//$ORACLE_SID/metadata. Cela permet notamment d'interroger le référentiel, y compris l'instance est en mode NOMOUNT depuis (...)
19 juin 2011 : Enregistrer la progression de vos traitements dans Oracle
Le package DBMS_APPLICATION_INFO permet d'enregistrer la progression d'opérations longues dans votre base de données. Il aide ainsi les DBA à suivre l'évolution des traitements applicatifs très simplement. Cette fonctionnalité est extrêmement utile. Couplez-la à l'utilisation (...)
18 juin 2011 : Changer un plan d'exécution à l'aide d'un stored Outline
Certes, la mode n'est plus aux Stored Outlines. Ceux-ci souffrent de plusieurs limites, la principale étant qu'ils s'appuient sur la hash value, à la 9i, du SQL et non pas sur le SQL ID introduit en 10g. En outre, Oracle promet d'abandonner la fonctionnalité dans une prochaine (...)
15 juin 2011 : "The ArKZoYd Company" en vrai
A défaut de faire les choses dans l'ordre, disons qu'on fait les choses... Nous avons franchi quelques grands pas dans le projet de "The ArKZoYd Company" : L'offre est finalisée. Elle couvre 2 thèmes qui sont : "Gouverner les performances de vos...
4 juin 2011 : Démonstrations de Health Monitor Check
Health Monitor Check est le framework de vérification des bases de données Oracle 11g. Il permet de valider toutes les corruptions possibles : des fichiers de la base de données des blocs de la base de données des fichiers de contrôle des undo...
30 mai 2011 : Installer Oracle 11.2 sur Ubuntu 11.04 x64
Nouveau laptop signifie nouvelle installation d'Oracle sur une autre version d'Ubuntu ! Natty Narwhal installé en 64 bits et les autocollants décollés, vous êtes prêt à commencer. La note de Don Seiler à propos de l'installation d'Oracle 11.2 sur...
30 mai 2011 : Requêtes Parallèles, Partie 2/2 : Mise en file d'attente
Parmis les nouveautés de la version 11.2.0.2, vous pouvez mettre en attente des requêtes en parallèle lorsqu'un certain nombre de processus est utilisé. Grâce à la gestion automatique du parallèlisme et resource manager, les requêtes qui sont...
30 mai 2011 : Requêtes Parallèles, Partie 1/2 : Downgrade en Série
Parmis les nouveautés de la version 11.2.0.2, vous pouvez mettre en attente des requêtes en parallèle lorsque les processus parallèles sont épuisés plutôt que de les exécuter en série. Dans la seconde partie de cet article, je vous propose...
28 mai 2011 : Amazon RDS (Relational Database Service) est disponible pour Oracle
Ca y est, Amazon RDS supporte Oracle 11g ; vous pourrez désormais provisionner vos serveurs ! 2 modèles de facturation sont disponibles pour le même type de services : "Bring Your Own Licenses" supporte les versions EE, SE et SE1 et nécessite,...
28 mai 2011 : Télécharger les logiciels Oracle depuis OTN et MOS avec WGET
Il est toujours possible de télécharger les logiciels Oracle avec WGET. Oracle a, certes, fait un récent changement mais ils n'ont pas interdit son utilisation, bien au contraire... Ils fournissent eux-même le script sur My Oracle...
28 mai 2011 : Transitivité des contraintes CHECK ou quand les tables stockées dans SYS n'obéissent pas aux mêmes règles !
Les contraintes CHECK, comme les autres contraintes donnent des informations à l'optimiseur pour résoudre les plans d'exécutions. Cependant, du fait de la manière dont Oracle estime les cardinalités avec des fonctions cela peut poser des problèmes....
27 mai 2011 : TDE : chiffrées sur disque, déchiffrées dans la SGA
L'utilisation de tables dans les tablespaces chiffrés avec transparent data encryption (aka TDE) ne fonctionne pas du tout comme la compression ! En effet, alors qu'avec la compression, les blocs compressés sont manipulés compressés dans le buffer...
22 mai 2011 : Oracle Database 11.2.0.2 : Online Patch devient réel
Si vous lisez la documentation ou de certains blogs bien choisis comme celui de Laurent Schneider, vous savez qu'Oracle promet de livrer des patchs online depuis la version 11.1.0.6. Cela dit entre la promesse et la réalité, il aura fallu attendre...
16 mai 2011 : Cas dégénéré de jointure externe multi-colonnes à moitié cuisinée
Il y a quelques jours, on m'a présenté un cas dégénéré de jointure externe multi-colonnes à moitié cuisinée. Si vous êtes intéressé par ces singularités de développeurs, qui ne signifient rien, regardez l'excellent article de Kevin Meade intitulé...
15 mai 2011 : Mes blogs classés par thèmes
5 ans, 600 articles, 350 abonnés (Abonnez-vous vous aussi!) et plus de 300,000 pages visitées, voici un index des articles de mes blogs en français et en anglais... Que vous soyez un lecteur assidu ou occasionnel vous retrouverez surement ici...
14 mai 2011 : Notifiez les Caches Niveau 2 de vos serveurs d'applications via Streams
Dans certaines circonstances, cacher des données sur un serveur d'applications est plus intéressant que de les interroger quand un utilisateur en a besoin. Les frameworks TopLink/EclipseLink ou Hibernate implémentent des caches dit de "niveau 2"...
14 mai 2011 : Continuous Query Notifications : Les résultats de vos requêtes "toujours à jour"
J'étais parti pour expliquer les principes d'utilisation de "Object Continuous Notification (OCN)" et "Query Result Continuous Notification (QRCN)" dans le contexte des caches niveau 2 des serveurs d'applications. Seulement, ça ne marche juste pas !...
9 mai 2011 : Langue et messages Oracle
Cet exemple est dédié à ceux qui ont toujours rêvé de dire coredump en suédois, en chinois ou en japonais. Vous pouvez utiliser le package utl_lms. Remarquez que vous saurez désormais l'écrire; pas forcément le prononcer... Qui a dit "ça ne sert...
8 mai 2011 : "Cursor de (Ref) Cursors" et PL/SQL
A l'opposé des fonctions pipelined, aka fonctions de table, qui retournent l'équivalent du résultat d'une requête à partir d'une fonction et utilisables dans une requête avec la fonction table(), les "Ref Cursor" permettent de manipuler les lignes...
8 mai 2011 : SELECT n lignes, n étant ce que tu veux... enfin presque !
Un truc que j'utilise très souvent pour générer un jeu de données est la requête suivante : select rownum from dual connect by level
8 mai 2011 : SELECT n lignes, n étant ce que tu veux... enfin presque !
Un truc que j'utilise très souvent pour générer un jeu de données est la requête suivante : select rownum from dual connect by levelCet ordre ramène 10000 lignes et vous pouvez ainsi générer ce qui vous intéresse. Sous la forme d'un INSERT (SELECT) et avec quelques fonctions MOD et RPAD, cette (...)
7 mai 2011 : Configuration statique Oracle Net et EZCONNECT
Vous trouverez ci-dessous 2 petits mots à propos de l'enregistrement statique des instances et des services dans le listener ainsi que la syntaxe EZCONNECT pour forcer l'utilisation d'une instance. Comme vous le savez, depuis la fin les années 90...
7 mai 2011 : Réduire l'accès de vos bases de données à certains serveurs
Il y a d'abord la perpétuelle fuite en avant d'Oracle qui donne le sentiment que, quand on commence à être serein sur une version, la suivante débarque. Il y a également la mémoire qui joue des tours lorsqu'on ne pratique pas... J'avais oublié...
1er mai 2011 : Un seul fan vous manque... sur Facebook
Certains d'entre-vous trouverons le procédé malvenu. Evidemment, j'aurais pu demander à ma mère ou à mon petit cousin et c'est surement comme ça que ça va finir ! Dans qu'elle mesure n'est-ce pas encore pire ? J'explique : j'ai besoin d'un fan de...
1er mai 2011 : Pourquoi NOT IN est sémantiquement différent de NOT EXISTS ?
Il y a quelques semaines, un peu agacé par une discussion où on m'expliquait, une fois encore, que pour obtenir de meilleures performances il fallait écrire une requête avec une syntaxe plutôt qu'une autre, j'ai écrit un article intitulé NOT EXISTS,...
30 avril 2011 : Verrouille toi à mort moi-même
J'ai rencontré une situation assez unique (quoique!) dans laquelle un programme arrive à générer un deadlock Oracle avec une seule session. Voici l'extrait de la trace du process incriminé : *** 2011-04-30 07:34:18.590 DEADLOCK DETECTED ( ORA-00060...
29 avril 2011 : Gérer un Error Handler et un DML Handler simultanément dans Streams
Un processus d'apply Streams ne peut contenir qu'un seul handler par table/type de commande. "DML apply" ou "Error", il faut donc choisir ! Seulement voilà, il se peut que vous vouliez à la fois gérer un DML et un Error Handler simultanément....
28 avril 2011 : Auditez les options utilisées sur vos bases de données
La conformité aux contrats de licences est un enjeu important pour les entreprises et fait généralement partie des responsabilités des DBA. Les risques encourus peuvent aller jusqu'à plusieurs centaines de milliers d'euros si, par exemple, vous...
28 avril 2011 : Blogs, rapports et SQL*Plus
Si vous écrivez des articles sur un blog ou des rapports dans lesquels vous copiez les sorties SQL texte de SQL*Plus que vous affichez avec des polices non proportionnelles, vous avez sans doute parfois des problèmes. La faute à l'équivalence entre...
28 avril 2011 : Contraintes référentielles, plans d'exécution et clause RELY
Les contraintes référentielles assurent la cohérence des données. Si le bénéfice est évident pour prévenir des erreurs des applications, les développeurs ont beau jeu d'expliquer, aujourd'hui, que ce n'est pas un problème pour eux ; la logique...
25 avril 2011 : Facebook Fan...
Devenez fan de "the ArKZoYd Company" sur Facebook. Aidez-moi!
25 avril 2011 : Schéma LDAP Oracle, alias TNS et Novell eDirectory
Le schéma fournit par Oracle avec Oracle Virtual Directory 11.1.1.4 ne permet pas de stocker les alias TNS dans l'annuaire de Novell. La faute au fichier eDirSchema.ldif qui en plus de contenir des erreurs de syntaxe est incomplet quant aux classes...
24 avril 2011 : Début de la "ArKZoYd Company", le 31 mai 2011
Il y a quelques semaines, on m'a demandé quel était mon statut. La réponse est je suis salarié depuis 15 ans que je travaille de près ou de très près avec Oracle. Certes sur 3 continents et dans des sociétés de 2 à 50,000 employés (à l'époque). Ca sera encore comme ça, plus ou moins, (...)
23 avril 2011 : Quoi de neuf à propos d'Oracle et d'Amazon EC2 ?
Oracle et Amazon ont fait "le buzz" à propos d'EC2 et de la base de données leader du marché, la semaine dernière. Jean-Philippe se délecte évidemment et ne manque pas de le souligner sur son blog en référençant notamment l'article de International...
23 avril 2011 : Installer Glassfish en mode silencieux
Installer Glassfish en mode silencieux est d'une simplicité enfantine. La procédure décrite dans la documentation permet de faciliter vos déploiements "en masse", sur des serveurs distants ou sur lesquels, ça arrive, les bibliothèques clientes X ne...
23 avril 2011 : Recherche d'ordres SQL "factorisables" dans Oracle
Juste un rapide commentaire pour indiquer une colonne très utile sur les environnements transactionnels avec le paramètre cursor_sharing=EXACT. Si vous cherchez à détecter des requêtes qui s'éxécuteraient de manière très fréquente avec des valeurs...
20 avril 2011 : Authentification SYSDBA via les Enterprise Users
Vos bases de données sont soumises à de nouvelles contraintes. D'un côté, l'ouverture de plus en plus grande du fait de la multiplication des intervenants ; les partenaires deviennent externaliseurs, outsourceurs, offshore et font eux-mêmes appels...
11 avril 2011 : Oracle Real-Time SQL Monitoring en Flash depuis SQL*Plus
Real-Time SQL Monitoring est une des fonctionnalités les plus Rock'N Roll de Oracle 11g. En 11.2, la fonction dbms_sqltune.report_sql_monitor permet très simplement d'utiliser l'outil sans avoir à écrire de requête sur v$SQL_PLAN_MONITOR; mais...
10 avril 2011 : Oracle 11.2.0.2 et la détection automatique de colonnes corrélées
Oracle 11g a introduit la notion de statistiques étendues. Il est ainsi possible de stocker des informations de distribution de résultats de fonctions ou de corrélation entre colonnes. L'idée sous-jascente est de fournir au CBO toujours plus...
10 avril 2011 : Oracle optimizer_dynamic_sampling vs statistiques InnoDB
Les statistiques générées par InnoDB utilisent une méthode d'échantillonage comme on peut facilement le mettre en évidence en regardant le nombre de lignes d'une table dont la taille des lignes est mal distribuée... C'est un peu comme si Oracle...
8 avril 2011 : Noyau Ubuntu/Utrace pour probes Dtrace de MySQL
Si vous voulez utiliser les probes DTrace de MySQL grace à SystemTap sur Ubuntu, il faut, d'abord, que les packages "systemtap" et "systemtap-sdt-dev" soient installés. Il faut également que MySQL soit compilé avec le package "systemtap-sdt-dev" et...
8 avril 2011 : Configurer SystemTap avec Oracle EL et Ubuntu
SystemTap permet de manipuler un nombre important de probes de votre noyau Linux. C'est un outil fantastique pour superviser les performances de vos serveurs et diagnostiquer vos problèmes rapidement. La liste de ces indicateurs est disponible dans...
6 avril 2011 : Installer MySQL sur Ubuntu à partir des sources
La version de MySQL disponible via les repository Ubuntu n'est pas, la plupart du temps, la dernière version. Dans de nombreux cas, vous voudrez donc installer une version différente. Cet article, largement inspiré de la section "2.9.2....










































Job-scheduling
Oracle
Sites connexes
Livres sur Oracle
Licence
Partenariat
Rechercher
Recherche globale
Annonces
Mots clés
Liens