Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Oracle 存在于Vs中=_Oracle_Oracle11g_Oracle10g_Query Optimization_Sql Execution Plan - Fatal编程技术网

Oracle 存在于Vs中=

Oracle 存在于Vs中=,oracle,oracle11g,oracle10g,query-optimization,sql-execution-plan,Oracle,Oracle11g,Oracle10g,Query Optimization,Sql Execution Plan,考虑到主表在列ID上有主键 这是原始查询 更新集合ID=DESC WHERE EXISTS从主IM2 WHERE中选择1 IM2.CD_ID=:B2和IM2.ID=A.DESC 这是修改后的查询1 更新集合ID=DESC,其中A.DESC在“从主机选择IM2.DESC”中 IM2,其中IM2.CD_ID=:B2和IM2.ID=A.DESC 这是修改后的查询2 更新集合ID=DESC,其中A.DESC=从主控中选择IM2.DESC IM2,其中IM2.CD_ID=:B2和IM2.ID=A.DESC

考虑到主表在列ID上有主键

这是原始查询

更新集合ID=DESC WHERE EXISTS从主IM2 WHERE中选择1 IM2.CD_ID=:B2和IM2.ID=A.DESC

这是修改后的查询1

更新集合ID=DESC,其中A.DESC在“从主机选择IM2.DESC”中 IM2,其中IM2.CD_ID=:B2和IM2.ID=A.DESC

这是修改后的查询2

更新集合ID=DESC,其中A.DESC=从主控中选择IM2.DESC IM2,其中IM2.CD_ID=:B2和IM2.ID=A.DESC

修改后的查询1使用主表上的索引 修改后的查询2使用MASTER的主键 这两种改进型都表现得更好


这三个查询在功能上是否相同?

否,它们与第一个查询不同。 第一个查询检查两个条件:

IM2.CD_ID=:B2 IM2.ID=A.DESC 剩下的两个查询正在检查三个条件:

M2.CD_ID=:B2 IM2.ID=A.DESC A.DESC=IM2.DESC 请看一看条件2和条件3及其含义。。。。 IM2.id=A.DESC和A.DESC=IM2.DESC==>IM2.id=IM2.DESC

因此,最后两个查询相当于:

。。。。哪里有 从主IM2中选择1 其中IM2.CD_ID=:B2和IM2.ID=A.DESC和IM2.ID=IM2.DESC


谢谢如果我更改为以下内容,那么它们是否相同?更新集合ID=DESC,其中A.DESC在主IM2中选择IM2.ID,其中IM2.CD_ID=:B2和IM2.ID=A.DESC