jeudi 17 avril 2014
dimanche 16 février 2014
Les données à l'heure du big data
Une réflexion sur l'évolution des bases de données au moment où le big data commence sa démocratisation.
jeudi 28 novembre 2013
db_stress: un prototype pour simuler une montée en charge
Cet outil écrit en Java ( environnement de test: AIX6, JVM 1.6, instance 11.2.0.2 ) permet de créer n threads. Pour chaque thread, il utilise une session créée par un pool de connexion UCP et exécute une transaction ( select ou procédure stockée ) m fois. Entre chaque exécution, un sleep permet de stresser plus au moins l'instance.
Il est disponible ici.
Pour l'utiliser, il suffit de compiler les fichiers source ( javac ) après avoir paramétré votre environnement unix ( voir fichier env_java ). Il se lance de cette manière: java Pilote nb_thread delay_ms nb_execution. Le premier paramètre indique le nombre de threads, le second paramètre la valeur du sleep en ms et le troisième paramètre le nombre d'exécutions de chaque transaction.
Il se configure à l'aide de deux fichiers xml, config.xml et scenario.xml. Le fichier config.xml permet de définir les caractéristiques de l'instance via une url jdbc et de configurer le pool de connexion UCP. Le fichier scenario.xml permet de définir un test de charge; il décrit la transaction de chaque thread. L'outil ne traite que les select et les procédures. L'utilisation des variables bindées est possible.
Il est disponible ici.
Pour l'utiliser, il suffit de compiler les fichiers source ( javac ) après avoir paramétré votre environnement unix ( voir fichier env_java ). Il se lance de cette manière: java Pilote nb_thread delay_ms nb_execution. Le premier paramètre indique le nombre de threads, le second paramètre la valeur du sleep en ms et le troisième paramètre le nombre d'exécutions de chaque transaction.
Il se configure à l'aide de deux fichiers xml, config.xml et scenario.xml. Le fichier config.xml permet de définir les caractéristiques de l'instance via une url jdbc et de configurer le pool de connexion UCP. Le fichier scenario.xml permet de définir un test de charge; il décrit la transaction de chaque thread. L'outil ne traite que les select et les procédures. L'utilisation des variables bindées est possible.
mardi 29 octobre 2013
Histogramme
Une série d'articles intéressants sur les limites des histogrammes : http://allthingsoracle.com/histograms-part-3-when/
mardi 6 août 2013
ORA-4031: KGLH0
En utilisant l'outil db_shared_pool, j'ai pu observer que le namespace des pipes ne se désalloue pas en 11.2.0.2. Pour éviter un arrêt/relance de l'instance, une solution consiste à purger les pipes via la procédure dbms_pipe.purge, ce qui force leur désallocation.
Si le problème se pose sur d'autres objets du shared pool et s'il n'existe pas de patch ou si vous ne pouvez pas passer un patch existant, penser à la procédure dbms_shared_pool.purge. Elle vous sera peut-être d'un grand secours !
Si le problème se pose sur d'autres objets du shared pool et s'il n'existe pas de patch ou si vous ne pouvez pas passer un patch existant, penser à la procédure dbms_shared_pool.purge. Elle vous sera peut-être d'un grand secours !
mercredi 29 mai 2013
Outils
Voici un lien sur quelques outils pouvant être utiles pour votre administration de bases Oracle.
Ils sont compatibles 10g et 11g et fonctionnent sur des machines ( ou partitions ) de type Unix. Ils n'ont besoin que du shell sh et de sqlplus.
db_block est un outil permettant de détecter les sessions bloquantes et bloquées pour les locks de type TX et TM. Il s'agit du type de hang le plus classique, mais en vous appuyant sur la vue v$lock, vous pouvez étendre les recherches sur d'autres enqueues.
L'outil db_shared_pool permet d'analyser une erreur ORA-4031 au niveau du shared pool.
L'outil db_perf permet de détecter les requêtes coûteuses exécutées récemment. Il donne leurs caractéristiques ( texte de la requête, statistiques d'exécution, plan d'exécution ) , quelques conseils pour les optimiser ( sql tuning advisor, sql access advisor ) et des statistiques sur l'instance durant leur exécution ( AWR, ASH ).
Ils sont compatibles 10g et 11g et fonctionnent sur des machines ( ou partitions ) de type Unix. Ils n'ont besoin que du shell sh et de sqlplus.
db_block est un outil permettant de détecter les sessions bloquantes et bloquées pour les locks de type TX et TM. Il s'agit du type de hang le plus classique, mais en vous appuyant sur la vue v$lock, vous pouvez étendre les recherches sur d'autres enqueues.
Si un hang vous empêche tout accès à une instance, il ne reste plus qu'à utiliser l'option -prelim de sqlplus, puis à exécuter l'instruction suivante : oradebug hanganalyze 3 pour analyser le problème ( note 215858.1 ).
L'outil db_shared_pool permet d'analyser une erreur ORA-4031 au niveau du shared pool.
L'outil db_perf permet de détecter les requêtes coûteuses exécutées récemment. Il donne leurs caractéristiques ( texte de la requête, statistiques d'exécution, plan d'exécution ) , quelques conseils pour les optimiser ( sql tuning advisor, sql access advisor ) et des statistiques sur l'instance durant leur exécution ( AWR, ASH ).
mardi 19 mars 2013
Compression
Je vous conseille la lecture des articles de J.Lewis parus sur le sujet : http://jonathanlewis.wordpress.com/2013/01/24/compression/
Inscription à :
Articles (Atom)