0

重複した行をランダムに返す非常に単純なクエリがあります。重複がない場合もあれば、結果セットが重複している場合もあり、重複したレコードは毎回異なります。凍結されたデータベースでクエリを実行しています(データは変更されません)。私のOracleバージョンは11gです。

日付に(WHERE句に)フィルターが1つしかない:
to_char(date,'yyyy/mm') > = '2012/03'

どんな助けでもいただければ幸いです。ご清聴ありがとうございました。よろしくお願いします。

完全なクエリ

select distinct 
   B.ORD_V_COD_ROWID as c1,
   B.ORD_D_DAT_INSERITO_RIFIUTATO as c2,
   B.ORD_D_DAT_RIFIUTO_SIS as c3
  from   
       NRFTF_ORD_ORDINE A,
       NRFTF_COR_ORDINI_RDS B
  where  (A.ORD_N_DWH_NUM_ORDINE = B.ORD_N_DWH_NUM_ORDINE 
  and B.ORD_V_COD_CAUSALE = 'CLIENTE NON AFFIDABILE' 
  and B.ORD_V_COD_STATO = 'RIFIUTATO' 
  and B.RDS_C_DWH_FLG_CANCELLAZIONE = '0' 
  and B.ORD_C_DWH_FLG_CANCELLAZIONE = '0' 
  and B.ORD_V_COD_CAUSALE = 'CLIENTE NON AFFIDABILE' 
  and B.PER_NAME_MONTH >= '2012/03' 
  and (B.ORD_D_DAT_RIFIUTO_SIS >= TO_DATE('2012-03-22 00:00:00' , 'YYYY-MM-DD HH24:MI:SS') 
  or B.ORD_D_DAT_INSERITO_RIFIUTATO >= TO_DATE('2012-03-22 00:00:00' , 'YYYY-MM-DD HH24:MI:SS')) 
  and  TO_CHAR (A.ord_d_dat_creazione,'YYYY/MM') >= '2012/03' ) 
  order by c1, c2, c3
4

1 に答える 1

0

面白い。インデックスが壊れている場合に、多少似たような動作を見たことがあります。インデックスを再構築すると、しばらくの間問題が修正されましたが、その後、非決定論的な動作が戻ってきました。結局、Oracleサポートに電話しました。彼らは、実に印象的な 24 時間にわたる世界中のデータ辞書更新セッションでそれを修正しました。

関連するすべてのテーブルとインデックスを最初から再構築してみます。

これで問題が解決せず、自分の側で動的なことが起こっていないことを 3 回確認した場合は、Oracle サポートに連絡してください。

于 2012-04-24T12:54:47.197 に答える