City(cityID, nameCity, nbInhabitants)
Company(companyID, companyName, nbEmployees, cityID) cityID: FK(City)
cityID is PK of City
companyID is PK of Company
基于以下统计信息:•城市包含4000个元组,每页20个元组•公司包含20万个元组,每页15个元组
1-重写以下查询以提高其执行效率以及获得这些好处的原因:
SELECT DISTINCT companyID
FROM City NATURAL JOIN Company
WHERE nbEmployees >= 5000
AND nameCity = 'Lisboa'
我的解决方案:不需要“ distinct”,因为为什么在表中重复了companyID?
上的索引Company(nbEmployees, cityId) and City(cityId, 'Lisboa')
您可以帮助我进行其他一些改进吗?
第二个问题: 通常通过SQL查询访问雇员人数超过10000的公司。考虑到关联公司的元组数量很大,可以使用哪种模式调整机制来加快查询速度?
3rd:如果使用SQL Server,可以使用哪种机制来实现上一个问题的架构修改,请向我解释原因!