bonjour à tous.

après avoir "perdu" mon DBA, je me tourne vers les ressources du net et la communauté des développeurs pour mes petites questions Oracle...

or donc, mon "problème" : j'ai une table de + de 100 colonnes et à laquelle je suis susceptible de rajouter 4 nouveaux champs.
ma question, c'est "est-ce qu'il ya des bonnes pratiques, des histoires de stockage ou de perf, ... qui régissent plus ou moins le nombre de colonnes max dans une table?? et quelles peuvent être les alternatives (splitter la table?) ??"

dans mon cas, voici le script de création de la table en question (c'est long, mais comme ça vous avez tous les champs avec leur type, au cas où le poids d'une ligne serait un paramètre important) :

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
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
CREATE TABLE DOSSIER
(
  N_DOSSIER               VARCHAR2(12 BYTE)     NOT NULL,
  N_LIG_PRD               NUMBER(4),
  N_ART                   NUMBER(7),
  N_ARTICLE_SAVIX         VARCHAR2(9 BYTE),
  C_MARQ                  VARCHAR2(4 BYTE),
  N_SEG                   NUMBER(4)             NOT NULL,
  C_REGR_NOMENCLATURE     VARCHAR2(4 BYTE),
  C_REGR_TECHNICIEN       VARCHAR2(4 BYTE),
  C_REGR_COMPTABLE        VARCHAR2(4 BYTE),
  L_DESI_APPAREIL         VARCHAR2(30 BYTE),
  L_MODELE_APP            VARCHAR2(15 BYTE),
  N_SERIE_APP             VARCHAR2(24 BYTE),
  N_SEG_ORIG              VARCHAR2(4 BYTE),
  L_SEG_ORIG              VARCHAR2(30 BYTE),
  N_SFAM_ORIG             NUMBER(4),
  L_SFAM_ORIG             VARCHAR2(30 BYTE),
  N_FAM_ORIG              NUMBER(4),
  L_FAM_ORIG              VARCHAR2(30 BYTE),
  C_CONDITION_DOSSIER     VARCHAR2(1 BYTE),
  C_ACCEPT_FORFAIT        VARCHAR2(1 BYTE),
  M_FORFAIT_ACCUEIL       NUMBER(16,2),
  C_ORIENTATION           VARCHAR2(1 BYTE)      NOT NULL,
  C_DENONCIATION_GAR      VARCHAR2(1 BYTE),
  C_TYPE_RESTITUTION      VARCHAR2(3 BYTE),
  C_ANNEE_GAR_CLT         VARCHAR2(5 BYTE)      NOT NULL,
  C_GARANTIE_DETAIL       VARCHAR2(3 BYTE),
  N_CLIENT_SAV            VARCHAR2(10 BYTE),
  C_GARANTIE_FRN          VARCHAR2(2 BYTE),
  C_FRN_SAV               VARCHAR2(10 BYTE),
  N_FRN                   NUMBER(5),
  C_CONTRAT_EXT           VARCHAR2(3 BYTE),
  N_CONTRAT_EXT           VARCHAR2(10 BYTE),
  L_CONTRAT_EXT           VARCHAR2(30 BYTE),
  C_TRAITEMENT            VARCHAR2(1 BYTE),
  N_DOSSIER_PREC          VARCHAR2(12 BYTE),
  C_GARANTIE_CLT_PREC     VARCHAR2(2 BYTE),
  N_ANNEE_ACHAT_PREC      NUMBER(2),
  D_ACHAT                 DATE,
  N_ANNEE_ACHAT           NUMBER(2),
  N_BORDEREAU_EXP_SST     VARCHAR2(7 BYTE),
  D_BORDEREAU_EXP_SST     DATE,
  C_ADM_CREA_BILAN        VARCHAR2(7 BYTE),
  C_TECH_ITI              VARCHAR2(7 BYTE),
  C_TECH_ATL              VARCHAR2(7 BYTE),
  N_MAG_DEPOT             NUMBER(4),
  N_MAG_ACHAT             NUMBER(4),
  N_MAG_RETRAIT           NUMBER(4),
  N_MAG_BILAN             NUMBER(4),
  N_MAG_CLOTURE           NUMBER(4),
  C_DEVIS_DEMANDE         VARCHAR2(1 BYTE),
  M_SEUIL_DEVIS           NUMBER(16,2),
  C_REP_CLIENT_DEVIS      VARCHAR2(1 BYTE),
  D_DATE_RDV              DATE,
  D_HEURE_RDV             NUMBER(4),
  D_NOUV_DATE_RDV         DATE,
  D_NOUV_HEURE_RDV        NUMBER(4),
  C_POSTAL_RDV            VARCHAR2(5 BYTE),
  L_COMMUNE_RDV           VARCHAR2(25 BYTE),
  C_SECTEUR_RDV           VARCHAR2(5 BYTE),
  L_SECTEUR_RDV           VARCHAR2(30 BYTE),
  D_SAISIE_CR             DATE,
  C_RESUL_INTERVENTION    VARCHAR2(3 BYTE),
  C_INT_TERMINE           VARCHAR2(1 BYTE),
  L_ETAT_INTERVENTION     VARCHAR2(30 BYTE),
  D_JOUR_BILAN_FIGE       DATE,
  D_FACTURE_SST           DATE,
  D_CREATION              DATE,
  ID_SST                  VARCHAR2(15 BYTE),
  D_LEVEE_ATTENTE         DATE,
  D_DEPOT                 DATE,
  D_EXP_SST               DATE,
  D_RECEPTION_SST         DATE,
  D_CONF_ACC_RET_SST      DATE,
  D_DEM_ACC_RET_SST       DATE,
  D_SAISIE_ACC_RET_SST    DATE,
  D_SAISIE_BILAN          DATE,
  D_EDITION_MAD           DATE,
  D_REST_APP_PREV         DATE,
  D_REST_APPAREIL         DATE,
  D_EDITION_DEVIS_CLT     DATE,
  D_REP_CLIENT_DEVIS      DATE,
  D_EXP_MR_CT             DATE,
  D_RECEPTION_CT          DATE,
  D_ACC_RECEPTION_SST     DATE,
  D_EXP_CT_MR             DATE,
  D_CLOTURE_DOSSIER       DATE,
  D_CLOTURE_INT           DATE,
  D_ANNULATION            DATE,
  D_PREM_ATTR_TECH        DATE,
  D_PD_ATTENDUE           DATE,
  D_AFF_PD_ATL            DATE,
  D_SERVI_STOCK           DATE,
  D_SERVI_AFFECT          DATE,
  D_REC_APP_MR            DATE,
  D_FIN_DOSSIER           DATE,
  M_DEVIS_TTC_FNAC        NUMBER(16,2),
  M_TOTAL_HG              NUMBER(16,2),
  N_TEMPS_FAC_TECH_ATL    NUMBER(6,2),
  N_TEMPS_PASSE_TECH_ATL  NUMBER(6,2),
  N_TEMPS_FAC_TECH_ITI    NUMBER(6,2),
  N_TEMPS_PASSE_TECH_ITI  NUMBER(6,2),
  N_TEMPS_FAC_TECH_SST    NUMBER(6,2),
  Q_DEPLACEMENT           NUMBER(1),
  Q_LIVRAISON             NUMBER(1),
  Q_ENLEVEMENT            NUMBER(1),
  Q_FORFAIT               NUMBER(1),
  D_CRE                   DATE,
  D_MAJ                   DATE,
  N_JOUR_PROL_GAR         INTEGER,
  D_DEB_CNT_EXTENSION     DATE,
  C_GARANTIE_CLIENT       VARCHAR2(3 BYTE)
)
TABLESPACE SAVIX_DATA1
PCTUSED    0
PCTFREE    10
INITRANS   1
MAXTRANS   255
STORAGE    (
            INITIAL          1M
            NEXT             1M
            MINEXTENTS       1
            MAXEXTENTS       2147483645
            PCTINCREASE      0
            BUFFER_POOL      DEFAULT
           )
LOGGING 
NOCACHE
NOPARALLEL
MONITORING;
et les colonnes que je veux ajouter
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
 
C_TYPE_CLIENT  VARCHAR(1)
N_FID          NUMBER(14)
ID_CARTE      VARCHAR(19)
N_ACCORD_RETOUR VARCHAR2(16)
et quelques infos de plus sur la table
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
30
31
32
33
34
35
36
37
38
TABLE_NAME        DOSSIER
TABLESPACE_NAME   SAVIX_DATA1
PCT_FREE          10
INI_TRANS         1
MAX_TRANS         255
INITIAL_EXTENT    1048576
NEXT_EXTENT       1048576
MIN_EXTENTS       1
MAX_EXTENTS       2147483645
PCT_INCREASE      0
LOGGING           YES
BACKED_UP         N
NUM_ROWS          3105433
BLOCKS            97518
EMPTY_BLOCKS      334
AVG_SPACE         974
CHAIN_CNT         123254
AVG_ROW_LEN       474
AVG_SPACE_FREELIST_BLOCKS  0
NUM_FREELIST_BLOCKS  0
DEGREE            1
INSTANCES         1
CACHE             N
TABLE_LOCK        ENABLED
SAMPLE_SIZE       1020262
LAST_ANALYZED     21/03/2008 16:40
PARTITIONED       NO
TEMPORARY         N
SECONDARY         N
NESTED            NO
BUFFER_POOL       DEFAULT
ROW_MOVEMENT      DISABLED
GLOBAL_STATS      YES
USER_STATS        NO
SKIP_CORRUPT      DISABLED
MONITORING        YES
DEPENDENCIES      DISABLED
COMPRESSION       DISABLED
avez-vous des conseils à me donner sur l'ajout de ces 4 colonnes?
ya des impacts si je les mets dans la table existante? est-ce que de créer une table pour ces champs avec une référence à la PK de la table "maitre" est une alternative?
j'attends vos avis