• Pour tracer les requêtes SQL dans une base Oracle il faut passer la commande :
execute dbms_monitor.database_trace_enable(waits=>TRUE,binds=>TRUE,instance_name=>'QUALIF');
• Pour stopper la trace :
execute dbms_monitor.database_trace_disable(instance_name=>'QUALIF');
• La trace sera stockée sous :
select
value
from
v$diag_info
where
name ='Default Trace File';
Exemple :
/export/BD/ORACLE/oratrc/QUALIF/bdump/diag/rdbms/qualif/QUALIF/trace/QUALIF_ora_58689.trc
Elle pourra être lisible avec tkprof :
Syntaxe : tkprof <nom_de_la_trace> <nom_du_fichier_texte_lisible> sys=no
Exemple:
$tkprof QUALIF_ora_7767.trc QUALIF_ora_7767.txt sys=no
L’option sys = no ne garde pas les requêtes lancées par l’utilisateur sys.
Professionnel - Page 30
-
Tracer sql query dans base oracle
-
Migration Oracle vers Postgres
-
Règle Boyce Codd et dénormalisation
Une dénormalisation intelligente est basée sur cinq principes de base :
- rajouter des colonnes calculées persistantes, voire des index calculés;
- mettre en place des index couvrants et/ou filtrés;
- utiliser la compression des données;
- utiliser des vues matérialisées (Oracle ou PostgreSQL) ou indexées (SQL Server);
- partitionner les très grandes tables.
-
Quelques commandes bien pratiques
-
Trouver les clés étrangères qui font référence à un champ dans une table x
--donne la liste des clés étrangères
select owner,constraint_name,constraint_type,table_name,r_owner,r_constraint_name
from all_constraints
where constraint_type='R' and R_OWNER='nom_du_schéma'
and r_constraint_name in (select constraint_name
from all_constraints
where constraint_type in ('P','U')
and table_name='nom_de_la_table'); -
Problème d'accès ssh après maintenance de serveur
https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/6/html/deployment_guide/installing_sssd-starting_and_stopping_sssd
Starting and Stopping SSSD - Red Hat Customer Portal
-
Spring MVC and Spring JDBC Transaction Tutorial
https://o7planning.org/en/10311/spring-mvc-and-spring-jdbc-transaction-tutorial
-
Config Tomcat et config connecion oracle
https://tomcat.apache.org/tomcat-7.0-doc/jndi-datasource-examples-howto.html
https://confluence.atlassian.com/conf59/configuring-an-oracle-datasource-in-apache-tomcat-792499575.html
https://docs.oracle.com/cd/F49540_01/DOC/java.815/a64685/basic1.htm
-
VAE
Le git de Regis :
https://github.com/regis1512/tutoriel-web-spring
tuto de regis : https://rpouiller.developpez.com/tutoriels/spring/application-web-spring-hibernate/
Tuto spring : du prof : http://jean-luc.massat.perso.luminy.univ-amu.fr/ens/vae-jee/tp-mvc.html
jdbc du prof : http://jean-luc.massat.perso.luminy.univ-amu.fr/ens/vae-jee/jdbc.html
ORacle Using JdbcRowSet Objects
https://docs.oracle.com/javase/tutorial/jdbc/basics/jdbcrowset.html
Spring ORM example – JPA, Hibernate, Transaction
https://www.journaldev.com/7655/spring-orm-example-jpa-hibernate-transaction
Object Relational Mapping (ORM) Data Access
https://docs.spring.io/spring/docs/3.0.x/reference/orm.html
Data access with JDBC
https://docs.spring.io/spring/docs/3.0.x/spring-framework-reference/html/jdbc.html
Configuring Apache Tomcat for Oracle manually
https://www.ibm.com/support/knowledgecenter/en/SSHS8R_7.1.0/com.ibm.worklight.deploy.doc/admin/t_configuring_apache_tomcat_for_oracle_manually.html
-
Passer du SQL oracle au SQL ansi
https://stackoverflow.com/questions/18891148/oracle-joins-comparison-between-conventional-syntax-vs-ansi-syntax#
┌───────────────────────────────────┬─────────────────────────────────────────────┐ │ INNER JOIN - CONVENTIONAL │ INNER JOIN - ANSI SYNTAX │ ├───────────────────────────────────┼─────────────────────────────────────────────┤ │ SELECT │ SELECT │ │ emp.deptno │ ename, │ │ FROM │ dname, │ │ emp, │ emp.deptno, │ │ dept │ dept.deptno │ │ WHERE │ FROM │ │ emp.deptno = dept.deptno; │ scott.emp INNER JOIN scott.dept │ │ │ ON emp.deptno = dept.deptno; │ ├───────────────────────────────────┼─────────────────────────────────────────────┤ │ LEFT OUTER JOIN - CONVENTIONAL │ LEFT OUTER JOIN - ANSI SYNTAX │ ├───────────────────────────────────┼─────────────────────────────────────────────┤ │ SELECT │ SELECT │ │ emp.deptno │ ename, │ │ FROM │ dname, │ │ emp, │ emp.deptno, │ │ dept │ dept.deptno │ │ WHERE │ FROM │ │ emp.deptno = dept.deptno(+); │ scott.emp LEFT OUTER JOIN scott.dept │ │ │ ON emp.deptno = dept.deptno; │ ├───────────────────────────────────┼─────────────────────────────────────────────┤ │ RIGHT OUTER JOIN - CONVENTIONAL │ RIGHT OUTER JOIN - ANSI SYNTAX │ ├───────────────────────────────────┼─────────────────────────────────────────────┤ │ SELECT │ SELECT │ │ emp.deptno │ ename, │ │ FROM │ dname, │ │ emp, │ emp.deptno, │ │ dept │ dept.deptno │ │ WHERE │ FROM │ │ emp.deptno(+) = dept.deptno; │ scott.emp RIGHT OUTER JOIN scott.dept │ │ │ ON emp.deptno = dept.deptno; │ ├───────────────────────────────────┼─────────────────────────────────────────────┤ │ FULL OUTER JOIN - CONVENTIONAL │ FULL OUTER JOIN - ANSI SYNTAX │ ├───────────────────────────────────┼─────────────────────────────────────────────┤ │ SELECT │ SELECT │ │ * │ * │ │ FROM │ FROM │ │ emp, │ scott.emp FULL OUTER JOIN scott.dept │ │ dept │ ON emp.deptno = dept.deptno; │ │ WHERE │ │ │ emp.deptno = dept.deptno(+) │ │ │ UNION ALL │ │ │ SELECT │ │ │ * │ │ │ FROM │ │ │ emp, │ │ │ dept │ │ │ WHERE │ │ │ emp.deptno(+) = dept.deptno │ │ │ AND emp.deptno IS NULL; │ │ └───────────────────────────────────┴─────────────────────────────────────────────┘