雨笑烟燃

专注于VB.net.关注WPF.

« 新开交流QQ群:167435826toString参数说明(转) »

MS SQL优化问题

今天发现一个很有趣的问题.请看代码:

declare @i int select @i=1declare @l int select @l=dbo.GetSplitLength(@mbh,',') ---字符串分割长度while(@i<=@l)begin insert into #tmbTable(mbhid) select a.mbhid from dockconfig_mbhTable a where a.mbh=dbo.GetSplitOfIndex(@mbh,',',@i)select @i=@i+1end;
-----------------------------------------------
由于dockconfig_mbhTable 表中有上万条数据,执行起来效率低下.经过尝试分析功能的执行时间,发现效率是受函数影响,
但是单独进行函数dbo.GetSplitOfIndex 测试,效率又没有问题.于是稍微修改了下代码:
declare @i int  select @i=1declare @l int  select @l=dbo.GetSplitLength(@mbh,',')declare @v varchar(20)while(@i<=@l)begin  select @v=dbo.GetSplitOfIndex(@mbh,',',@i)insert into #tmbTable(mbhid) select a.mbhid from dockconfig_mbhTable a where a.mbh=@v  select @i=@i+1end;   

居然…居然效率提高了好几千倍.记录下以后遇到该问题都在进行查询时进行变量申明分开使用函数.

  • 相关文章:

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

日历

最新评论及回复

最近发表

Powered By Z-Blog 1.8 Walle Build 100427

Copyright yxyr.com ,Some Rights Reserved.浙ICP备06021833号