请教:VB中调用存储过程的执行效率问题
我在VB中调用存储过程,以前执行的速度都比较快,不知为何这几天速度突然变得特别慢了,我在mssql的SQL query analyzer调用该存储过程,只用几秒就完成了,可是在VB的程序中却要花很长时间,请问高手,这是什么原因,该怎样解决?谢谢了! 问题点数:20、回复次数:18Top
1 楼feixuehenshui(飞雪恨水)回复于 2003-01-03 17:38:02 得分 0
前几天我把MIS给 小鱼看,他说 “你这样写还不慢死,用存储过程”呵呵`1``
当时看了一下资料,呵呵 存储过程是好东西,可惜我不大懂
关注……
Top
2 楼liuruxin(刘如心)回复于 2003-01-03 17:38:33 得分 0
你調用它用來處理什麼了
Top
3 楼liuruxin(刘如心)回复于 2003-01-03 17:43:20 得分 0
存储过程是在db中執行,你可以單步執行看是到存储过程處是否要很久,如果不是就不是存储过程的事,
Top
4 楼feixuehenshui(飞雪恨水)回复于 2003-01-03 17:49:42 得分 0
我只知道存储过程是在SERVER端进行查询运算
就行 集线器和交换机一样
我什么也不知道……Top
5 楼shawls(VB Fan)(QQ:9181729)回复于 2003-01-03 18:01:35 得分 0
连接:用什么连接(odbc,oledb,……)?还有,是保持连接还是使用的时候连上去?或者使用连接池?
这些都是需要时间的Top
6 楼nancylem(书页轻翻)回复于 2003-01-03 18:07:54 得分 0
是用ADO连接的
我用单步执行了,确实是调用存储过程用的时间长Top
7 楼redwrite(红妆素裹)回复于 2003-01-03 20:48:56 得分 0
呵呵,我做的都是小型数据库效率问题还没有遇上~~~~~~~~Top
8 楼tgliu(TinguiLiu)回复于 2003-01-03 21:00:02 得分 0
可能与你的系统中ODBC的设置有关,当然不一定是你用到了ODBC才这样,有时不用ODBC,可你的系统可能会出现的,所以你可以新建一个ODBC,进行设置,当前这只是一个用于连接服务器的测试,通过这个测试,你可以知道你的连接速度。修改设置到你连接正常为止即可;当然,也要注意你的协议设置;最好只选TCP/IPTop
9 楼yvqq(yvqq)回复于 2003-01-04 10:37:29 得分 10
估计是你的sql客户端的配置不正确,去掉命名管道,只用tcp/ip,并指明服务器。有时候命名管道会速度很慢的!Top
10 楼yefm(百聊)回复于 2003-01-04 12:30:09 得分 0
用oledb连接,不要用ODBCTop
11 楼kh(齐天大圣)回复于 2003-01-04 13:20:39 得分 0
use tcp/ip
Top
12 楼CTaoHero(咖啡的诱惑)回复于 2003-01-04 17:34:11 得分 0
是ORACLE的存储过程(PL/SQL)吗?Top
13 楼csz_cmy(PIC&C51)回复于 2003-01-05 13:31:41 得分 0
...Top
14 楼oldsky(九指神丐)回复于 2003-01-06 10:29:40 得分 0
gzTop
15 楼netnerd(无心插柳柳成荫)回复于 2003-01-06 11:09:17 得分 0
你在QA中是不是用到程序运行中实际数据,如果存储过程参数值不同,或者其他数据不同,那当然效率不一样.Top
16 楼snakeyin(水是我)回复于 2003-01-06 11:16:46 得分 0
這要看運行過程時 server 的loading重不重, 返回的結果集大小等其他一些server的問題, 最好先請你們的DBA看以下Top
17 楼fuxc(Michael(继续迷茫))回复于 2003-01-07 15:13:11 得分 10
呵呵~~
我以前碰到过,以下方法包解决问题:
1、复制存储过程的代码
2、删掉存储过程
3、在查询分析器里面重新生成一遍(注意一定是query analyzer!!)
然后再试一下,就OK了
这个问题应该是SqlServer的Bug,有问题的存储过程基本上是在记事本等编辑器里面处理过,然后在企业管理器里面直接Copy代码的,
估计跟Unicode转换之类的问题有关,用事件探查器跟踪一下可以看到~~
曾经为了调试这个问题花过大量时间,所以记得特别清楚。Top
18 楼hzg115(诸葛武侯)回复于 2003-01-07 16:30:37 得分 0
我也是一样,我用BCB,还没解决中,在查询分析器中只要几分钟,用ADO花了半个小时左右Top




