Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
sysadmin:tips:oracle [2011/04/22 16:10]
james ajout tip linesize
sysadmin:tips:oracle [2015/01/09 11:39] (Version actuelle)
james ajout tags
Ligne 1: Ligne 1:
-====== Export CSV sous oracle avec sqlplus ​======+{{tag>​astuces comandes oracle bdd admin redo log taille lister session utilisation tablespace sqlplus export_csv creation_table schema}} 
 +====== Oracle ====== 
 + 
 +===== Admin ===== 
 +Les requêtes coté admin oracle. 
 + 
 +<​note>​adaptez les requetes si vous etes en RAC pour utiliser les gv$session, ....</​note>​ 
 +==== Lister les sessions générant actuellement le plus de redo log ==== 
 +connecté en sysdba : 
 +<​code>​select s.sid, sn.serial#, sn.machine, n.name, s.value, sn.username,​ sn.program, sn.type, sn.module 
 +from v$sesstat s 
 +    join v$statname n on n.statistic#​ = s.statistic#​ 
 +    join v$session sn on sn.sid = s.sid 
 +where name like '%redo entries%'​ 
 +order by value desc ;</​code>​ 
 + 
 +==== Connaître l'​utilisation des différents tablespaces ==== 
 + 
 +connecté en sysdba :<​code>​ 
 +select a.tablespace_name,​ b.free,​a.total,​round((a.used-b.free)/​a.total * 100,2) prc  
 +from (   
 +    select tablespace_name,​sum(bytes) used, sum(maxbytes) total  
 +    from dba_data_files group by tablespace_name) A, (  
 +        select tablespace_name,​sum(bytes) free   
 +        from dba_free_space group by tablespace_name) B  
 +where a.tablespace_name=b.tablespace_name ; 
 +</​code>​ 
 +utilisable dans un plugin munin pour grapher le pourcentage d'​utilisation par exemple 
 + 
 +===== Utilisateur ===== 
 + 
 +==== Export CSV sous oracle avec sqlplus ====
 De base on ne peut pas exporter en CSV ;-) De base on ne peut pas exporter en CSV ;-)
  
Ligne 22: Ligne 53:
 <​note>​Remarquez les mots clef "SPOOL $filename"​ et "SPOOL off" pour débuter puis mettre fin a la redirection de la sortie dans le fichier csv</​note>​ <​note>​Remarquez les mots clef "SPOOL $filename"​ et "SPOOL off" pour débuter puis mettre fin a la redirection de la sortie dans le fichier csv</​note>​
 <​note>​adaptez le linesize pour avoir des lignes plus longues si vous en avez besoin</​note>​ <​note>​adaptez le linesize pour avoir des lignes plus longues si vous en avez besoin</​note>​
 +
 +==== Afficher la requête de creation de table ====
 +Voici l'​equivalent SQLplus du "SHOW CREATE TABLE" MySQL, en remplaçant $TABLE_NAME et $SCHEMA_NAME par les valeurs souhaitées ​ :<​code>​
 +set pages 0
 +set long 999999
 +select dbms_metadata.get_ddl('​TABLE',​ '​$TABLE_NAME',​ '​$SCHEMA_NAME'​) from dual;</​code>​
 +<​note>​ cette requete peut etre abrégée en <​code>​select dbms_metadata.get_ddl('​TABLE',​ '​$TABLE_NAME'​) from dual ; </​code>​ sur une table du schéma courant</​note>​
 +
 +
 +==== Afficher le temps de traitement de chaque requete avec sqlplus ====
 +Il faut utiliser :<​code>​set timing on</​code>​
 +comme par exemple dans l'​exemple suivant :
 +<​code>​SQL>​ set timing on
 +SQL> select * from dual ;
 +
 +D
 +-
 +X
 +
 +Elapsed: 00:00:00.05
 +</​code>​
 +
 +==== Limiter le nombre de resultats renvoyés par une requete ====
 +L'​equivalent MySQL de <​code>​select col from tbl limit 20;</​code>​ est <​code>​select col from tbl where rownum<​=20;</​code>​
 +<​note>​ Bien entendu, Oracle sait faire les choses simplement, donc pour faire un _order by_ sur la table, mais pas que sur les 20 résultats réclamés, et bien, on est bien obligé de faire CA : <​code>​select * from (select col from tbl order by moncul asc) where rownum<​=20;</​code>​
 +</​note>​
 +
 +==== Lister les tables ====
 +
 +  * Lister les tables du schéma de l'​utilisateur courant :<​code>​SELECT table_name FROM user_tables;</​code>​
 +  * Lister les tables accessibles par l'​utilisateur :<​code>​SELECT table_name FROM all_tables;</​code>​
 +  * Lister toutes les tables (il faut être admin/​sysdba) : <​code>​SELECT table_name FROM dba_tables; </​code>​
 +
 +==== Changer le format de date utilisé pour la session courante ====
 +pour changer temporairement le format de date pour la session actuelle : <​code>​alter session set nls_date_format = '​dd/​mm/​yyyy HH24:​MI:​SS';</​code>​
sysadmin/tips/oracle.1303481413.txt.gz · Dernière modification: 2011/04/22 16:10 par james
Driven by DokuWiki Recent changes RSS feed Valid CSS Valid XHTML 1.0