Affichage des articles dont le libellé est optimisation. Afficher tous les articles
Affichage des articles dont le libellé est optimisation. Afficher tous les articles
mardi 22 janvier 2013
Savoir si les clés étrangères (FK) sont présente (Oracle)
Pour connaitre les tables qui dispose ou non de foreign key (clés étrangères –FK). j’ai conçus une petit fonction Oracle pour déterminer l’existence sur une table d’une FK par rapport a un champs.
mardi 8 janvier 2013
Optimisation Oracle Index et tables procédures (étape 2)
Il y a un petit moment j’ai mis un article concernant les requêtes permettant d’optimiser les tables et les index dans Oracle.
Ce script est très pratique, et je l’ai fait un peu évoluer afin de le rendre “automatique”. Je vous présente donc la monture v2 en en faisant une procédure. Cette dernière n’a rien de révolutionnaire, quelques curseurs pour parcourir les statements et les exécuter :
CREATE OR REPLACE PROCEDURE SU.REBUILD_INDEX (ma_table IN VARCHAR2)
IS
CURSOR CURS_REBUILD
IS
-- rebuild
select 'ALTER INDEX ' || index_name || ' REBUILD ' as txt_sql from user_indexes where UPPER(table_name) = UPPER(ma_table) and INDEX_TYPE!='LOB';
R1 CURS_REBUILD%ROWTYPE;
CURSOR CURS_STRUCT
IS
-- validate structure
select 'ANALYZE INDEX ' || index_name || ' VALIDATE STRUCTURE ' as txt_sql from user_indexes where UPPER(table_name) = UPPER(ma_table) and INDEX_TYPE!='LOB';
R2 CURS_STRUCT%ROWTYPE;
CURSOR CURS_STAT
IS
-- stat Analyse
select 'Analyze Table ' || UPPER(ma_table) || ' Estimate Statistics ' as txt_sql from dual;
R3 CURS_STAT%ROWTYPE;
BEGIN
---------rebuild ----------------------------------------------------
OPEN CURS_REBUILD;
LOOP
FETCH CURS_REBUILD INTO R1;
EXIT WHEN CURS_REBUILD%NOTFOUND;
EXECUTE IMMEDIATE R1.txt_sql;
END LOOP;
CLOSE CURS_REBUILD;
DBMS_OUTPUT.PUT_LINE('CURS_REBUILD 1 ok : TABLE : ' || ma_table);
----------validate structure---------------------------------------------------
OPEN CURS_STRUCT;
LOOP
FETCH CURS_STRUCT INTO R2;
EXIT WHEN CURS_STRUCT%NOTFOUND;
EXECUTE IMMEDIATE R2.txt_sql;
END LOOP;
CLOSE CURS_STRUCT;
DBMS_OUTPUT.PUT_LINE('CURS_REBUILD 2 ok : TABLE : ' || ma_table);
-----------stat Analyse--------------------------------------------------
OPEN CURS_STAT;
LOOP
FETCH CURS_STAT INTO R3;
EXIT WHEN CURS_STAT%NOTFOUND;
EXECUTE IMMEDIATE R3.txt_sql;
END LOOP;
CLOSE CURS_STAT;
DBMS_OUTPUT.PUT_LINE('CURS_REBUILD 3 ok : TABLE : ' || ma_table);
END;
/
lundi 17 décembre 2012
Tree Size - Taille des arborescences
Un petit utilitaire sympathique pour connaitre rapidement la taille de chaque dossier de votre arborescence Windows :
Il vous permet de voir ou gagner de la place...
TreeSize :
http://www.jam-software.com/treesize_free/#

Dans notre exemple Google Chrome conserve les installations, du coup .... hop 1Go de libre.
Il vous permet de voir ou gagner de la place...
TreeSize :
http://www.jam-software.com/treesize_free/#
Dans notre exemple Google Chrome conserve les installations, du coup .... hop 1Go de libre.
jeudi 24 mai 2012
Optimisation Oracle Index et tables
Bonjour,
Je viens de découvrir les ordres des requêtes SQL qui permettent d’optimiser les tables et index d'une table.
Cela permet via script (automatique) et par exemple suite a de grosse opération de mise a jour (update / delete), de restructurer la table en question.
A la fin du script permet de tout mettre tout propre ^^
Voila en espérant que ces instructions puisse vous aidez.
Par contre, ce que je n'ai pas fait (par manque de temps) est le Benchmark de ses actions pour savoir le gain. Il aurait fallut analyse les performances avant la mise a jour des index/tables et après l'opération pour avoir le rapport de performance.
Dans tous les cas, cela ne peux pas faire de mal :)
Je viens de découvrir les ordres des requêtes SQL qui permettent d’optimiser les tables et index d'une table.
Cela permet via script (automatique) et par exemple suite a de grosse opération de mise a jour (update / delete), de restructurer la table en question.
select 'ALTER INDEX ' || index_name || ' REBUILD;' from user_indexes where table_name = 'MA_TABLE';
select 'ANALYZE INDEX ' || index_name || ' VALIDATE STRUCTURE;' from user_indexes where table_name = 'MA_TABLE';
Analyze Table MA_TABLE Estimate Statistics;
A la fin du script permet de tout mettre tout propre ^^
Voila en espérant que ces instructions puisse vous aidez.
Par contre, ce que je n'ai pas fait (par manque de temps) est le Benchmark de ses actions pour savoir le gain. Il aurait fallut analyse les performances avant la mise a jour des index/tables et après l'opération pour avoir le rapport de performance.
Dans tous les cas, cela ne peux pas faire de mal :)
lundi 19 octobre 2009
Vider le cache Oracle
Voici quelques lignes de code pour effectuer le vidage du cache d'oracle.
Afin de permettre d'exécuter 2fois des requêtes sans que Oracle ne fasse sa propre gestion de cache du résultat. Faussant ainsi les délais d'exécution des requêtes suivantes.
alter system flush shared_pool; alter system flush buffer_cache;
Site tres utile pour Oracle : http://www.aide-oracle.net/
Inscription à :
Articles (Atom)