2016-09-02 3 views
-2

Oracle SQLを使用しています。私はSQLに新しいです、私は次の問題があります。私はそのような行をソートしている場合: "ORDER BY column1 ASC、列2 DESC"、私のcolumn1はインデックスを持っていますが、column2はしません。私は、column1の値が異なる行で同じであるケースが非常にまれにしか現れないことを知っています。だから、私は次の質問をします、どのようにパフォーマンスに影響を与えますか?同じcolumn1値を持つエントリの数は関係しますか?私が理解しているように、各エントリのcolumn1の値が異なる表がある場合、ソートはcolumn1にのみ適用され、パフォーマンスの問題は発生しません。索引付けされていない2番目の列で2列順

+0

これは**あなたが使用している実際の具体的な**データベースシステム**に依存しています**異なるベンダー(Oracle、SQL Server、IBMなど)は異なる方法で実装します - 単に 'sql 'この質問に答えるのを手伝ってください.... –

+0

ありがとうございます。私は私の質問を編集しました。私はOracle SQLを使用しています。 – stackoverflower

+0

実行計画を確認する –

答えて

0

インデックスはデータにアクセスするために使用されますが、SORT/ORDER BYでは直接使用されません。データベースがデータセットをフェッチすると、ORDER BY節に従ってソートされます。いくつかのケースではSORT性能

に与える影響はありません、セットはすでに事前にソートすることはできない(例えば、単一INDEX RANGE SCANは、行が返されますためのフェッチに起因する:だから、あなたの質問に一般的な答えはNOです

キーでソート)。この場合、ソートの必要はなく、OracleはSQL実行計画でNOSORTと表示します。

関連する問題