今天有个兄弟跟我说sql跑得太慢了,让我看看。sql如下: SELECT rownum row_num, pv.vendor_name, pha.segment1 po_num, prh.preparer_id, pha.Org_Id, pha.po_header_id, wo.department_code, wo.description oper_seq_desc, to_char(pha.creation_date, 'R
今天有个兄弟跟我说sql跑得太慢了,让我看看。sql如下:
SELECT rownum row_num, pv.vendor_name, pha.segment1 po_num, prh.preparer_id, pha.Org_Id, pha.po_header_id, wo.department_code, wo.description oper_seq_desc, to_char(pha.creation_date, 'RRRR-MM-DD HH24:MI:SS') enter_date, to_char(pha.approved_date, 'RRRR-MM-DD HH24:MI:SS') approved_date, --cux_public_pkg.get_item_no(wdj.primary_item_id) item_no, we.wip_entity_name FROM PO.po_headers_all pha, APPS.po_vendors pv, PO.po_lines_all pla, PO.po_line_locations_all pll, PO.po_distributions_all pld, PO.po_requisition_headers_all prh, PO.po_requisition_lines_all prl, PO.po_req_distributions_all prd, WIP.wip_discrete_jobs wdj, APPS.BOM_STANDARD_OPERATIONS_V bso, APPS.wip_operations_v wo, WIP.wip_entities we WHERE 1 = 1 AND prl.wip_entity_id = we.wip_entity_id AND pha.po_header_id = pla.po_header_id AND pha.vendor_id = pv.vendor_id AND pll.po_line_id = pla.po_line_id AND pll.po_header_id = pha.po_header_id AND pll.line_location_id = pld.line_location_id AND prd.requisition_line_id = prl.requisition_line_id AND pld.req_distribution_id = prd.distribution_id AND prl.requisition_header_id = prh.requisition_header_id AND prl.wip_entity_id = wdj.wip_entity_id AND prl.wip_entity_id = wo.wip_entity_id AND prl.wip_operation_seq_num = wo.operation_seq_num AND wo.standard_operation_id = bso.STANDARD_OPERATION_ID AND wdj.Organization_Id = /*p_organization_id*/83 AND pha.segment1 >= /*nvl(p_po_num_f, pha.segment1)*/'621337540' AND pha.segment1 <= /*nvl(p_po_num_t, pha.segment1)*/ '621337540' AND nvl(pha.approved_date, SYSDATE + 9999) >= nvl(pha.approved_date, SYSDATE + 9999) AND nvl(pha.approved_date, SYSDATE + 9999) <=nvl(pha.approved_date, SYSDATE + 9999) ORDER BY pha.segment1, pla.line_num;
快速的运用sql三段分拆方法(分享过的) 扫描一下,发现没问题 (如果不知道的哥们,请自己百度 落落 sql 三段分拆方法)
SQL里面有个视图wo 视图代码如下:
/*CREATE OR REPLACE VIEW WIP_OPERATIONS_V (row_id, wip_entity_id, operation_seq_num, organization_id, repetitive_schedule_id, last_update_date, last_updated_by, creation_date, created_by, last_update_login, request_id, program_application_id, program_id, program_update_date, operation_sequence_id, standard_operation_id, operation_code, department_id, department_code, location_id, description, scheduled_quantity, quantity_in_queue, quantity_running, quantity_waiting_to_move, quantity_rejected, quantity_scrapped, quantity_completed, first_unit_start_date, first_unit_completion_date, last_unit_start_date, last_unit_completion_date, previous_operation_seq_num, next_operation_seq_num, count_point_type, count_point_flag, autocharge_flag, backflush_flag, minimum_transfer_quantity, date_last_moved, attribute_category, attribute1, attribute2, attribute3, attribute4, attribute5, attribute6, attribute7, attribute8, attribute9, attribute10, attribute11, attribute12, attribute13, attribute14, attribute15, operation_yield, cumulative_scrap_quantity, operation_yield_enabled, operation_completed, shutdown_type, shutdown_type_disp, x_pos, y_pos, long_description, disable_date, recommended, progress_percentage, wsm_bonus_quantity, actual_start_date, actual_completion_date, employee_id, employee_name, lowest_acceptable_yield, check_skill) AS*/ SELECT WO.ROWID ROW_ID, WO.WIP_ENTITY_ID, WO.OPERATION_SEQ_NUM, WO.ORGANIZATION_ID, WO.REPETITIVE_SCHEDULE_ID, WO.LAST_UPDATE_DATE, WO.LAST_UPDATED_BY, WO.CREATION_DATE, WO.CREATED_BY, WO.LAST_UPDATE_LOGIN, WO.REQUEST_ID, WO.PROGRAM_APPLICATION_ID, WO.PROGRAM_ID, WO.PROGRAM_UPDATE_DATE, WO.OPERATION_SEQUENCE_ID, WO.STANDARD_OPERATION_ID, BSO.OPERATION_CODE, WO.DEPARTMENT_ID, BD.DEPARTMENT_CODE, BD.LOCATION_ID, WO.DESCRIPTION, WO.SCHEDULED_QUANTITY, DECODE(WO.QUANTITY_IN_QUEUE, 0, NULL, WO.QUANTITY_IN_QUEUE), DECODE(WO.QUANTITY_RUNNING, 0, NULL, WO.QUANTITY_RUNNING), DECODE(WO.QUANTITY_WAITING_TO_MOVE, 0, NULL, WO.QUANTITY_WAITING_TO_MOVE), DECODE(WO.QUANTITY_REJECTED, 0, NULL, WO.QUANTITY_REJECTED), DECODE(WO.QUANTITY_SCRAPPED, 0, NULL, WO.QUANTITY_SCRAPPED), DECODE(WO.QUANTITY_COMPLETED, 0, NULL, WO.QUANTITY_COMPLETED), WO.FIRST_UNIT_START_DATE, WO.FIRST_UNIT_COMPLETION_DATE, WO.LAST_UNIT_START_DATE, WO.LAST_UNIT_COMPLETION_DATE, WO.PREVIOUS_OPERATION_SEQ_NUM, WO.NEXT_OPERATION_SEQ_NUM, WO.COUNT_POINT_TYPE, DECODE(WO.COUNT_POINT_TYPE, 1, 1, 2) "COUNT_POINT_FLAG", DECODE(WO.COUNT_POINT_TYPE, 3, 2, 1) "AUTOCHARGE_FLAG", WO.BACKFLUSH_FLAG, WO.MINIMUM_TRANSFER_QUANTITY, WO.DATE_LAST_MOVED, WO.ATTRIBUTE_CATEGORY, WO.ATTRIBUTE1, WO.ATTRIBUTE2, WO.ATTRIBUTE3, WO.ATTRIBUTE4, WO.ATTRIBUTE5, WO.ATTRIBUTE6, WO.ATTRIBUTE7, WO.ATTRIBUTE8, WO.ATTRIBUTE9, WO.ATTRIBUTE10, WO.ATTRIBUTE11, WO.ATTRIBUTE12, WO.ATTRIBUTE13, WO.ATTRIBUTE14, WO.ATTRIBUTE15, WO.OPERATION_YIELD, WO.CUMULATIVE_SCRAP_QUANTITY, WO.OPERATION_YIELD_ENABLED, NVL(WO.OPERATION_COMPLETED, 'N'), WO.SHUTDOWN_TYPE, LU1.MEANING, WO.X_POS, WO.Y_POS, WO.LONG_DESCRIPTION, WO.DISABLE_DATE, WO.RECOMMENDED, WO.PROGRESS_PERCENTAGE, WO.WSM_BONUS_QUANTITY, WO.ACTUAL_START_DATE, WO.ACTUAL_COMPLETION_DATE, WO.EMPLOYEE_ID, PAP.FULL_NAME, WO.LOWEST_ACCEPTABLE_YIELD, nvl(wo.CHECK_SKILL, 2) CHECK_SKILL FROM BOM_DEPARTMENTS BD, BOM_STANDARD_OPERATIONS BSO, WIP_OPERATIONS WO, MFG_LOOKUPS LU1, PER_ALL_PEOPLE_F PAP WHERE BD.DEPARTMENT_ID = WO.DEPARTMENT_ID AND BSO.STANDARD_OPERATION_ID(+) = WO.STANDARD_OPERATION_ID AND NVL(BSO.OPERATION_TYPE, 1) = 1 AND BSO.LINE_ID IS NULL AND LU1.LOOKUP_TYPE(+) = 'BOM_EAM_SHUTDOWN_TYPE' AND LU1.LOOKUP_CODE(+) = WO.SHUTDOWN_TYPE AND WO.EMPLOYEE_ID = PAP.PERSON_ID(+) ORDER BY WO.OPERATION_SEQ_NUM;
我靠视图里面有 ORDER BY ...... 这不是脑残吗? 视图里面你搞ORDER BY 干嘛呢,直接在 视图外面写order by 呀。
select .... from a, v_b where a.id=b.id;
a 是一个表, v_b 是一个视图。 v_b 里面有order by 那么 v_b 是有序的, v_b 里面没order by 那么v_b 是无序的。
但是最终的 sql 返回结果 有没有顺序 是 在 最外面 搞 order by 对吧。
所以让 那哥们把视图里面的order by 给去掉 ,结果里面返回结果了。 执行计划就不 贴了,视图里面有 order by 会干扰执行计划的。
别在视图里面搞ORDER BY ,如果有需要 ,请在 外面sql 进行order by。

iPhone16系列将在全线型号也采用堆叠式后置感光元件设计。该设计在今年的iPhone15标准版上已有类似的应用。今年的标准版iPhone15和iPhone15Plus预期将配备一个4800万像素的后置镜头,并使用能够捕捉更多光线的堆叠式CMOS影像感光元件(CIS)设计。新感光元件设计的产能问题,导致苹果无法在所有iPhone15型号上全面采用此设计。尽管索尼的高端CIS产能预期将在2024年前持续紧张,但Apple已提前确保了大部分的Sony订单。根据郭明錤的说法,索尼产能紧张,将对竞争对

在线投票系统的设计与实现随着互联网的不断发展,在线投票系统成为了一种非常方便和高效的方式来进行民意调查和选举。本文将介绍在线投票系统的设计和实现,并附带一些代码示例。一、系统设计功能需求分析在线投票系统主要具备以下功能:用户注册与登录:用户可以通过注册账号并登录系统来参与投票活动。创建投票:管理员可以创建投票并设定投票的相关参数,如投票主题、选项内容和投票截

随着互联网技术的发展,RESTful风格的API设计成为了最为流行的一种设计方式。而Java作为一种主要的编程语言,也越来越多地在RESTful接口的开发中扮演着重要的角色。在JavaAPI开发中,如何设计出优秀的RESTful接口,成为了一个需要我们深入思考的问题。RESTful接口的基本原则首先,我们需要了解RESTful接口的基本原则。REST即Re

随着互联网技术的不断发展,面向服务架构(SOA)的理念越来越受到人们的重视。在这个背景下,Go语言作为一种高效、可靠的编程语言,也逐渐成为了很多企业与开发者实现SOA的首选语言。本文将深入探讨Go语言中的面向服务架构设计。一、SOA简介面向服务架构是一种软件设计的架构风格,它将复杂的系统拆分成多个相互独立、可复用的服务,每个服务都有独立的功能实现,并使用标准

随着智能车辆在网联化、智能化及架构技术的发展,汽车无论是在固件还是软件上都已经不可逆转的需要进行软件迭代升级。要求在汽车生命周期内会不断的基于汽车OTA能力为整车提供软件升级、固件升级、售后服务等服务能力,可以说,汽车的智能化更迭对于OTA升级能力已经成为不可或缺的主流趋势。本文章将针对自动驾驶汽车的软件升级现状需求及监管要求等进行详细的描述。意在帮助读者整体了解自动驾驶中的软件升级过程原理、准入要求及其应对策略。1整车软件升级技术优势首先,软件定义汽车推动了整车软件升级技术的发展与应用,通过整

如何使用Go语言进行代码安全性设计在当今互联网时代,代码安全性是一项至关重要的任务。无论是为了保护用户的隐私还是避免遭受黑客攻击,代码安全性都是必不可少的。Go语言作为一种现代化的编程语言,提供了许多功能和工具,可以帮助我们进行代码安全性设计。本文将介绍一些在Go语言中实现代码安全性的最佳实践,并提供相应的代码示例。输入验证输入验证是代码安全性的第一道防线。

RESTfulAPI是目前Web架构中较为常用的一种API设计风格,它的设计理念是基于HTTP协议的标准方法来完成Web资源的表示与交互。在实现过程中,RESTfulAPI遵循一系列规则和约束,包括可缓存、服务器-客户端分离、无状态性等,这些规则保证了API的可维护性、扩展性、安全性以及易用性。接下来,本文将详细介绍RESTfulAPI的设计及其实现方

在互联网时代,文章阅读与分享已经成为人们日常生活中必不可少的一部分。然而,对于文章的点赞与收藏功能来说,用户体验体现的非常关键。而Redis作为一个高性能的键值存储数据库,在文章点赞与收藏功能的实现中有很大的优势。本文将分享一个基于Redis实现的文章点赞功能设计。功能设计文章点赞功能的设计过程中,需要考虑到许多因素。首先,需要将点赞接口暴露给用户,用户可随


热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

SublimeText3汉化版
中文版,非常好用

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

螳螂BT
Mantis是一个易于部署的基于Web的缺陷跟踪工具,用于帮助产品缺陷跟踪。它需要PHP、MySQL和一个Web服务器。请查看我们的演示和托管服务。

Dreamweaver CS6
视觉化网页开发工具

DVWA
Damn Vulnerable Web App (DVWA) 是一个PHP/MySQL的Web应用程序,非常容易受到攻击。它的主要目标是成为安全专业人员在合法环境中测试自己的技能和工具的辅助工具,帮助Web开发人员更好地理解保护Web应用程序的过程,并帮助教师/学生在课堂环境中教授/学习Web应用程序安全。DVWA的目标是通过简单直接的界面练习一些最常见的Web漏洞,难度各不相同。请注意,该软件中