SORU
23 EYLÜL 2008, Salı


İç vs Nerede katıl

Performans farkı (oracle) arasında var

Select * from Table1 T1 
Inner Join Table2 T2 On T1.ID = T2.ID

Ve

Select * from Table1 T1, Table2 T2 
Where T1.ID = T2.ID

?

CEVAP
10 Aralık 2008, ÇARŞAMBA


Hayır! Aynı yürütme planı, bu iki tablodan bakın:

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

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

Sorgu için yürütme planı iç birleşim kullanarak:

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

Ve bir sorgu kullanarak yürütme planı 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

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • chickenby

    chickenby

    2 HAZİRAN 2008
  • nigahiga

    nigahiga

    21 Temmuz 2006
  • oHeymarvin

    oHeymarvin

    11 Temmuz 2013