Oracle
 sql >> Baza danych >  >> RDS >> Oracle

Połączenie wewnętrzne vs Gdzie

Nie! Ten sam plan wykonania, spójrz na te dwie tabele:

CREATE TABLE table1 (
  id INT,
  name VARCHAR(20)
);

CREATE TABLE table2 (
  id INT,
  name VARCHAR(20)
);

Plan wykonania zapytania przy użyciu sprzężenia wewnętrznego:

-- with inner join

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

Oraz plan wykonania zapytania przy użyciu klauzuli WHERE.

-- with where clause

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


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak uzyskać drugi co do wielkości lub trzeci co do wielkości wpis z tabeli?

  2. Oracle 11g — Sprawdź ograniczenie za pomocą RegEx

  3. Różnica między LockModeType Jpa

  4. Oracle ORA-01008:nie wszystkie zmienne powiązane Błąd z parametrami

  5. Jak zmienić format daty w bazie danych Oracle