私はのためにOracle 12cと書いたクエリでパフォーマンスが非常に悪いです。おそらく私の非効率的な結合の使用に関係していて、誰かが私が間違っているところで私を助けてくれることを期待していました。私が持っている質問は現在を実行するのに1分以上かかるです。結合パフォーマンスの悪いSQLクエリ
私はどこのテーブル名とカラム名を返すようにしようとしていますよ:列が主キー
- 列の型がテーブルの所有者がMY_OWNERある番号
- です
- 主キーが
電流増幅率単一列制約であります具体的には次のようになります。
SELECT consCols.table_name, consCols.column_name
FROM all_cons_columns consCols
INNER JOIN all_constraints cons
ON cons.constraint_name = consCols.constraint_name
INNER JOIN all_tab_columns cols
ON consCols.table_name = cols.table_name AND consCols.column_name = cols.column_name
WHERE cons.constraint_type = 'P'
AND cons.owner = 'MY_OWNER'
AND cols.data_type = 'NUMBER'
AND consCols.table_name IN(
SELECT consCols2.table_name
FROM all_cons_columns consCols2
INNER JOIN all_constraints cons2
ON cons2.constraint_name = consCols2.constraint_name
WHERE cons2.constraint_type = 'P'
AND cons2.owner = 'MY_OWNER'
GROUP BY consCols2.table_name
HAVING COUNT(consCols2.table_name) = 1
);
私に教えていただきありがとうございます。
クエリの実行計画を実行して結果を投稿してください。 – OldProgrammer