Précédent   Forum des professionnels en informatique > Bases de données > Oracle > SQL
SQL Forum d'entraide sur le SQL pour Oracle
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 09/12/2007, 16h22   #1
Invité de passage
 
Inscription : décembre 2007
Messages : 1
Détails du profil
Informations forums :
Inscription : décembre 2007
Messages : 1
Points : 0
Points : 0
Par défaut append pour eviter redo

bonjour
je veux éviter l'utilisation des redo et donc des archives pour un insert

voici les tests que j'ai fait
via du pl/sql je passe toujours par les redo
j'ai fait des tests
et je ne comprends pas voici ce que j'ai fait

creation d'une table comme dba_objects
et j'insere

table en nologging

Code :
1
2
3
4
5
declare 
begin
INSERT INTO toto SELECT * FROM dba_objects WHERE rownum<10000 ;
end;
/
redosize
1063320

au niveau de l'insert
avec un append
6216

avec un append + nologging

3444

avec un nologging sans append

1015888

le premier test est nickel

deuxieme test


Code :
1
2
3
4
5
6
7
8
declare
cursor c1 IS SELECT object_name FROM dba_objects WHERE object_name LIKE ‘DBA%’ 
begin
FOR enreg_c1 IN c1 loop
INSERT INTO toto (object_name) VALUES (enreg_c1.object_name);
end loop;
end;
/
redo size
267176
avec un append : 269204
avec append + nologging : 265388
nologging 262924

si quelqu'un a une idée je serai content de savoir
guitouma est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/12/2007, 18h27   #2
Membre éprouvé
 
Inscription : décembre 2007
Messages : 354
Détails du profil
Informations personnelles :
Localisation : France

Informations forums :
Inscription : décembre 2007
Messages : 354
Points : 408
Points : 408
NOLOGGING s'applique uniquement à certaines opérations de "masse" ...
Les instructions insert ... values, update et delete ne bénéficient pas de cette option
Michel SALAIS est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/12/2007, 09h15   #3
Rédacteur/Modérateur
 
Avatar de orafrance
 
Inscription : janvier 2004
Messages : 15 861
Détails du profil
Informations personnelles :
Âge : 35

Informations forums :
Inscription : janvier 2004
Messages : 15 861
Points : 16 212
Points : 16 212
il faut utiliser un tableau et FORALL pour faire une insertion de masse en direct mode (avec append) ou INSERT AS SELECT.
orafrance est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 12h45.


 
 
 
 
Partenaires

Hébergement Web