5

同じSQLセット(下記)を、同じインデックスセットとテーブルサイズの2つの異なる環境で実行しています。しかし、彼らは私に2つの異なる説明計画を与えました(添付

  1. マージ結合デカルトを使用します-非常に遅い
  2. PXコーディネーター/PXセンド/PXレシーブを使用-非常に高速

クエリ:

SELECT *
FROM SIEBEL.S_PARTY PRTY, SIEBEL.S_CONTACT CONT, HPQ_IF_ENTERPRISE_DIRECTORY ED,SIEBEL.S_BU BU 
WHERE PRTY.ROW_ID = CONT.PAR_ROW_ID 
AND BU.ROW_ID(+)=CONT.BU_ID 
AND CONT.EMP_NUM IS NOT NULL 
AND ED.HPSTATUS NOT IN ('Terminated', 'Retired', 'Deceased') 
AND ED.EMPLOYEENUMBER = UPPER (LPAD (CONT.EMP_NUM, 8, '0')) 
AND (SUBSTR(ED.MODIFYTIMESTAMP,1,14) >= '19800101' OR ED.MODIFYTIMESTAMP IS NULL)

この違いを引き起こす可能性のあるものは何ですか?そして、2番目の説明プラン(PXのもの)はどういう意味ですか?

SQLクエリの変更(本番環境でのフリーズ)を探していないことに注意してください。

どうもありがとう。

4

3 に答える 3

8

PXは並列処理を示します。セッション設定が原因で(または他のデータベースが異なるエディションまたはバージョンである場合)、他のデータベースでは使用できない場合があります。

于 2011-02-10T04:36:54.980 に答える
4

クエリの計画は、テーブルのサイズやインデックスだけでなく、他の多くの要因、主にテーブル、その列、およびそのインデックスの統計にも依存します。これらの統計には、計算されたコストに大きな違いをもたらす可能性のあるクラスタリング係数などが含まれます。

さらに、さまざまなシステム統計、オプティマイザパラメータ、テーブル構造(たとえば、パーティション化されたものとパーティション化されていないもの)、およびデータベースブロックサイズがすべて機能し、環境間のわずかな違いにより、異なるプランが優先される可能性があります。

于 2011-02-10T04:35:32.427 に答える
3

テーブルのDEGREEは異なりますか?両方の環境でこのクエリを確認してください。

select table_name, degree from all_tables where table_name in ('S_PARTY', 'S_CONTACT', 'HPQ_IF_ENTERPRISE_DIRECTORY','S_BU');
于 2011-02-10T04:40:19.987 に答える