Voilà qui devrait encore laisser quelques DBA perplexes… Ci-dessous, la copie d’un script réalisé sur Oracle 10g (XE et ça marche biensûr sur EE). Regardez bien les mots en rouge et expliquez pourquoi, ce qui se passe… se passe !
sqlplus / as sysdba
SQL> set autotrace on explain
SQL> select ename from scott.emp;
ENAME
————–
ACCOUNTING
RESEARCH
SALES
OPERATIONS
Plan d’exécution
———————————————————-
Plan hash value: 3383998547
————————————————————————–
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |
————————————————————————–
| 0 | SELECT STATEMENT | | 4 | 36 | 2 (0)| 00:00:01 |
| 1 | TABLE ACCESS FULL| DEPT | 4 | 36 | 2 (0)| 00:00:01 |
————————————————————————–
La réponse…
Le truc est un peu éculé. Pour le réaliser, il vous faut une base de données 10g avec un schéma d’exemple « SCOTT/TIGER ». Le setup prend 2 minutes, il suffit de taper préalablement à votre test :
sqlplus / as sysdba
SQL> alter system set query_rewrite_enabled=true;
SQL> alter system set query_rewrite_integrity=trusted;
SQL> exec dbms_advanced_rewrite.declare_rewrite_equivalence( –
> ‘DEMO’, ‘select ename from scott.emp’, –
> ‘select dname from scott.dept’, false, ‘text_match’)
SQL> col owner format a5
SQL> col destination_stmt format a27
SQL> col source_stmt format a28
SQL> col destination_stmt format a28
SQL> select * from dba_rewrite_equivalences;
OWNER NAME SOURCE_STMT DESTINATION_STMT REWRITE_MO
—– —– —————————- —————————- ———-
SYS DEMO select ename from scott.emp select dname from scott.dept TEXT_MATCH
SQL>exit;
Attention, l’option TEXT_MATCH positionnée dans le script nécessite que l’ordre passé « select ename from scott.emp » soit exactement le même… à la lettre, les minuscules et aux espaces prêts !
DBMS_ADVANCED_REWRITE est une fonction qui apparaît en 10g. Elle permet de réécrire un ordre SQL dans la base de données sans toucher à l’application… Attention, elle ne fonctionne pas avec des variables « bindées », ni avec des pseudo-colonnes comme ROWNUM.
Dans la vrai vie, cette fonction sert surtout faire perdre l’esprit aux DBA... J’espère que vous en surprendrez quelques uns !
GarK!
1 réflexion sur “Tour de Magie pour les DBAs /*+Bizarre*/”
Bien sympa !! Il faut y pense (en plus des synonymes et autres coup classiques.
A+
Les commentaires sont fermés.