关于如何提高效率的问题,请高手帮忙?(50分)

  • 主题发起人 主题发起人 huhongru
  • 开始时间 开始时间
H

huhongru

Unregistered / Unconfirmed
GUEST, unregistred user!
我在Sybase 中建了#TEMP的表 ,在本地应用程序中执行如下的代码:
tmpsql:=' select FEE_NO,DEPT_NO,count(FEE_NO),Sum(DUE_COST) '
+' , Sum(PRACTICE_COST) from #TEMP '
+' where ID >='+inttostr(N)
+' and ID <='+inttostr(i+1)
+' group by FEE_NO,DEPT_NO '
+' order by FEE_NO,DEPT_NO ' ;
qry_Tmp.close;
qry_Tmp.SQL.Clear;
qry_Tmp.Sql.Add(tmpsql);
qry_Tmp.Open;

ItemCount:=qry_Tmp.RecordCount;
然后进行判断的操作。

这样做的话必定会影响网络速度慢的问题。
如何才能提高它的效率呢?用CachedUpdates=True 的机制可不可以提高呢?
 
用存储过程会好一些的
把CachedUpdates=True 的方法应该不会有太大的作用,它主要用于数据的更新和删除
 
利用存储过程获取itemcount的值,在数据库服务器端执行,比单纯地在客户端要提高很多
用CachedUpdates的机制不会提高多少(相对于存储过程)
 
同意楼上两位!
 
那么我想问
存储过程是静态的,而临时表是动态的。
静态的东西对动态的东西操作是不是不太适合啊!
 
临时表创建的时候 动态创建存储过程啊。
 
我的做法是这样的:

在SP中查询CREATE #TMP,根据SP 的参数,查询所需的数据返回 !
如果是结果集,用临时表;否则用OUTPUT参数。
 
To::LIU_CHENG_GANG2K
请问你可不可说得更清楚一些呢?
  放心好了,我一定会给你加分的。
 
在后端写一存储过程。返回全局变量@@rowcount
 
多人接受答案了。
 
后退
顶部