Oracle 存在于Vs中=
考虑到主表在列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的主键 这两种改进型都表现得更好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
这三个查询在功能上是否相同?否,它们与第一个查询不同。 第一个查询检查两个条件: 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