多表关联如何优化

wgybb wgybb 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
我现在有四张表分别如下:
Buy(ID[PK],SmallClassID,shi,qu,Title,IsCheck)
SmallClass(ID[PK],SmallClassName)
shi(ID[PK],shiName)
qu(ID[PK],quName)

进行关联的语句如下:
SELECT Buy.ID,Buy.Title,Buy.SmallClassID,shi.shiName,qu.quName,SmallClass.SmallClassName

FROM (SELECT * FROM Buy WHERE SmallClassID=68 and shi=1 and IsCheck=1) AS

Buy,shi,qu,SmallClass WHERE Buy.shi=shi.ID AND Buy.qu=qu.ID AND

Buy.SmallClassID=SmallClass.ID

Buy表里面有50000多条记录,其它三个表数据量非常小,现在执行起来有CPU为80-100之间,请教各位这

条语句是否能再忧化一些。Buy这个表的涉及有INSERT,UPDATE,DELETE这些操作,有时候只与其中一个表

关联,有时候也可能与两个表进行关联。我想建索引,试问该怎样建才好
1:在Buy表里面分别对shi,qu,SmallclassID建三个索引
2:还是建一个组合索引create index IX_Buys on buy(shi,qu,SmallClass)

或者有更好的办法,请大指点一下,谢谢!

如果我建一个组合索引的话,那么假如当Buy表只与SmallClass表进行关联的时候,这个组合索引能不能

起到作用呢?

还有一点,我上面写的关联语句如果换成INNER JOIN这个,效率上有区别吗?
...全文

相关推荐

评论 8
收藏 已收藏
分享
返回顶部
wgybb
MS-SQL Server 34,876 成员 254,635 内容