中国IT动力,最新最全的IT技术教程
最新100篇 | 推荐100篇 | 专题100篇 | 排行榜 | 搜索 | 在线API文档
首 页 | 程序开发 | 操作系统 | 软件应用 | 图形图象 | 网络应用 | 精文荟萃 | 教育认证 | 硬件维护 | 未整理篇 | 站长教程
ASP JS PHP工程 ASP.NET 网站建设 UML J2EESUN .NET VC VB VFP 网络维护 数据库 DB2 SQL2000 Oracle Mysql
服务器 Win2000 Office C DreamWeaver FireWorks Flash PhotoShop 上网宝典 CorelDraw 协议大全 网络安全 微软认证
硬件维护  CPU  主板  硬盘  内存  显卡  显示器  键盘鼠标  声卡音箱  打印机  机箱电源  BIOS  网卡  C#  Java  Delphi  vs.net2005
  当前位置:> 程序开发 > 软件工程 > 综合文章
tuxedo游标操作大表慢的问题?
作者:未知 时间:2005-09-13 19:43 出处:ChinaUnix.net 责编:chinaitpower
              摘要:tuxedo游标操作大表慢的问题?

我在测试时发现,在tuxedo(8.0)中使用游标对数据库(ASE12.0)的大表操作时速度很慢,为排除是数据库本身慢的原因,我写了一个和tuxedo中功能相同的procedure进行直接调用,发现速度很快!

所以有以下疑问:
1、是否在tuxedo中在使用游标操作时需要进行特别的调优?
该如何调优?

2、是否tuxedo中使用游标对大表操作就是慢,没辙?

考虑到这里没有中间件版,只好跑到这发一贴了,希望大家发表点意见!谢谢!!

 一无所有 回复于:2003-02-25 12:34:44
你的这个问题我们也碰到了。
  但我不知道你所知的大表是指字段数,还是记录数。
  如果是记录数,可以使用分页的办法来处理。

 jazy 回复于:2003-02-25 18:28:42
比如我要同时从两个表中取10条符合条件的纪录,其中一个表中每天只有不到5万的纪录,另一个表中则有上千万纪录。两个表的结构基本相同,但是游标在对大表open时非常的慢,这点已经单步跟踪出来了!,但是其实这个表是有索引的,如果直接在存储过程中进行游标操作,几乎在1秒内就有结果,但在tuxedo中却要数十秒!

我这里所说的大表是指纪录数,而非字段!
你所说的分页是什么概念,是在数据库级吗?还是在tuxedo中处理?

如果是在数据库级,就没什么意义了,因为数据库本身性能很好啊!但对于tuxedo来讲却那么慢!

 一无所有 回复于:2003-02-26 13:07:45
我想你指定的数据一般是做查询,显示用,
  如果是做统计用,你完全可以在存储过程里处理后再提取。
  如果是做查询用,我所指的分页就是在tuxedo处理,
  每次例如只提取50条数据,
  向下翻页显示的时候,再取下面的50条,
  你可以尝试用快照实现。

 jazy 回复于:2003-02-26 14:08:08
现在的问题是如何在服务端快速的获取到客户端需要的数据!
不使用游标行吗?

 一无所有 回复于:2003-02-26 19:54:58
客户端需要的是什么样的数据?
  可否对原数据和目标数据进行一下描述?

 jazy 回复于:2003-02-26 22:43:07
其实,客户端需要的是10条以内的缴费纪录,每条也就是3个字段!

在服务端通过游标从数据库获取按查询条件得到的数据,然后进行拼串返回给客户端。

 一无所有 回复于:2003-02-27 18:47:40
如果是这样你就完全没有必要用游标了,
  如果客户那边的数据库服务器不是太差,
  你可以把所有的动作都放到存储过程里,
  然后从前台解析字符串。

 jazy 回复于:2003-02-28 14:03:04
是啊,我现在也只能这样选择了,因为目前还没有任何解释为什么在tuxedo中使用游标会那么慢了!但是通过存储过程返回查询结果集的方式不是很灵活,而且对于大量数据集就可能不适用了,编程上麻烦多了!

 一无所有 回复于:2003-02-28 17:04:07
一般情况下,在一次需要200条以上数据时,我不会用Tuxedo的游标,
  那样做简直是磨练人的耐心。
  我们现在也只有这样了。
  我不知道你们那边的具体情况,
  我们这边已经有了一套比较成熟的字符处理包函数,
  所以这样处理对我们而言是比较方便的。
  如果是大数据的查询,
  我以为一般是发生在数据比较集中的几个地方,
  用C/S算了。

 jazy 回复于:2003-02-28 17:07:54
其实,目前我们查询的要求只是播放给用户10条以内的纪录,所以才会用三层方式!但是我在处理结果时遇到了些问题,不知道你能否帮忙看看!
在c/c++中我有一贴关于这个问题!

 无双 回复于:2003-03-06 18:30:20
这样的文章也不加精华
看来这里的版主要求也太严格了

 一无所有 回复于:2003-03-06 23:11:38
我觉得我们还没有真正解决问题!
  加入精华,怕误导别人!

 jazy 回复于:2003-03-07 03:00:50
问题已经暂时解决,但却走的是不同的路@

关闭本页
 
首页 | 投资与合作 | 服务条款 | 隐私政策 | 收藏本站 | 设为首页 | 新用户注册 | 免责声明 | 使用帮助
Copyright ©2005-2008 chinaitpower.com All rights reserved. www.chinaitpower.com 版权所有