Bonjour tout le monde,
Je me permets de vous écrire car je viens de reprendre une base de données Oracle et une chose m'interpelle.
Sur pas mal de tables, il y a la création d'un index sur la primary key. Quel est l'intérêt puisqu'une PK est automatiquement un index unique ?
Exemple :
Sur certaines tables d'ailleurs le nom de l'index créé est le même que la PK...
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 CREATE TABLE "SCHEMA"."PROFIL" ( "PRO_ID" VARCHAR2(6 BYTE) NOT NULL ENABLE, "PRO_LIB" VARCHAR2(50 BYTE) NOT NULL ENABLE, "PRO_STATUT" CHAR(1 BYTE) NOT NULL ENABLE, "PRO_MODIF_LOGIN" VARCHAR2(120 BYTE), "PRO_MODIF_DATE" DATE, CONSTRAINT "PROFIL_STATUT_CK" CHECK (PRO_STATUT IN ('0', '1')) ENABLE, CONSTRAINT "PROFIL_PK" PRIMARY KEY ("PRO_ID") USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645 PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT) TABLESPACE "TBS_IDX_M" ENABLE ) SEGMENT CREATION IMMEDIATE PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645 PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT) TABLESPACE "TBS_DATA_M" ; CREATE UNIQUE INDEX "SCHEMA"."IDX_PROFIL_PK" ON "SCHEMA"."PROFIL" ("PRO_ID") PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645 PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT) TABLESPACE "TBS_IDX_M" ;
Quel est donc l'intérêt de créer l'index IDX_PROFIL_PK sur le champ PRO_ID alors que ce champ est une PK ?
C'est pour une question de performance ?
Merci d'avance à toutes et tous.
Partager