IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Administration Oracle Discussion :

Optimiser la mémoire pour réduire le temp d'import [Fait]


Sujet :

Administration Oracle

  1. #1
    Membre éclairé Avatar de Bourak
    Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2005
    Messages
    231
    Détails du profil
    Informations personnelles :
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Octobre 2005
    Messages : 231
    Par défaut Optimiser la mémoire pour réduire le temp d'import
    Bonjour,

    je travaille sur une base Oracle 9.2i hébergée sur un serveur Windows server 2003 avec 4Go de RAM.
    Sachant que un seul poste client est connecter à ce serveur.

    il y'a d'autre pc (Nommé Site) où installer Oracle mais n'ont pas connecter directement à ce serveur.

    Je fait à chaque fois l'importation des donnees exporter depuis les sites au serveur à l'aide des disques externes.


    voici qq paramètres au niveau mémoire de ma base (paramètre standard):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    db_cache_size : 24 Mo
    db_block_size : 8Ko
    shared_pool_size : 48 Mo
    java_pool:32 Mo
    large_pool : 8 Mo
    Mémoire PGA : 24 Mo
    Le problème c'est que l'import d'un fichier dmp du taille (2 go) au serveur reste plus de 2 heures.

    Comment règler la mémoire du base pour diminuer le temp d'import et merci.
    Remarque :J'utilise la methode Normale d'import
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    imp System/pass@base file=c:\export.dmp fromuser=X touser=X

  2. #2
    Membre expérimenté
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    207
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 207
    Par défaut
    Tout dépends de la taille de ton dump !
    Combien de tables avec combien de ligne;
    Et combien de table avec des champs BLOB, CLOB; LONG

    Après ce dépend ce que tu fais avec ce serveur et combien de fois tu importe / exporte.
    Tu peux le programmer en travail de nuit comme ca les deux heures ne sont pas un pb.

    PAr rapport aux paramètre mémoire, je suppose que ce n'est pas une grosse base avec des applications importante dessus.

    Sinon je te conseille la doc oracle sur le sujet:
    http://download.oracle.com/docs/cd/B10501_01/server.920/a96652/ch02.htm#1005322

    Laurent.

    My Oracle blog :http://lao-dba.over-blog.com/

  3. #3
    Membre Expert Avatar de scheu
    Inscrit en
    Juin 2007
    Messages
    1 506
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 1 506
    Par défaut
    Pistes pour diminuer le temps de l'import :
    - augmenter le paramètre "buffer" (buffer=100000000 pour 100M par exemple)
    - ne pas importer les indexes et les recréer à la fin (indexes=n)
    - analyze=n
    - mettre temporairement la base en noarchivelog

    Cf tuto sur ce site
    La théorie, c'est quand on sait tout mais que rien ne fonctionne.
    La pratique, c'est quand tout fonctionne mais que personne ne sait pourquoi.
    Ici, nous avons réuni théorie et pratique : Rien ne fonctionne ... et personne ne sait pourquoi !

    Réplication de base avec Postgresql : http://scheu.developpez.com/tutoriel.../log-shipping/

  4. #4
    Membre éclairé Avatar de Bourak
    Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2005
    Messages
    231
    Détails du profil
    Informations personnelles :
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Octobre 2005
    Messages : 231
    Par défaut
    Salut

    j'ai 34 table avec 2 tables contenant des champs de type blob et qui depassent presque 10000 lignes.
    L'import ce fait une fois par jour.
    Cette base à consommé presque 22 Go d'espace disque.

    Merci d'avance

  5. #5
    Membre éclairé Avatar de Bourak
    Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2005
    Messages
    231
    Détails du profil
    Informations personnelles :
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Octobre 2005
    Messages : 231
    Par défaut
    J'ai essayer ces deux commandes :
    L'import devient un peu rapide , mais y'a til d'autres modifications à faire au niveau mémoire allouer à Oracle et pour augmenter la perfermance..

  6. #6
    Membre expérimenté
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    207
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 207
    Par défaut
    Le problème c'est que les tables avec des blobs sont traitées ligne à ligne.
    Maintenant 10000 ca me parait pas énorme.
    Qu'est ce tu appelle "un import qui dure" (30 minutes, 1 heure, plusieurs heures...)
    Qu'est ce que tu mets dans tes blob et est ce que par hasard tes colonnes blob ne sont pas indexés avec des indexes de type context ?

    La je deviens curieux, mais pourquoi un import quotidien ?

    va y franco sur le buffer: buffer=500000
    Laurent,

    My oracle blog => http://www.lao-dba.com

  7. #7
    Membre expérimenté
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    207
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 207
    Par défaut
    Bonsoir ;

    Essaye manager pour l'utilisateur system ou change_on_install pour sys
    Mais pourquoi ne pas ouvrir un nouveau post. Je ne vois pas le rapport avec le post en cours.

    LAO.

  8. #8
    Membre Expert Avatar de scheu
    Inscrit en
    Juin 2007
    Messages
    1 506
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 1 506
    Par défaut
    Citation Envoyé par lallio Voir le message
    va y franco sur le buffer: buffer=500000
    Je suis même déjà monté à 100000000 (100 M) sans problèmes
    La théorie, c'est quand on sait tout mais que rien ne fonctionne.
    La pratique, c'est quand tout fonctionne mais que personne ne sait pourquoi.
    Ici, nous avons réuni théorie et pratique : Rien ne fonctionne ... et personne ne sait pourquoi !

    Réplication de base avec Postgresql : http://scheu.developpez.com/tutoriel.../log-shipping/

  9. #9
    Rédacteur

    Homme Profil pro
    Consultant / formateur Oracle et SQL Server
    Inscrit en
    Décembre 2002
    Messages
    3 461
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Consultant / formateur Oracle et SQL Server

    Informations forums :
    Inscription : Décembre 2002
    Messages : 3 461
    Par défaut
    Citation Envoyé par scheu Voir le message
    Je suis même déjà monté à 100000000 (100 M) sans problèmes
    Mais est-ce que c'était nettement plus rapide qu'avec un tampon de 1M par exemple ?
    100 Mo, ça me paraît inutilement surgonflé.

  10. #10
    Membre Expert Avatar de scheu
    Inscrit en
    Juin 2007
    Messages
    1 506
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 1 506
    Par défaut
    Citation Envoyé par Pomalaix Voir le message
    Mais est-ce que c'était nettement plus rapide qu'avec un tampon de 1M par exemple ?
    Ca je ne sais pas
    La théorie, c'est quand on sait tout mais que rien ne fonctionne.
    La pratique, c'est quand tout fonctionne mais que personne ne sait pourquoi.
    Ici, nous avons réuni théorie et pratique : Rien ne fonctionne ... et personne ne sait pourquoi !

    Réplication de base avec Postgresql : http://scheu.developpez.com/tutoriel.../log-shipping/

  11. #11
    Membre éclairé Avatar de Bourak
    Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2005
    Messages
    231
    Détails du profil
    Informations personnelles :
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Octobre 2005
    Messages : 231
    Par défaut
    salut

    J'ai essayer buffer=100000000 mais elle n'accelere pas l'import.

    D'après mes essai un buffer=3072 est le plus parfait pour ma base.

    Merci d'avance.

  12. #12
    Membre Expert Avatar de scheu
    Inscrit en
    Juin 2007
    Messages
    1 506
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 1 506
    Par défaut
    Regarde la fréquence de switch des redologs, si elle est trop importante ton problème vient peut-être de là
    Tu as essayé de mettre la base temporairement en noarchivelog avant d'importer ?
    La théorie, c'est quand on sait tout mais que rien ne fonctionne.
    La pratique, c'est quand tout fonctionne mais que personne ne sait pourquoi.
    Ici, nous avons réuni théorie et pratique : Rien ne fonctionne ... et personne ne sait pourquoi !

    Réplication de base avec Postgresql : http://scheu.developpez.com/tutoriel.../log-shipping/

  13. #13
    Membre éclairé Avatar de Bourak
    Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2005
    Messages
    231
    Détails du profil
    Informations personnelles :
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Octobre 2005
    Messages : 231
    Par défaut
    Salut à tous

    Tu as essayé de mettre la base temporairement en noarchivelog avant d'importer ?
    L'import que je fait est en mode NoArchiveLog.

    Regarde la fréquence de switch des redologs
    Ou je peut trouvé la fréquence de switch des redologs.?

    Merci d'avance

  14. #14
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    161
    Détails du profil
    Informations personnelles :
    Localisation : France, Indre et Loire (Centre)

    Informations forums :
    Inscription : Décembre 2006
    Messages : 161
    Par défaut
    Citation Envoyé par Bourak Voir le message
    Salut à tous


    L'import que je fait est en mode NoArchiveLog.



    Ou je peut trouvé la fréquence de switch des redologs.?

    Merci d'avance
    Bonjour,
    Dans le fichier alert.log de la base

  15. #15
    Rédacteur

    Homme Profil pro
    Consultant / formateur Oracle et SQL Server
    Inscrit en
    Décembre 2002
    Messages
    3 461
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Consultant / formateur Oracle et SQL Server

    Informations forums :
    Inscription : Décembre 2002
    Messages : 3 461
    Par défaut
    Citation Envoyé par Bourak Voir le message
    Ou je peut trouvé la fréquence de switch des redologs.?
    On peut consulter la vue V$LOG_HISTORY par une requête du genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    --------------------------------
    -- Bascules redologs par heure
    --------------------------------
    SET PAGESIZE 50
    alter session set nls_date_format='DD/MM/YYYY HH24:MI:SS';
    select trunc(first_time, 'HH24') "DATE", count(*) "BASCULES"
    from v$log_history 
    where first_time >= sysdate -7
    group by rollup (trunc(first_time, 'HH24'))
    order by trunc(first_time, 'HH24');

  16. #16
    Membre éclairé Avatar de Bourak
    Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2005
    Messages
    231
    Détails du profil
    Informations personnelles :
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Octobre 2005
    Messages : 231
    Par défaut
    Bonjour,

    Quelle est la valeur optimale pour cette frequence et depend de quoi?

    Merci d'avance

  17. #17
    Rédacteur

    Homme Profil pro
    Consultant / formateur Oracle et SQL Server
    Inscrit en
    Décembre 2002
    Messages
    3 461
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Consultant / formateur Oracle et SQL Server

    Informations forums :
    Inscription : Décembre 2002
    Messages : 3 461
    Par défaut
    Citation Envoyé par Bourak Voir le message
    Bonjour,

    Quelle est la valeur optimale pour cette frequence et depend de quoi?

    Merci d'avance
    La recommandation usuelle est de 3 ou 4 bascules par heure.

    La fréquence constatée dépend de l'activité en modification dans la base (les SELECT n'ont pas d'incidence) et de la taille des fichiers redo logs.

  18. #18
    Membre Expert Avatar de scheu
    Inscrit en
    Juin 2007
    Messages
    1 506
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 1 506
    Par défaut
    Tu as essayé d'utiliser statpack durant ton import pour voir les éventuels événements d'attente ? Car là c'est dur de t'aider sans plus d'informations ...
    La théorie, c'est quand on sait tout mais que rien ne fonctionne.
    La pratique, c'est quand tout fonctionne mais que personne ne sait pourquoi.
    Ici, nous avons réuni théorie et pratique : Rien ne fonctionne ... et personne ne sait pourquoi !

    Réplication de base avec Postgresql : http://scheu.developpez.com/tutoriel.../log-shipping/

  19. #19
    Membre éclairé Avatar de Bourak
    Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2005
    Messages
    231
    Détails du profil
    Informations personnelles :
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Octobre 2005
    Messages : 231
    Par défaut
    Citation Envoyé par Pomalaix Voir le message
    La recommandation usuelle est de 3 ou 4 bascules par heure.

    La fréquence constatée dépend de l'activité en modification dans la base (les SELECT n'ont pas d'incidence) et de la taille des fichiers redo logs.
    Merci pour cette information et je vais la règler.

    Citation Envoyé par scheu Voir le message
    Tu as essayé d'utiliser statpack durant ton import pour voir les éventuels événements d'attente ? Car là c'est dur de t'aider sans plus d'informations ...
    Non je n'ai pas essayer Statpack, mais je l'ai vu dans les Tutorials mais d'après que j'ai constater qu'elle doit etre installer depuis la première utilisation du base pour donner des resultats parfait , et ma base elle a dépassé une année et 2 mois. Mais en tout cas je vais l'essayer et merci à tous.

  20. #20
    Rédacteur

    Homme Profil pro
    Consultant / formateur Oracle et SQL Server
    Inscrit en
    Décembre 2002
    Messages
    3 461
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Consultant / formateur Oracle et SQL Server

    Informations forums :
    Inscription : Décembre 2002
    Messages : 3 461
    Par défaut
    Citation Envoyé par Bourak Voir le message
    Non je n'ai pas essayer Statpack, mais je l'ai vu dans les Tutorials mais d'après que j'ai constater qu'elle doit etre installer depuis la première utilisation du base pour donner des resultats parfait , et ma base elle a dépassé une année et 2 mois.
    On peut utiliser statspack à tout moment au cours de la vie de la base, il n'y a aucun besoin de l'avoir installé dès l'origine.

Discussions similaires

  1. Réponses: 1
    Dernier message: 25/02/2012, 15h45
  2. Réponses: 2
    Dernier message: 26/07/2011, 09h19
  3. [AC-97] Optimiser une requête pour diminuer le temps d'execution
    Par Milyshyn76 dans le forum Requêtes et SQL.
    Réponses: 3
    Dernier message: 31/05/2010, 12h22
  4. Optimisation de la mémoire pour Oracle
    Par farenheiit dans le forum Administration
    Réponses: 25
    Dernier message: 14/01/2008, 13h47
  5. Réponses: 6
    Dernier message: 23/02/2007, 21h20

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo