| 一无所有 回复于: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
|
问题已经暂时解决,但却走的是不同的路@
|