争取每天写一篇文章,一起来共同进步,共同探讨!
这个主题含义是啥?
主要是解决性能问题;但是要求很难以用语言来描述的;不是普通的 select * from view v where v.column= 参数这种! 而是类似 select * from view(参数) v where 查询条件 这种!
做技术的人应该能明白;不然你就可以跳过这个文章看其他文章了!
先来看一个需求:
最近在做一个需求,要找出单个用户参与的所有业务,比如销售订单,采购订单,以及crm里的单等等等…..
很自然会想到的解决方案,这样做一个视图;
create or replace view cux_user_Business
as
select a.created_by ,a.line_Id,’SO’ Qtype from ont.oe_order_lines_all a
union
select b.created_by,b.po_line_Id,’PO’ Qtype from po.po_lines_all b
union
select mmt.created_by,mmt.transaction_id,’Transaction’ Qtype from inv.mtl_material_transactions mmt
然后 select * from cux_user_Business where created_by=74373 and ……其他条件
然而 Game 没有OVER ,但是用户投诉就上来了=>因为速度很慢很慢,
1: 这样的技术多了,会导致占用很多资源,最终导致系统慢,还不知道怎么查原因
2: ——DBA最头疼啦 那么这里就引出了我们的主题,如果调用视图的时候,里面的表就用user_id去查询,速度就会快了很多
相当于把参数传到视图里面去,这样实际查询出来只要5.6S
select a.created_by ,a.line_Id,’SO’ Qtype from ont.oe_order_lines_all a where a.created_by=74373
union
select b.created_by,b.po_line_Id,’PO’ Qtype from po.po_lines_all b where b.created_by=74373
union
select mmt.created_by,mmt.transaction_id,’Transaction’ Qtype from inv.mtl_material_transactions mmt where mmt.created_by=74373
隐藏内容
此处内容需要权限查看
会员免费查看 主题授权提示:请在后台主题设置-主题授权-激活主题的正版授权,授权购买:RiTheme官网
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。