partition Oracle Intervalle de requête dans une des données de table de partition

Rencontre un problème, d'optimiser notre numéro de Sqoop de pompage pour extraire la table source de données MySQL est une table partitionnée, mais notre champ n'est pas extrait champ de partition supplémentaire, les données de table environ 500 millions, dans une requête très lente , de trouver des moyens d'améliorer l'efficacité.

(1) Si vous connaissez le nom de la partition , vous pouvez directement interroger le nom de la partition correspondante

sélectionner  *  de partition CM.loan_shu_api_result (SYS_P505)

 

(2) Si vous ne connaissez pas le nom de la partition , mais sachez que la partition de la clé primaire plage de valeurs de champ , peut être interrogé en fonction de la gamme de partitionnement

sélectionner  *  de CM.loan_shu_api_result  default_dt > = to_date ( ' 01/02/2019 ' , ' aaaa-mm-jj ' ) et default_dt < to_date ( ' 01/03/2019 ' , ' aaaa-mm-jj ' ) 

et substr (call_dt, 1 , 4 ) || substr (call_dt, 6 , 2 ) || substr (call_dt, 9 , 2 ) = " 20190220' ;

   Description: default_dt champ de partition, call_dt champ d'extraction supplémentaire

 

(3) Si vous ne connaissez pas le nom de la partition, la partition ne connaissait pas la plage de valeurs primaire champ clé , vous pouvez utiliser PARTITION clause FOR d'une requête, comme savons maintenant seulement que cela est une partition de données 15/02/2019

sélectionner  *  de partition CM.loan_shu_api_result pour (to_date ( ' 15/02/2019 ' , ' aaaa-mm-jj ' ));

 

Je suppose que tu aimes

Origine www.cnblogs.com/hello-wei/p/12561925.html
conseillé
Classement