如何优化下面提到的查询性能如所示的表结构在PIC下面优化来自多个表的连接
Pic Showing The Table Structure
select CounterID, OutletTitle, CounterTitle
from(
select OutletID, Text as OutletTitle
from Outlets as q1
inner join
TranslationTexts as tt
on q1.TitleID=tt.TranslationID
where tt.Locale='ar-SA' and q1.CompanyID=311 and q1.OutletID=8 --Locale & CompanyID & OutletID
) as O
inner join
(
select CounterID, Text as CounterTitle, OutletID
from Counters as q1
inner join
TranslationTexts as tt
on q1.TitleID=tt.TranslationID
where tt.Locale='ar-SA' and q1.OutletID=8 --Locale & OutletID
) as C
on O.OutletID=C.OutletID
编辑您的问题以包含样本数据和期望的结果将有助于他人理解您的查询应该做什么。 –
如果tt.Locale的值范围很小,您可以为其创建一个字典表并在where子句中使用外键 - 对varchar数据的搜索很慢。此外,您在两个子问题中的where子句都非常相似 - 请考虑是否可以将其移至外部查询而不是执行两次相同的操作。 – PacoDePaco