存储过程 入参为空的优化

o_range o_range 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
这是我现在的代码:

procedure SALE(para_s_rq in varchar2 ,
para_e_rq in varchar2,
para_reminder_id in varchar2,
para_buyer_id in varchar2,
para_goods_id in varchar2,
para_supplier_id in varchar2,
para_saler_id in varchar2,
para_orgid in integer,
para_p_cursor out t_cursor) is
begin
insert into A
select * from B
where b.date between(para_s_rq and para_e_rq)
(case when para_supplier_id is null or t.policy_supp_id =para_supplier_id then 1 else 0 end)=1
and (case when para_reminder_id is null or t.policy_reminder_id =para_reminder_id then 1 else 0 end)=1
and (case when para_orgid is null or b.org_id =para_orgid then 1 else 0 end)=1
and (case when para_goods_id is null or b.goodsid=para_goods_id then 1 else 0 end)=1
and (case when para_buyer_id is null or b.SUPPLYERID=para_buyer_id then 1 else 0 end)=1
and (case when para_reminder_id is null or t.policy_reminder_id=para_reminder_id then 1 else 0 end)=1
and (case when para_saler_id is null or b.salerid=para_saler_id then 1 else 0 end)=1
end SALE_REBATE_SETTLE;

后来单步执行,以及把语句摘出来运行发现,后面的条件 para is null or ...这类语句对效率的影响还是很大的~
求大神告诉如何进行优化~
...全文

相关推荐

SQLserver2008存储过程编写(有参和无参)

通过灵活运用这些特性,我们可以构建出复杂而功能强大的存储过程,以满足不同业务需求。在SQL Server 2008中,熟练掌握存储过程的编写和使用对于优化数据库操作和提升数据库管理效率至关重要。

sansitongzhi

C# 调用含参存储过程

在数据库操作中,存储过程是一个预编译的SQL语句集合,它可以在数据库服务器上执行,提高了执行效率并提供了封装和重用的能力。本篇将详细讨论如何在C#中调用含参存储过程。首先,我们来看存储过程的创建。

baidu_22825415

Oracle存储过程详解[代码]

创建存储过程时,首先需要使用CREATE PROCEDURE语句,然后定义过程名称和所需的参数。无入参出参的过程是最基础的,它不接受任何输入参数,也不返回任何输出参数,仅仅执行一系列的数据库操作。

soda5

ORACLE存储过程性能优化技巧

性能优化是数据库管理的核心任务之一,尤其是对于处理大量数据的企业级应用,存储过程的优化能显著提升系统效率。以下是一些关于"ORACLE存储过程性能优化技巧"的关键知识点:1.

zhanzh1985

oracle 存储过程优化

Oracle存储过程优化是数据库开发工程师在日常工作中不可或缺的技能,它涉及到数据库性能调优、代码效率提升以及资源管理。本文将详细介绍如何通过创建、设计和执行存储过程来优化Oracle数据库操作,特别

yun12315
评论 10
收藏 已收藏
分享
返回顶部
o_range
基础和管理 17,377 成员 95,111 内容