Bonjour à tous,
2 questions très basiques sur la bonne pratique de l'utilisation de tablespaces dans un datawarehouse suite à un débat entre spécialistes BI mais pas DBA:
-Il faut un TBS séparé pour les index et les données. Ca me semble la bonne pratique (j'ai toujours vu ça). Les 2 raisons pour le faire, données par 2 personnes différentes, il doit bien y en avoir une des deux qui est bonne, ou une 3e dont je ne me souviens pas :
- Ca permet de mettre les tablespaces sur des datafiles différents, avec des propriétés différentes (plus rapide d'accès pour les Index que les données, ou l'inverse)
- Ca permet d'avoir un réglage fin différent (politique d'extend, partitionnement) et une administration différentes (recreate Index avec option reuse, exp/imp en vue de sauvegarde, etc.) car les index bougent plus que les données qui peuvent bouger seulement en append mais sauver les index n'est pas primordial
- Il FAUT utiliser le même TBS pour les index des faits et des dimensions, et le même TBS pour les données des faits et des dimensions. Donc grouper TOUS les index sur le même TBS et TOUTES les données sur un autre TBS, et pas plusieurs TBS. Là dessus je suis beaucoup plus suspicieux. Pour moi, en dehors des logiques de fine tuning avec des datafiles sur des disques différents, restons sur le cas d'UN disque sur lequel se trouve tous les datafiles, l'intérêt d'utiliser un seul TBS n'est pas évident.
Bien sûr si on requête les données des faits joints avec les dimensions, on va attaquer toujours le même TBS, donc on va moins se promener dans le disque. Mais est-ce qu'on ne risque pas par la même occasion de disperser des données au travers de tous les datafiles ? Si on a 10 tables de faits, 20 dimensions, quand je fais une requête avec 1 table de faits et 20 dimensions est-ce qu'Oracle ne va pas devoir aller picorer les blocs dans la totalité des datafiles ? Est-ce que le fait de mettre TOUTES les données sur un seul TBS ne limite pas fortement l'intérêt et les possibilité du partitionnement ?
Bref est-ce qu'il y a un REEL avantage, surtout d'un point de vue perfs, à tout regrouper dans seulement 2 TBS (INDEX et DATA) ?
Moi j'en étais resté à une règle qui disait que, en dehors du fine tuning qui obéit à d'autres règles, on fait 1 TBS par type d'administration:
- Manual extend -> 1 TBS
- Autoextend -> 1 TBS
- recreate index avec reuse -> 1 TBS
- etc.
Merci de vos éclaircissements
Partager