Oracle
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Oracle

Tham gia bên trong so với ở đâu

Không! Cùng một kế hoạch thực hiện, hãy xem hai bảng sau:

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

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

Kế hoạch thực thi cho truy vấn bằng cách sử dụng kết nối bên trong:

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

Và kế hoạch thực thi cho truy vấn bằng cách sử dụng mệnh đề 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. Cách xuất kết quả truy vấn sang tệp CSV trong SQLcl (Oracle)

  2. vấn đề ORA-00001:ràng buộc duy nhất bị vi phạm trong INSERT / UPDATE

  3. Không có ánh xạ phương ngữ cho loại JDBC:-9

  4. Khi thực thi một tập lệnh trên SQLPlus, nó sẽ in ra một chuỗi số thay vì đầu ra

  5. Oracle SQL:Hiểu hoạt động của SYS_GUID () khi hiển thị trong dạng xem nội tuyến?