Chér(e) ami(e)s en oracle
Vous souhaitez charger rapidement des données dans une table. il faut pour cela déactiver la journalisation sur les tables concernées .
cela minimise la génération Redo pour les opérations de chemin direct
Utilisez ensuite une fonctionnalité de chargement de chemin direct, par exemple: INSERT /*+ APPEND */ on queries that use a subquery for determining which records are inserted • INSERT /*+ APPEND_VALUES */ on queries that use a VALUES clause • CREATE TABLE...AS SELECT Par défaut les tables sont en mode journalisation LOGGIN EXemple : create table emp( emp_id number ,first_name varchar2(30) ,last_name varchar2(30)); SQL> select table_name, logging 2 from user_tables 3 where table_name = 'EMP'; SQL> / TABLE_NAME LOG ----------------------- EMP YES SQL> alter table emp nologging; TABLE_NAME LOG ----------------------- EMP NO Avantage:
Les inserts de chemin direct (sans passé par le tempo) ont deux avantages de performances par rapport aux instructions d'insertion standard: • Si NOLOGGING est spécifié, une quantité minimale de redo est générée. • Le cache tampon est contourné et les données sont chargées directement dans les fichiers de données. Ceci peut améliorer de manière significative les performances de chargement. La fonction NOLOGGING minimise la génération des recovers pour les opérations de chemin direct uniquement. Pour les inserts de chemin direct, l'option NOLOGGING peut augmenter considérablement la vitesse de chargement.
Inconvénient :
Si vos données sont critiques, n'utilisez pas NOLOGGING
Si vos données peuvent être facilement recréées, alors NOLOGGING est souhaitable lorsque vous essayez d'améliorer les performances de charges de données volumineuses. OraclementVotre