所以基本上,我要从多个视图中选择多个列(确切地说是18列和8个视图)。总运行时间约为36分钟。我尝试清理所有内容以使其更具可读性,但现在花费的时间更长。持续50分钟。
以下是发生的情况的一个示例:
SELECT (18 columns)
-- different cases happening here
FROM view1 m
left join view2 dep on dep.MemberId = m.MemberId
inner join view3 c on c.clientid = m.clientid
inner join view4 cl on m.locationid = cl.locationid
inner join view5 cc on m.classid = cc.classid
inner join view6 cp on m.ClientId = cp.ClientId
inner join view7 mp on m.MemberId = mp.MemberId
inner join view8 ma on ma.Memberid = m.MemberId
我只是想获取我的专栏,但它们来自几个不同的地方。有什么办法可以使速度更快?是否需要创建临时表?如果是这样,我应该如何实现它以提高查询速度?
谢谢。
答案 0 :(得分:0)
执行多个步骤会更容易
根据您的查询,您可以
Exception has occurred.
_TypeError (type 'List<dynamic>' is not a subtype of type 'List<Map<String, dynamic>>')
我知道这里还有一些额外的步骤,但是您可以编写脚本脚本,并且可能会提高性能。
请让我知道这对您有效。
答案 1 :(得分:0)
每个联接都将为查询添加时间/资源,并且当您针对视图联接时,会将每个视图中的每个联接都添加到查询中。而且,只需要一个不良性能视图就可以放慢其他所有功能。我能想到的三个选择: