sql >> Database teknologi >  >> RDS >> Oracle

Inner join vs Where

Ingen! Den samme udførelsesplan, se på disse to tabeller:

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

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

Udførelsesplanen for forespørgslen ved hjælp af den indre joinforbindelse:

-- 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

Og eksekveringsplanen for forespørgslen ved hjælp af en WHERE-klausul.

-- 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. Sådan kører du SHOW LOCALES i MariaDB

  2. Generering af datoer mellem to datoer

  3. Sådan implementeres Open edX MySQL-databasen for høj tilgængelighed

  4. Find ud af, om en CHECK-begrænsning er på kolonneniveau eller tabelniveau i SQL Server (T-SQL-eksempler)