首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Inner与Where

Inner与Where
EN

Stack Overflow用户
提问于 2008-09-23 15:13:28
回答 19查看 129.6K关注 0票数 280

(在oracle中)在性能上是否存在差异

代码语言:javascript
复制
Select * from Table1 T1 
Inner Join Table2 T2 On T1.ID = T2.ID

代码语言:javascript
复制
Select * from Table1 T1, Table2 T2 
Where T1.ID = T2.ID
EN

回答 19

Stack Overflow用户

回答已采纳

发布于 2008-12-10 01:25:59

不是的!相同的执行计划,请看这两个表:

代码语言:javascript
复制
CREATE TABLE table1 (
  id INT,
  name VARCHAR(20)
);

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

使用内部联接的查询的执行计划:

代码语言:javascript
复制
-- 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

使用WHERE子句的查询的执行计划。

代码语言:javascript
复制
-- 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
票数 214
EN

Stack Overflow用户

发布于 2008-09-23 15:15:37

如果查询优化器的工作做得很好,那么这些查询之间应该没有区别。它们只是指定相同期望结果的两种方式。

票数 74
EN

Stack Overflow用户

发布于 2008-09-23 15:23:42

它们应该是完全相同的。但是,作为一种编码实践,我更愿意看到连接。它清楚地表达了你的意图,

票数 71
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/121631

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档