这样的查询实在是太慢了,大家给点意见

gogocsgogodn gogocsgogodn 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
大致要求是这样的 一个列表 但是列表中有个字段是多个字符串拼接的
例如:
项目编号 项目名称 中标人 (一个项目有多个标段,意味着有多个中标人,用"/"隔开)
001 测试1 天天/常常/饿额

我写了个视图

SELECT PROJ_NO,PROJ_NAME,
(SELECT DISTINCT strCat(P.PROJID) FROM IBS_T_BID_NODE_HITBIDRESU) AS NOTICE_NO,
FROM PROJ_INFO ( 此处省略了一些其它表字段和连接)

strCat函数是这样写的

CREATE OR REPLACE FUNCTION "STRCAT" ( str_in in varchar2 )--分类字段
return varchar2
is
str_list varchar2(4000) default null;--连接后字符串
str varchar2(20) default null;--连接符号
begin
for x in ( select NOTICE_NO from IBS_T_BID_NODE_HITBIDRESU where PROJID = str_in ) loop
str_list := str_list || str || to_char(x.NOTICE_NO);
str := '/';
end loop;
return str_list;
end;

现在的情况是 注释掉NOTICE_NO字段 几秒种就出来列表,加上要等5多分钟,我看下IBS_T_BID_NODE_HITBIDRESU 有大概3000条记录 列表有130记录 意味着NOTICE_NO字段加上 要做 130*3000操作 可能就是因为这慢

能有其它办法让列表出来快点吗?
希望大家给点意见 谢谢!
...全文

相关推荐

评论 7
收藏 已收藏
分享
返回顶部
gogocsgogodn
MS-SQL Server 34,876 成员 254,635 内容