Bonjour à tous,
J'ai une question un peu naïve mais à laquelle j'ai bien du mal à répondre.
Sur une base 10.2.0.4, j'ai un tablespace TEMP créé de la manière suivante :
En effectuant un import à partir d'un dump, j'obtiens ce message tant aimé...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 CREATE TEMPORARY TABLESPACE TEMP TEMPFILE '/<mypath>/tmp/tempSID.dbf' SIZE 4500M AUTOEXTEND OFF EXTENT MANAGEMENT LOCAL UNIFORM SIZE 1M;
... au moment de la création d'un index.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2ORA-01652: impossible d'étendre le segment temporaire de 64 dans le tablespace TEMP
Le DDL de cet index ressemble à ça, d'après la log d'import :
Je peux ajouter que :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 CREATE INDEX "TOTO_X" ON "TOTO" ("CODRUB" , "U##CODCOL" , "CODAGT" , "DATMAJ" , "U##HHMMSS" , "DTEDEB" , "DTEFIN" , "PROGRESS_RECID" ) PCTFREE 10 INITRANS 2 MAXTRANS 255 STORAGE(INITIAL 4294967294 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT) TABLESPACE "IDX" NOLOGGING;
- la création de l'index "à la main" fonctionne si je lui mets un initial "à taille humaine", 1M par exemple
- et ça marche aussi, évidemment, avec un tablespace TEMP plus grand. J'ai remarqué avec la vue V$TEMP_SPACE_HEADER que l'espace temporaire consommé est de 5050M.
Ce que je ne comprends pas :
- pourquoi ça marche avec un initial à 1M, alors que le tablespace TEMP est en uniform size et qu'il ne devrait pas tenir compte de l'initial qu'on met dans les DDL ? Et pourquoi ça consomme moins d'espace temporaire ?
- pourquoi l'espace consommé, avec le DDL d'origine, est-il de 5050M ?
Alors oui, c'est vrai, je pourrais faire un gros tablespace TEMP et ne plus me poser de questions. Mais j'aime pas quand je comprends pas
Merci beaucoup infiniment...








Répondre avec citation
Partager