Bonjour,

La requête (qui est le curseur principal d'un report 10G v9042) génère le message d'erreur suivant "unable to extend temp segment by 128 in tablespace TEMPO" au bout de 7 minutes sur une base ORACLE 10.1.0.3.

Il s'agit d'une base avec 10 ans d'historique pour situer la volumétrie.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
SELECT 1 AS TRA_RUP , 
R . ST_CODE AS ST_CODE , 
NVL ( R . ST_RRF , 0 ) AS ST_RRF , 
NVL ( R . ST_SPROP , 0 ) AS ST_SPROP , 
NVL ( R . ST_PINV , 0 ) AS ST_PINV , 
NVL ( R . ST_VOL , 0 ) AS ST_VOL , 
NVL ( R . ST_CP , 'N' ) AS ST_CP , 
A . TA_CODE AS T15_APPEL , 
T . TA_CODE AS T17_COUL , 
F . TA_CODE AS T43_FAM , 
NVL ( G . T29_HAPUR , 'N' ) AS T29_HAPUR , 
H . TI_CODE AS TI_CODE 
FROM B0400 R , B0200 H , B0300 A , B0300 T , B0300 F , B0329 G   
WHERE ( R.ST_CODE BETWEEN NVL ( ' ' , ' ' ) AND 'zzzzzzzzzzzzzzzzzzz' OR R.ST_CODE IS NULL ) 
AND ( NVL ( R.ST_RRF , 0 ) <> 0 OR NVL ( R.ST_SPROP , 0 ) <> 0 OR NVL ( R.ST_SCHAIS , 0 ) <> 0 OR NVL ( R.ST_SDEPOT , 0 ) <> 0 ) 
AND H.BA_PROD = R.BA_PROD 
AND H.BA_MIL = R.BA_MIL 
AND G.T29_NATURE = H.T29_NATURE 
AND A.TA_TABLE = '15' 
AND A.TA_CODE = ( SELECT B0200.T15_APPEL FROM B0200 WHERE  B0200.BA_PROD = SUBSTR ( R.ST_CODE , 1 , 4 ) AND B0200.BA_MIL = SUBSTR ( R.ST_CODE , 5 , 2 ) UNION SELECT B0250.T15_APPEL FROM B0250 WHERE B0250.CP_CODE = R.ST_CODE ) 
AND T.TA_TABLE = '17' AND T.TA_CODE = ( SELECT B0200.T17_COUL FROM B0200 WHERE B0200.BA_PROD = SUBSTR ( R.ST_CODE , 1 , 4 ) AND B0200.BA_MIL = SUBSTR ( R.ST_CODE , 5 , 2 ) UNION SELECT 'P' FROM B0250 WHERE B0250.CP_CODE = R.ST_CODE ) 
AND F.TA_TABLE = '43' 
AND F.TA_CODE = ( SELECT B0200.T43_FAM FROM B0200 WHERE B0200.BA_PROD = SUBSTR ( R.ST_CODE , 1 , 4 ) AND B0200.BA_MIL = SUBSTR ( R.ST_CODE , 5 , 2 ) UNION SELECT B0250.T43_FAM FROM B0250 WHERE B0250.CP_CODE = R.ST_CODE ) 
AND A.TA_CODE BETWEEN : TRA_T15_APPEL1 AND : TRA_T15_APPEL2 
AND F.TA_CODE BETWEEN : TRA_T43_FAM1 AND : TRA_T43_FAM2 
ORDER BY 1 ASC,8 ASC,9 ASC
Le plan est correcte mais le tri est visiblement très consommateur de CPU.

Extrait du plan donné par la console enterprise manager :
SORT ORDER BY 34 1 0.08 101359 1217 1068313608192 60868

101359 correspond au cout
1068313608192 correspond au cout de l'UC
Il s'agit d'un serveur dédié PROLIANT DL385 avec 3 Go de RAM
le tablespace TEMPO fait 10 Go et la SORT_AREA_SIZE est de 524 288 bytes
la SGA = 1392 M, la PGA = 462 M


Faut-il augmenter la taille du tablespace TEMPO ?

Pouvez-vous m'aider ??

Merci pour votre aide