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

  • ŠĩŗĜŕôŵåɭȍҭҭ

    ŠĩŗĜŕô

    29 Kasım 2009
  • SVB International

    SVB Internat

    29 EKİM 2011
  • Thom Hall

    Thom Hall

    24 Kasım 2006