社区
非技术版
帖子详情
高手帮忙,关于oracle自定义函数调用的问题
setmind
2005-05-15 08:07:08
我在oracle中自定义了一个函数,get_data 在数据库中调用是这样的
select bh,get_data(bh,1),get_data(bh,2) where get_data(bh,1)>0 or get_data(bh,2)>0
程序没用错误,但速度慢的很,请高手给出解决的办法。
...全文
316
16
打赏
收藏
高手帮忙,关于oracle自定义函数调用的问题
我在oracle中自定义了一个函数,get_data 在数据库中调用是这样的 select bh,get_data(bh,1),get_data(bh,2) where get_data(bh,1)>0 or get_data(bh,2)>0 程序没用错误,但速度慢的很,请高手给出解决的办法。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
16 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
fibbery
2005-05-22
打赏
举报
回复
select bh,get_data(bh,1),get_data(bh,2) where 0<get_data(bh,1)
union
select bh,get_data(bh,1),get_data(bh,2) where 0<get_data(bh,2)
试一试这个.
但是你在索引列应用函数,可能导致索引不会被使用,从而效率很低,
可以把函数的算法以及具体功能讲一讲吗?看看有没有提高效率的可能.
hcjp
2005-05-21
打赏
举报
回复
怎么在pl_sql 看sql的执行步骤 执行情况
new --- explain plan window
把你要执行的sql 拷贝到窗口中
根据你要查看的对象选择optimizer goal
你在下面就可以看到oralce的执行过程了
hedx
2005-05-20
打赏
举报
回复
能问一下是在pb里调用的吗,怎么调用的?
hedx
2005-05-20
打赏
举报
回复
是DECLARE test PROCEDURE FOR HE_TEST(:tin,:tout1,:tout2) ;
EXECUTE test ;
FETCH test INTO :tout1, :tout2 ;
这样调用吗?
setmind
2005-05-20
打赏
举报
回复
是在pb里调用,请问w7a8(阿飞)怎么才能把函数填加到索引里
w7a8
2005-05-19
打赏
举报
回复
看看执行计划吧,一定是用了全表扫描
如果增加index的话,函数也要在内
luotitan
2005-05-19
打赏
举报
回复
笨办法有一个,就是把get_data(bh,1),get_data(bh,2)都做为一个列(非计算列)保存到数据库中,用触发器生成。这样搜索的时候必然要快一些。
主要和表记录数和get_data的复杂度有关。
setmind
2005-05-19
打赏
举报
回复
能说明一下吗
hcjp
2005-05-19
打赏
举报
回复
你可以去用pl-sql调试下,
看下执行过程,是否有全表扫描的现象
别告诉我你不知道用pl_sql查看执行计划
setmind
2005-05-15
打赏
举报
回复
不知为什么,这个更慢啊
setmind
2005-05-15
打赏
举报
回复
不知这什么,这个更慢啊
fibbery
2005-05-15
打赏
举报
回复
忘了from
fibbery
2005-05-15
打赏
举报
回复
select * from (select bh,get_data(bh,1) a,get_data(bh,2) b) tbl where tbl.a>0 or tbl.b>0;
试一试这个.
setmind
2005-05-15
打赏
举报
回复
我是跟据这个编号,要根据相应要求计算出一个数据值
fibbery
2005-05-15
打赏
举报
回复
增加个索引在bh上,说说你的函数都作了些什么?
setmind
2005-05-15
打赏
举报
回复
再没人知道了吗
[20180531]函数
调用
与递归.txt
本文通过多个实验探讨了在
Oracle
数据库中使用
自定义函数
进行表扫描时是否会产生递归
调用
的
问题
。实验结果显示,单纯的函数
调用
不会引起递归,除非函数内部执行了额外的SQL查询。
Oracle
自定义函数
本文详细介绍了在
Oracle
数据库中创建、
调用
自定义函数
的方法,包括函数的权限管理,以及如何通过
自定义函数
解决不同数据库的兼容性
问题
。
oracle
调用
自定义函数
6,
Oracle
存储过程中
调用
自定义的函数
问题
?
博主在
Oracle
中遇到一个存储过程
调用
自定义数字校验函数的
问题
。首次导入数据时函数校验正常,但二次导入时需重新编译函数才能正确校验。函数IS_POSITIVE_NUMERIC用于检查字符串是否为正整数,可能存在导致此
问题
的原因。解决方案可能涉及存储过程的
调用
机制或函数本身的优化。
oracle
聚合函数
调用
,
Oracle
聚合函数解决聚集连接字符串
问题
-
Oracle
文章介绍了在
Oracle
数据库中遇到wm_concat函数的
问题
,包括其仅在10g版本以上可用以及非公开的缺点。作者提出了两种解决方案,一是升级到
Oracle
11g Release 2并使用内置的LISTAGG函数,二是创建自定义的聚合函数。文中详细展示了如何创建和使用这个
自定义函数
,并提供了测试案例。
oracle
怎么自定义排序,
ORACLE
自定义顺序排序
本文介绍了如何在
Oracle
中使用DECODE函数实现自定义顺序排序,包括将特定项置顶或置底,并给出了实际示例,适用于报表开发中的复杂排序需求。
非技术版
401
社区成员
11,494
社区内容
发帖
与我相关
我的任务
非技术版
PowerBuilder 非技术版
复制链接
扫一扫
分享
社区描述
PowerBuilder 非技术版
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章