2

選択したクエリのコストが100で、コストが(40 + 60)の2つのクエリを作成する別の方法があるとします。どちらも最終的には同じコストになります。

最も効果的な方法を知りたいです。

4

3 に答える 3

4

コストを無視します。これはチューニングの開始点ではなく、特定のSQLステートメントに最適なプランを選択するためにOracleが使用する内部ランキングにすぎません。コストを使用して2つの異なるSQLステートメントを比較し、どちらが優れているかを判断することはできません。つまり、コストが低いクエリよりも高速でリソースの使用量が少ない、コストが非常に高いクエリを作成できます。

クエリが2つに分割するのと同じくらい速い場合は、1つのSQLのままにします(ラウンドトリップが1つ少なくなります)。

于 2012-12-07T13:29:14.900 に答える
0

私の意見では、データベースでクエリの並列処理が許可されているかどうかによって異なります。

可能であれば、2番目の方法でクエリを実行する必要があります。コストは同じですが、結果が早く得られます。

たとえば、sqlserverを使用すると、並列クエリを実行できます。こちらをご覧ください。

オラクルでは、インスタンス、それはここで説明されています。

于 2012-12-07T13:30:25.420 に答える
0

この場合、両方のシナリオをテストする必要があります(1つのクエリ、100のコストと2つのクエリ、40 + 60のコスト)...各シナリオを少なくとも1時間または1日でクエリが実行する実行回数を試してください。各シナリオのテスト間にシステムフラッシュの変更(バッファーキャッシュと共有プール)を適用します。

于 2013-02-23T01:25:08.980 に答える