|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Candidat au titre de Membre du Club
![]() Inscription : juillet 2004 Messages : 94 ![]() |
Bonjour à tous,
Pour simplifier le problème : Soit deux tables A et B, chacune possédant des millions d'enregistrements par année (environ 30 millions pour chaque table). A et B sont dans le même tablespace [TSAB]. Les index sur A et B sont dans un autre tablespace [TSABIDX]. ----- Afin d'optimiser les accès, je me demande qu'elle est la meilleure stratégie pour découper les données. Par année, je pense, mais comment ? Un tablespace par année [TSAB2006] (+ [TSAB2006IDX] pour les index) par exemple ? J'ai entendu parler de Partionning, mais je ne crois pas que cela existe dans Oracle 9iR2, non ? Si oui, quel est le principe ? Sinon, d'autres idées pour optimiser la base ? Merci de votre aide ! |
|
|
00
|
|
|
#2 | |
|
Expert Confirmé
![]() Inscription : février 2006 Messages : 3 433 ![]() |
Citation:
Avant de prendre un décision d'architecture ou d'optimisation, il faudrait d'abord analyser les requêtes critiques qui posant problème avec des outils comme Statspack ou la trace SQL et TKPROF. |
|
|
|
00
|
|
|
#3 |
|
Expert Confirmé Sénior
![]() ![]() ![]() Laurent SchneiderAdministrateur de base de données Inscription : décembre 2005 Messages : 2 927 ![]() |
le partitionnement par date pour les grosses tables est souvent très rentable. Tu peux bien sûr partitioner par mois, avec une cinquante de partitions pour 4 ans, et ça risque d'avoir des conséquences très positives sur ta performance.
Dans Oracle 11, tu peux aussi créer des partitions automatiquement, mais dans Oracle 8,8i,9,10, il te faut créer chaque partition manuellement. Prévois donc des partitions pour les 12 mois à venir ... A+ Laurent |
|
00
|
|
|
#4 |
![]() ![]() Inscription : janvier 2004 Messages : 15 861 ![]() |
un partitionnement par année si ce n'est pas le critère le plus discriminant ça n'apportera pas grand chose... n'y a-t-il pas moyen d'archiver une partie des données ?
|
|
|
00
|
|
|
#5 |
|
Expert Confirmé Sénior
![]() ![]() ![]() Laurent SchneiderAdministrateur de base de données Inscription : décembre 2005 Messages : 2 927 ![]() |
un des gros avantages du partitionement par date est que souvent dans les systèmes transactionnels, seule la dernière année/mois/jour est accédée.
Dans Oracle 9, il existe déjà le partitionement composite, qui te permet de sous partitioner, par département, par clé primaire, par ce que tu veux |
|
00
|
|
|
#6 |
|
Expert Confirmé Sénior
![]() ![]() ![]() Laurent SchneiderAdministrateur de base de données Inscription : décembre 2005 Messages : 2 927 ![]() |
un autre gros avantages du partitionement par date est l'archivage, style tu exportes la partition P1999 et P2000 et ensuite tu drop la partition, c'est ultra rapide
|
|
00
|
|
|
#7 |
|
Candidat au titre de Membre du Club
![]() Inscription : juillet 2004 Messages : 94 ![]() |
Merci pour vos réponses fortes intéressantes !
Oui, effectivement, j'avais bien entendu ou lu que le Partionning existait sous Oracle 9iR2, mais je crains que ma version n'ait pas ce "module"/"option" ! Je vais regarder de plus près, mais je crois bien ne pas avoir la licence dont parle pifor. En fait, dans la table A et B, nous descendons carrément au jour (il y a un champ date donc) ! (Pour accélérer, il existe aussi une table C d'agrégation au mois basée sur A&B, est aussi un cumul de l'année dans une table D.) Pour ce qui est des archives, nous avons besoin d'au moins des 4 dernières années. Celles-ci doivent donc rester accessibles dans la base. |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com