|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Futur Membre du Club
![]() Inscription : avril 2008 Messages : 55 ![]() |
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 :
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 :
Si non, quel sont les possibles améliorations à y apporter? Merci d'avance de vos contributions. |
||
|
|
00
|
|
|
#2 |
![]() ![]() Inscription : décembre 2002 Messages : 2 653 ![]() |
La réponse dépend de votre version, que vous n'avez pas précisée.
__________________
Consultant / formateur Oracle indépendant Certifié OCP 10g et 11g, sécurité 11g |
|
|
20
|
|
|
#3 |
|
Expert Confirmé
![]() ![]() Franck PachotConsultant DBA en Suisse (Trivadis SA) Inscription : novembre 2007 Messages : 987 ![]() |
Bonjour,
Chaque partition alloue au moins un extent pour son INITIAL. Si on est sur un tablespace en UNIFORM on a probablement des extent assez larges. En AUTOALLOCATE, le premier extent sera probablement plus petit. Sinon, en 11g DEFERRED SEGMENT CREATION permet de n'allouer l'espace que lors du premier insert dans la partition. Donc dépends le la version, et de la définition du tablespace Cordialement, Franck.
__________________
A lire sur mon blog Oracle - Articles d'Experts des articles traduits en français de Jonathan Lewis, Tom Kyte, Doug Burns, Cary Millsap, Greg Rahn ...
|
|
10
|
|
|
#4 | ||
|
Membre habitué
![]() Administrateur de base de données Inscription : décembre 2011 Messages : 46 ![]() |
Bonjour, juste un conseil :
s'il est prévu de créer et/ou supprimer les partitions dynamiquement (chaque fin de mois, année ou jour) je te conseille de reprendre la date complète dans le nom crée : Code :
Parceque TAB_PARTITION_201112 cela peut être 2 dates : Décembre 2011 ou le 20/11/2012, voir le 12/11/2020 ? Par ailleurs dans ce que l'on voit du code il ne sera pas possible d'insérer des enregistrements dont la date est supérieur au 01/01/2012 (... LESS THAN ...). Il faudra créer la partition adhoc pour pouvoir faire ces inserts. Franck. |
||
|
|
00
|
Copyright © 2000-2013 - www.developpez.com