|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Invité de passage
![]() Inscription : février 2005 Messages : 9 ![]() |
Bonjour,
J’ai une table table1 (champ1, champ2, champ3, champ4) Le champ2 de type varchar(2) contienne presque 50% des valeurs nulles. Ma question est : est que il y’a un moyen de partitionnées la table table1 en "deux partitions" : la première partition contienne les enregistrements ou les valeurs de champ2 est no nulles, et la deuxième contienne le reste des enregistrements NB : base de données : Oracle 10g Merci pour votre reponse |
|
|
00
|
|
|
#2 |
![]() ![]() Inscription : janvier 2004 Messages : 15 861 ![]() |
c'est possible mais j'ai du mal à y trouver un quelconque intérêt
|
|
|
00
|
|
|
#3 |
|
Expert Confirmé
![]() Inscription : septembre 2004 Messages : 2 942 ![]() |
je suis même pas sûr que ce soit possible !
RANGE : non car il n'est pas possible de définir l'interval "inférieur à NULL" ou "SUPERIEUR à NULL" LIST : non plus, car il n'est pas possible de construire la liste HASH : Non plus |
|
|
00
|
|
|
#4 |
![]() ![]() Inscription : janvier 2004 Messages : 15 861 ![]() |
|
|
|
00
|
|
|
#5 | |
|
Expert Confirmé
![]() Inscription : septembre 2004 Messages : 2 942 ![]() |
Citation:
j'avais juste oublié "DEFAULT"... mais l'intérêt me semble tout de même incertain.... |
|
|
|
00
|
|
|
#6 |
![]() ![]() Inscription : janvier 2004 Messages : 15 861 ![]() |
on est d'accord
|
|
|
00
|
|
|
#7 | ||
|
Expert Confirmé Sénior
![]() ![]() ![]() Laurent SchneiderAdministrateur de base de données Inscription : décembre 2005 Messages : 2 927 ![]() |
dans range, les valeurs nulles vont dans maxvalue
Code :
|
||
|
00
|
|
|
#8 |
|
Expert Confirmé Sénior
![]() ![]() ![]() Laurent SchneiderAdministrateur de base de données Inscription : décembre 2005 Messages : 2 927 ![]() |
ou alors partition by list avec NULL et DEFAULT et subpartitioning by hash(primary key) par exemple
[edit] quoi que si ton but est d'avoir deux partitions, LIST partitioning comme mentionné ci-dessus semble tenir la route |
|
00
|
|
|
#9 |
|
Invité de passage
![]() Inscription : février 2005 Messages : 9 ![]() |
Merci, pour votre réponses:
Le but de cette partition est que la table table1 est plus grande (+40 millions enregistrements), et la recherche faite sur le champ champ2 sous la clause like avec la jointure d'une autre table. Exemple table1(champ1, champ2, champ3, champ4) (champ1 est PK) table2(ch1, ch2, ch3) (ch1 est PK, ch2 est FK de table1) La requête: select champ1, champ2, ch3 from table1, table2 where champ1 = ch2 and champ2 like (%abcd%) alors le but est de forcer la requête d'utiliser la partition ou les valeurs de champ2 sont non null (from table1 (partition p1), table2), pour avoir la meilleur temps de réponse |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com