还是关于字符串累加计算的有关问题,请赐教
还是关于字符串累加计算的问题,请赐教?
sql版本:2000
参考的帖子:http://bbs.****.net/topics/340233673
按照参考的帖子,我写了两个函数,如下
当我执行下面的语句速度很慢,1000多条的数据要用1分钟,如何改进能提高效率:
------解决方案--------------------
对于字符串累加这种操作本来就耗时,你还用两个函数,慢是正常的。
------解决方案--------------------
1000多条一分钟,lz需要检查一下是否用到索引。
另外,字符串累加消耗也是可观的。 2000上,索引是第一考虑方向。如果表上不便调整索引的话,
LZ可以考虑使用临时表来处理,毕竟数据量还不算大。
sql版本:2000
参考的帖子:http://bbs.****.net/topics/340233673
按照参考的帖子,我写了两个函数,如下
create function [dbo].[combimeXsjhbh_str](
@fhjhbh varchar(20),
@fhjhid varchar(20),
@erpid varchar(20),
@khbm varchar(100)
)
returns varchar(200)
as
begin
declare @s varchar(800)
select @s=isnull(@s+',','')+ltrim(xsjhbh)
from fh_jhbh left join fh_jhbb on fh_jhbh.fhjhid = fh_jhbb.fhjhid
where jhysh=1 and fhjhbh=@fhjhbh and fh_jhbh.fhjhid=@fhjhid and erpid=@erpid and khbm=@khbm
return @s
end
create function [dbo].[combimeFbid_str](
@fhjhbh varchar(20),
@fhjhid varchar(20),
@erpid varchar(20),
@khbm varchar(100)
)
returns varchar(200)
as
begin
declare @s varchar(800)
select @s=isnull(@s+',','')+ltrim(fbid)
from fh_jhbh left join fh_jhbb on fh_jhbh.fhjhid = fh_jhbb.fhjhid
where jhysh=1 and fhjhbh=@fhjhbh and fh_jhbh.fhjhid=@fhjhid and erpid=@erpid and khbm=@khbm
return @s
end
当我执行下面的语句速度很慢,1000多条的数据要用1分钟,如何改进能提高效率:
--......表示还有很多的字段要取出来,这些字段我都用max函数取
select fhjhbh,fh_jhbh.fhjhid,erpid,......,dbo.combimeXsjhbh_str(fhjhbh,fh_jhbh.fhjhid,erpid,khbm) as xsjhbh
from fh_jhbh left join fh_jhbb on fh_jhbh.fhjhid = fh_jhbb.fhjhid
where 1=1 and jhysh=1 and jhyshjfsj >= '2012-11-01'
group by fhjhbh,fh_jhbh.fhjhid,erpid,khbm
------解决方案--------------------
对于字符串累加这种操作本来就耗时,你还用两个函数,慢是正常的。
------解决方案--------------------
1000多条一分钟,lz需要检查一下是否用到索引。
另外,字符串累加消耗也是可观的。 2000上,索引是第一考虑方向。如果表上不便调整索引的话,
LZ可以考虑使用临时表来处理,毕竟数据量还不算大。