2016-06-23 1 views
0

J'ai deux questions D'abord, c'est la différence substantielle entre l'exécution de la commande ALTER SYSTEM FLUSH SHARED_POOL dans le serveur et dans un client? Dans mon entreprise, ils m'apprennent que je dois exécuter directement dans le serveur de cette commande, mais je pense que c'est juste une commande qui va pour le réseau et juste un message qui est vidé, je pense que cela ne devrait pas être différent. avec beaucoup de données, je parle d'un système qui prend environ 5 minutes environ pour videralter system flush shared_pool oracle

La seconde, comment puis-je vider une instance d'une autre instance?

+2

Vous faites sonner comme la course cette commande est quelque chose que vous faites régulièrement. Mais vous (ou le DBA en fait) ne devriez vraiment exécuter cette commande que dans des circonstances très extrêmes. J'espère vraiment que vous ne le faites pas en production, car c'est un tueur de performance. – sstan

Répondre

2

ALTER SYSTEM FLUSH SHARED_POOL; peut être exécuté à partir de n'importe quel emplacement, ce n'est pas grave.

Votre société vous apprend probablement à l'exécuter à partir du serveur, car c'est le nombre de DBA connectés à la base de données. Cette commande est normalement exécuté par un administrateur de base de données, et de nombreux DBA normalement tout faire à partir du serveur.

Je suis partiellement en désaccord avec @sstan - rinçage de la piscine commune devrait être rare dans la production , mais il peut être relativement courante dans le développement . Le vidage du pool partagé et du cache tampon peut aider à imiter les requêtes en cours d'exécution "à froid".

Je ne comprends pas votre deuxième question. Demandez-vous comment exécuter la commande à distance? Si oui, vous pouvez l'exécuter sur un lien de base de données:

begin 
    [email protected]_link('alter system flush shared_pool'); 
end; 
/
+0

Je suis un DBA junior, nous faisons certaines tâches du client, mais cette tâche est spécifique du serveur, comment puis-je tester si elles sont vraiment une différence significative, je veux dire faire le flush prendre un temps que je peux remarquer, et la deuxième cuestion que j'espérais une réponse comme ça, mais juste dans la même commande quelque chose comme ALTER KILL SESSION '130,620, @ 2'; –

+0

Cela va être difficile à tester, car la deuxième fois que vous exécuterez la commande, elle sera probablement beaucoup plus rapide. Vous devrez peut-être l'exécuter une fois par jour, alternant entre l'exécution sur le client et le serveur, répéter X fois, puis faire la moyenne des temps d'exécution. Mais je ne prendrais même pas la peine de le tester - je ne peux pas imaginer * pourquoi * cette commande prendrait plus de temps en fonction de l'endroit où elle est exécutée. Je n'ai * jamais * vu une commande s'exécuter plus lentement sur un client sauf s'il transférait des données, et cette commande ne transfère pas de données. –

+0

Je vais chercher un moyen de charger le tampon partagé beaucoup plus rapidement et également à chaque fois .. Et voir si ce sont des paramètres à changer pour le rendre plus difficile à vider –