Bonjour à tous,

j'aimerais savoir si le partitionnement d'une tables réserve forcement de l'espace sur les tablespaces utilisés?
Si oui, comment faire pour que l'espace réservé soit le plus petit possible pour les partitions encore vide?
Si non, comment partitionner sa table pour garder ses tablespaces le plus disponible possible lorsque les partitions sont vides?

Ces questions viennent parce que j'ai été mainte fois confronté à des situations ou j'ai des tables partitionnées vides, mais qui occupaient un très important pourcentage de mes tablespaces.

D'autre part, très souvent pendant le partitionnement d'une table, on a l'erreur
Code : Sélectionner tout - Visualiser dans une fenêtre à part
ORA-01658: impossible de créer l'ensemble de blocs contigus INITIAL pour le segment dans le tablespace MON_TABLE_SPACE
.

Ci-dessous un bout de code utilisé pour partitionner mais tables. Je fais remarqué que ces tables sont exclusivement utilisé pour des loads par SQL Loader, des INSERT et des SELECT, presque jamais d'UPDATE.
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
27
28
29
 
TABLESPACE TAB_SPACE_01_A
PCTUSED    0
PCTFREE    10
INITRANS   1
MAXTRANS   255
PARTITION BY RANGE (TRANSACTION_DATE)
(  
  PARTITION TAB_PARTITION_201112 VALUES LESS THAN (TO_DATE(' 2012-01-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN'))
    NOLOGGING
    NOCOMPRESS
    TABLESPACE TAB_MONOCF_01_A
    PCTFREE    10
    INITRANS   1
    MAXTRANS   255
    STORAGE    (
                INITIAL          64K
                NEXT             16M
                MINEXTENTS       1
                MAXEXTENTS       UNLIMITED
                PCTINCREASE      0
                BUFFER_POOL      DEFAULT
               )
)			   
LOGGING 
NOCOMPRESS 
NOCACHE
NOPARALLEL
MONITORING;
Mon code est-il optimal pour les usages de ma tables?
Si non, quel sont les possibles améliorations à y apporter?

Merci d'avance de vos contributions.