|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Membre Expert
![]() Inscription : juin 2007 Messages : 1 497 ![]() |
Bonjour
Je dois créer une table T2 qui contient une partie des données de la table T1, cette "partie" représentant tout-de-même 100 millions de lignes, pour environ 10 Go Le problème concerne mon tablespace UNDO qui risque d'exploser si je fais juste le commit seulement à la fin Je sais que la commande COPY existe (j'ai cherché au préalable sur le forum ) mais est-ce que en faisant directement un Code :
CREATE TABLE T2 AS SELECT * FROM T1 WHERE condition; Merci d'avance Edit : base 10g |
|
|
00
|
|
|
#2 |
|
Membre du Club
![]() Inscription : septembre 2005 Messages : 94 ![]() |
oui undo est utilisé mais le commit est implicite
|
|
|
00
|
|
|
#3 |
|
Membre Expert
![]() Inscription : juin 2007 Messages : 1 497 ![]() |
merci pour ta réponse
et sais-tu si la taille nécessaire dans le undo est la même que la taille des données à insérer ? |
|
|
00
|
|
|
#4 |
|
Membre actif
![]() Inscription : août 2007 Messages : 176 ![]() |
Les tablespaces undo et redo seront uniquement utilisés au niveau des changements dans le dictionnaire (création de la table par exemple), mais pas au niveau des données
Donc, la réponse à ta question est non, c'est justement l'avantage des CTAS |
|
|
00
|
|
|
#5 |
|
Membre Expert
![]() Inscription : juin 2007 Messages : 1 497 ![]() |
OK je me lance doncdans mon create table as select , merci
|
|
|
00
|
|
|
#6 | ||
|
Expert Confirmé
![]() Inscription : février 2006 Messages : 3 433 ![]() |
Attention, pour minimiser le redo généré, il faut, si votre base est en mode archive log, créer la table en mode NOLOGGING, sinon le redo est généré.
Exemple: Code :
|
||
|
|
00
|
Copyright © 2000-2012 - www.developpez.com