我知道我下面的查詢僅僅是可怕的,它需要2分鐘得到10條記錄(清單表中有超過雖然1M記錄),但我不知道什麼是更好的方式來寫這個內有加入不同慢
我只是簡單地想要得到所有具有房源各國連接列表是全省表中的國家..
ALTER VIEW [dbo].[CountriesWithListings]
AS
SELECT distinct
cn.CountryID,
cn.Code as CountryCode,
cn.Name as CountryName
FROM dbo.Countries AS cn
INNER JOIN dbo.Provinces AS p ON p.CountryID = cn.CountryID
INNER JOIN dbo.Cities c on c.ProvinceID = p.ProvinceID
INNER JOIN dbo.Listings AS l ON l.CityID = c.CityID
WHERE l.IsActive = 1 AND l.IsApproved = 1
確實包括數據庫名稱和版本。 – 2015-02-11 16:04:24
另外,如果您在標題中建議distinct是一個問題,那麼您還需要爲查詢包含一個'EXPLAIN',那麼沒有DISTINCT的行數將是最小值。 – 2015-02-11 16:06:56
刪除不同的,僅從dbo.Countries中選擇,然後將其餘部分移至EXISTS。 – jarlh 2015-02-11 16:07:42