我有超过10个参与此SP。在带下划线的行中,有一个表AllData由于where子句中的字段名而被连接了3次。Mulitple加入查询
有关如何更好地处理此复杂查询的任何建议将不胜感激。大多数情况下,为了避免多次加入AllData(别名为ad1,adl2,adl3)。这可能会影响性能。
这里是SP
ALTER PROCEDURE [dbo].[StoredProc1]
AS
select case when pd.Show_Photo = '1,1,1'
then i.id
else null
end as thumbimage,
t1.FPId,
'WebProfile' as profiletype,
mmbp.Name as Name,
t1.Age,
t1.Height,
adl.ListValue as AlldataValue1,
adl2.ListValue as AlldataValue2,
adl3.ListValue as AlldataValue3,
c.CName,
ed.ELevel,
ed.EDeg,
NEWID()
from Table2 mmbp, Table3 u
join Table1 t1 on t1.Pid = u.Pid
left join Table4 mmb on t1.Pid= mmb.Pid
join table5 i on t1.Pid = i.Pid
join table6 pd on t1.Pid = pd.Pid
join table7 ed on t1.Pid = ed.Pid
join table8 c on t1.xxx= c.xxx
join AllData adl on t1.xxx = adl.ListKey
join AllData adl2 on b.ms = adl2.ListKey
join AllData adl3 on b.Diet = adl3.ListKey
where adl.FieldName=xxx and
adl2.FieldName='ms' and
adl3.FieldName='Diet' and
------
Table2(别名mmbp)和where语句中省略条件中的任何其他表之间是否存在连接条件?另外,在运行查询时,是否可以包含查询的其余部分以及查询计划? – 2012-01-27 10:10:08