如何優化下面提到的查詢性能如所示的表結構在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