查询慢,这是是啥原因啊

nicholasvb 2018-08-31 04:56:46
-------------------这个线中间的那个字段,如果去掉就很快, 那个字段如果单独查询也很快, 就是放到这个sql语句里就慢了,

SELECT name AS prodname, reserved17 AS partid, '' AS consigntype, reserved6,
reserved8, reserved18, reserved1, reserved3,reserved5, reserved16, reserved27,
(SELECT description FROM mm_material@mesdb td WHERE EXISTS
(SELECT 1 FROM COM_CONTEXT_VALUE@mesdb ta, mm_contextbom@mesdb tb, mm_contextbom_line@mesdb tc
WHERE ta.result_value1 = tb.name AND tb.object_rrn = tc.bom_rrn AND ta.status = 'Active'
AND tb.status = 'Active' AND ta.context_field_value2 = te.name
AND tc.material_name = td.name) AND td.material_type = '框架') AS frame,
reserved20, (SELECT result_value1
FROM com_context_value@mesdb WHERE context_field_value1 = te.name and status='Active')
AS testprg,
-----------------------------------加上此句查询变慢
(SELECT to_char(wm_concat(description))
FROM mm_material@mesdb td WHERE EXISTS (SELECT 1 FROM COM_CONTEXT_VALUE@mesdb ta,
mm_contextbom@mesdb tb, mm_contextbom_line@mesdb tc WHERE ta.result_value1 = tb.name
AND tb.object_rrn = tc.bom_rrn AND ta.status = 'Active' AND tb.status = 'Active'
AND ta.context_field_value2 = 'D_HC8819DKQ1CZ-CU-00-E3_AO' AND tc.material_name = td.name) AND td.material_type = '装片胶')
AS adhesive
-------------------------------------------------------
FROM mm_material@mesdb te WHERE class = 'PART' AND name = 'D_HC8819DKQ1CZ-CU-00-E3_AO'
AND version = '2'
...全文
296 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
最好的方式 是看执行计划。。

17,377

社区成员

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

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