寻找一些优化查询以获得“计数”(同样出现@tblMaster表的MastId到@tblChild表。
Declare @tblMaster Table (MastId INT, MastDesc VARCHAR(10))
Insert Into @tblMaster Values(1, 'M1'),(2, 'M22')
Declare @tblChild Table (ChildId INT, MastId INT, ChildDesc VARCHAR(10))
Insert Into @tblChild Values(100, 1, 'M1'),(101, 1, 'M2'),(102, 1, 'M3'),(103, 2, 'M22')
在实际情况中,两个表都有100K +记录。请建议!!!
输出应该是,
答案 0 :(得分:0)
select mastid,mastdesc,count(*) as cnt
from
master m
join
child c
on c.mastid=m.mastid
group by m.mastid,m.mastdesc
根据评论更新:
100 K记录不是很大,如果您的数据索引正确,Group by可以表现良好。
比如说,如果您在主mastid列上有主键,而在子mastid col上有另一个主键,我就不会看到查询效果不佳的问题..
请运行查询并使用
更新/提出新问题1.涉及的表格的章程 2.实际执行计划为xml
如果您认为查询运行缓慢