ホームページ > データベース > mysql チュートリアル > Oracle の内部結合と WHERE 句: 異なるパフォーマンスが得られますか?

Oracle の内部結合と WHERE 句: 異なるパフォーマンスが得られますか?

Barbara Streisand
リリース: 2025-01-20 08:27:09
オリジナル
113 人が閲覧しました

Inner Join vs. WHERE Clause in Oracle:  Do They Produce Different Performance?

Oracle データベースの内部結合と WHERE 句のパフォーマンスの比較

Oracle Database では、内部結合と WHERE 句はパフォーマンスにおいて高度な一貫性を示し、両方によって生成される実行計画はほぼ同一です。

2 つのテーブルがあると仮定して、例を見てみましょう:

<code class="language-sql">CREATE TABLE table1 (
  id INT,
  name VARCHAR(20)
);

CREATE TABLE table2 (
  id INT,
  name VARCHAR(20)
);</code>
ログイン後にコピー

内部結合を使用したクエリ実行プランは次のとおりです:

<code class="language-sql">-- 使用内连接
EXPLAIN PLAN FOR
SELECT * FROM table1 t1
INNER JOIN table2 t2 ON t1.id = t2.id;

SELECT *
FROM TABLE (DBMS_XPLAN.DISPLAY);

-- 0 select statement
-- 1 hash join (access("T1"."ID"="T2"."ID"))
-- 2 table access full table1
-- 3 table access full table2</code>
ログイン後にコピー

WHERE 句を使用した同等のクエリ実行プランは次のようになります。

<code class="language-sql">-- 使用 WHERE 子句
EXPLAIN PLAN FOR
SELECT * FROM table1 t1, table2 t2
WHERE t1.id = t2.id;

SELECT *
FROM TABLE (DBMS_XPLAN.DISPLAY);

-- 0 select statement
-- 1 hash join (access("T1"."ID"="T2"."ID"))
-- 2 table access full table1
-- 3 table access full table2</code>
ログイン後にコピー

実行計画からわかるように、両方のメソッドはハッシュ結合を使用し、table1 テーブルと table2 テーブルでフルテーブルスキャンを実行します。したがって、それらの性能特性はほぼ同じです。

以上がOracle の内部結合と WHERE 句: 異なるパフォーマンスが得られますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート