我知道我下面的查询仅仅是可怕的,它需要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