求视图优化方法,请各位高手不吝赐教!!!

Xiao_Ma123456789 2017-08-23 05:26:39
各位大侠,小弟建了一个视图,发现查询效率十分低下,于是用排除法找到有三个字段对查询效率影响十分严重。
这三个字段分别是【小号列表】、【二维码】、【用户标识串】。

总记录条数为5385条,去掉这3个字段的查询时间为8秒。
加上【小号列表】字段,查询时间为38秒
加上【小号列表】、【二维码】字段,查询时间为1份11秒
加上【小号列表】、【二维码】、【用户标识串】字段,查询时间为1分30秒。

求各位高手伸以援手,解救小弟于水火之中!抱拳了,哥!!


create or replace view wms_item_inventory_v2 as
select
Wii.id,
...
...
(select wm_concat(Item_Sub_No) from Mes_item_order t
where wms_item_inventory_id = Wii.ID and t.Item_Produce_Status = '5') as Item_Order_str, --小号列表

(select wiobl.bar_code from Wms_inv_Out_Bill_List wiobl
where wiobl.mds_item_id = Wii.Mds_Item_id and rownum = 1) as QRCode, --二维码

(select Sys_Common_if_p.Get_Lookup_Name('WMS_USER_FLAG',wii.USER_FLAG) || ','
|| wm_concat(Sys_Common_If_p.Get_Lookup_name('WMS_USER_FLAG',user_flag))
from Mes_item_Order t where t.wms_item_inventory_id = Wii.ID) AS User_flag_str --用户标识串

from Wms_Item_Inventory Wii
INNER JOIN Mds_item Mi ON Mi.id = Wii.Mds_Item_id
LEFT JOIN Mds_item Pi ON pi.id = Wii.Pro_Mds_Item_Id
INNER JOIN Wms_Inventory Wi ON Wi.Id - Wii.Wms_Inventory_id
LFET JOIN Wms_Locator wl ON wl.id = Wii.wms_locator_id
WHERE wi.inventory_code in('100','101','102','103')
...全文
156 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
Xiao_Ma123456789 2017-08-24
  • 打赏
  • 举报
回复
引用 1 楼 wmxcn2000 的回复:
二维码那张表,mds_item_id 有索引吗?


引用 2 楼 jdsnhan 的回复:
看看select语句的执行计划


引用 2 楼 jdsnhan 的回复:
看看select语句的执行计划


感谢二三四楼的各位哥的指导与支持,感谢五楼的兄弟!确实原表部分字段没有建立索引,建了以后马上速度提高了很多
以下两个索引都没有的查询时间为1分30秒左右
create index wms.mds_item_id on WMS.WMS_INV_OUT_BILL_LIST(mds_item_id) --没有这个索引的查询时间18秒
create index Mes.wms_item_inventory_id on Mes.Mes_item_Order(wms_item_inventory_id) --没有这个索引的查询时间45秒


下面是解释执行计划执行的对比图,图片不是很清晰,主要区别在以下几个地方
Description 对象所有者 对象名称 耗费 耗费(加索引后)
TABLE ACCESS FULL MES MES_item_order 278 3
TABLE ACCESS FULL WMS WMS_INV_BILL_OUT_BILL 375 6 + 3 (新建索引时间)
TABLE ACCESS FULL MES MES_item_order 278 3 + 1 (新建索引时间)
fengzhiqiang1981 2017-08-24
  • 打赏
  • 举报
回复
where 中的字段全建上索引, 速度定会上来
mayanzs 2017-08-24
  • 打赏
  • 举报
回复
检查创建视图所需的源表之关键字段上有无索引。
jdsnhan 2017-08-24
  • 打赏
  • 举报
回复
看看select语句的执行计划
卖水果的net 2017-08-24
  • 打赏
  • 举报
回复
二维码那张表,mds_item_id 有索引吗?

17,377

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 基础和管理
社区管理员
  • 基础和管理社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧