Index


Cette requête permet de savoir quelles sont les colonnes devant être indéxées.

Code

COL table_name format A20 head 'TABLE_NAME' COL constraint_name format A20 head 'CONSTRAINT_NAME' COL table2 format A20 head 'TABLE_TO_BE_INDEXED' COL column_name format A20 head 'COLUMN_TO_BE_INDEXED' SET linesize 100 SELECT t.table_name,c.constraint_name,c.table_name table2,acc.column_name FROM all_constraints t, all_constraints c, all_cons_columns acc WHERE c.r_constraint_name = t.constraint_name AND c.table_name =acc.table_name AND c.constraint_name = acc.constraint_name AND NOT EXISTS ( SELECT '1' FROM all_ind_columns aid WHERE aid.table_name = acc.table_name AND aid.column_name = acc.column_name) ORDER BY c.table_name;

Cette requête permettant d'avoir la liste des index, par date d'analyse.

Code

SELECT index_name, table_name, TO_CHAR(last_analyzed, 'DD/MM/YYYY') FROM user_indexes ORDER BY NVL(last_analyzed, TO_CHAR('01/01/1900','DD/MM/YYYY')), table_name;

(1) Cette requête permettant l'analyse d'un index.
(2) Cette requête permettant de requeillir l'analyse de l'index.
(3) Cette requête permet la reconstruction de l'index.
(4) Cette requête permet la reconstruction de l'index, si il est partionné.

Code

(1) ANALYZE INDEX MY_PK_NAME VALIDATE STRUCTURE; (2) SELECT name, height, lf_rows, del_lf_rows, ROUND((del_lf_rows/DECODE(del_lf_rows,0,1,lf_rows))*100,2) pourcentage FROM index_stats; (3) ANALYZE INDEX MY_PK_NAME COMPUTE STATISTICS; (4) ANALYZE INDEX MY_PK_NAME REBUILD TABLESPACE MY_Table_Space_NAME COMPUTE STATISTICS;

Lock sur la table


Cette requête permet de savoir quelles sont les lock sur la BD.

Code

SELECT o.object_name,l.oracle_username,l.os_user_name,l.session_id, decode( l.locked_mode, 2,'Row-S', 3,'Row-X', 4,'Share', 5,'S/Row-X', 6 ,'Exclusive', 'NULL') FROM user_objects o , v$locked_object l WHERE o.object_id = l.object_id;

Taille


Cette requête permet de savoir quelles sont la taille par types d'objets.

Code

SELECT ( SELECT sum(bytes)/1048576 Megs FROM user_extents WHERE segment_type = 'INDEX') As My_INDEX, ( SELECT sum(bytes)/1048576 Megs FROM user_extents WHERE segment_type = 'INDEX PARTITION' ) As My_INDEX_PARTITION, ( SELECT sum(bytes)/1048576 Megs FROM user_extents WHERE segment_type = 'LOB PARTITION') As My_LOB_PARTITION, ( SELECT sum(bytes)/1048576 Megs FROM user_extents WHERE segment_type = 'TABLE') As My_TABLE, ( SELECT sum(bytes)/1048576 Megs FROM user_extents WHERE segment_type = 'TABLE PARTITION') As My_TABLE_PARTITION, TO_CHAR(SYSDATE,'DD/MM/YYYY HH24:MI') FROM DUAL;

Statistiques


Cette requête permet de donner le nombre de delete, d'insert et d'update pour chaque table.

Code

SELECT * FROM all_tab_modifications;

Info global


Cette requête permet de donner la liste des FK.

Code

SELECT TABLE_NAME, CONSTRAINT_NAME, R_CONSTRAINT_NAME, STATUS FROM user_constraints WHERE constraint_type = 'R';

Cette requête permet de donner la liste des not null + les valeurs par defaut

Code

SELECT TABLE_NAME, COLUMN_NAME, DATA_DEFAULT FROM user_tab_cols WHERE NULLABLE='N';

Cette requête permet de donner la liste des clés primaires + index associé

Code

SELECT CONSTRAINT_NAME, TABLE_NAME, INDEX_NAME FROM user_constraints WHERE CONSTRAINT_TYPE='P';

Cette requête permet de donner la liste des check et des not null

Code

SELECT TABLE_NAME, SEARCH_CONDITION, STATUS FROM user_constraints WHERE CONSTRAINT_TYPE='C';

Cette requête permet de donner la liste des db_link

Code

SELECT * FROM user_db_links;

Cette requête permet de donner la liste des tables monitorées

Code

SELECT TABLE_NAME, MONITORING FROM user_all_tables;

Cette requête permet de donner la liste des PK et les index avec les colonnes utilisées

Code

SELECT TABLE_NAME, INDEX_NAME, COLUMN_NAME, COLUMN_POSITION FROM user_ind_columns;

Cette requête permet de donner la liste des objets d'une BD : index, table, lob, cles, partition

Code

SELECT * FROM user_objects;

Cette requête permet de donner la liste des procédures

Code

SELECT * FROM user_procedures;

Cette requête permet de donner la liste des séquences

Code

SELECT * FROM user_sequences;

Cette requête permet de donner la liste des tables

Code

SELECT * FROM user_tables;

Génèration des requêtes de création d'une BD


Code

SELECT dbms_metadata.get_ddl('TABLE', table_name, user) FROM user_tables; SELECT dbms_metadata.get_ddl('INDEX', index_name, user) FROM user_indexes; SELECT dbms_metadata.get_ddl('SEQUENCE', sequence_name, user) FROM user_sequences; SELECT dbms_metadata.get_ddl('PROCEDURES', procedure_name, user) FROM user_procedures; SELECT dbms_metadata.get_ddl('CONSTRAINT', constraint_name, user) FROM user_constraints WHERE CONSTRAINT_NAME NOT LIKE '%SYS%';