起步软件技术论坛-X3

 找回密码
 立即注册
搜索
查看: 863|回复: 33

主从数据集打开的问题**

[复制链接]
发表于 2008-12-11 16:11:35 | 显示全部楼层 |阅读模式
表TFLOWID的数据量为:328191
表TFLOW的数据量为:328274
表TTASK的数据量为:1178524
表TTASKMESSAGE的数据量为:2808647

主表的SQL为:

SELECT DISTINCT TFLOWID.FFLOWGUID,
                TFLOW.FSUBJECT,
                TFLOW.FCREATETIME,
                TFLOW.FSTATE,
                TFLOWID.FID,
                TFLOW.FPROCURL,
                TFLOW.FFLOWFIELDURL,
                TFLOW.FGUID,
                TTASK.FSPERSON
  FROM TFLOWID, TFLOW, TTASK
WHERE TFLOWID.FFLOWGUID = TFLOW.FGUID
   AND TFLOW.FGUID = TTASK.FFLOWGUID
   AND TTASK.FSPERSON = '410197'
   AND TTASK.FSPERSONNAME <> TTASK.FRPERSONNAMES
   AND TFLOW.FCREATETIME >=
       TO_DATE('2008-12-01 00:00:00', 'YYYY-MM-DD HH24:MI:SS')
   AND TFLOW.FCREATETIME <=
       TO_DATE('2008-12-11 23:59:59', 'YYYY-MM-DD HH24:MI:SS')
ORDER BY TFLOW.FCREATETIME DESC

从表的SQL为:

SELECT TTASK.FGUID,
       TTASK.FGUID AS FTASKGUID,
       TTASK.FFLOWGUID,
       TTASK.FPROCURL,
       TTASK.FPROCUNITID,
       TTASK.FSUBJECT,
       TTASK.FKIND,
       TTASK.FSOGN,
       TTASK.FSOGNNAME,
       TTASK.FSDEPT,
       TTASK.FSDEPTNAME,
       TTASK.FSPOSITION,
       TTASK.FSPOSITIONNAME,
       TTASK.FSPERSON,
       TTASK.FSPERSONNAME,
       TTASK.FSORGURL,
       TTASK.FPRIORITY,
       TTASK.FCREATETIME,
       TTASK.FDESCRIPTION,
       TTASK.FSTATE,
       TTASK.FBIZKIND,
       TTASK.FFUNCURL,
       TTASK.FTYPENAME,
       TTASK.FRPERSONNAMES,
       TTASKMESSAGE.FGUID AS FTASKMESSAGEGUID
  FROM TTASK, TTASKMESSAGE
WHERE TTASK.FGUID = TTASKMESSAGE.FTASKGUID
   AND TTASK.FSPERSONNAME <> TTASK.FRPERSONNAMES


主从关系是通过TFLOWID.FFLOWGUID = TTASK.FFLOWGUID来关联,然后从表的取数规则为需要时取,但是当主表打开后,从表打开要十来分钟,不知道你们的需要时取是什么个概念?

我改成不用主从关系,改成在主表的AfterScroll时,每次都通过TFLOWID.FFLOWGUID的值重新打开从表的数据,速度只要零点几秒?


真搞不懂哟!你们的从表打开是不是一次性全部打开然后放在本地缓存?
回复

使用道具 举报

发表于 2008-12-11 17:02:39 | 显示全部楼层
楼主,用的是哪个版本?原先的版本主从是有些问题,主要是取表结构没有带条件

从表需要时取,就是分布取,当主记录停在哪条,从记录就取对应的数据
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-12-11 17:05:12 | 显示全部楼层
我用的版本是2936的,
不知道这个版本是否也存在这个缺陷呢?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-12-11 17:06:21 | 显示全部楼层
如果有的话,我们要考虑再升级程序了!
回复 支持 反对

使用道具 举报

发表于 2008-12-11 17:51:49 | 显示全部楼层
楼主能给我们抓一个日志么?
当打开主表的时候把取数据的sql的日志给我们发一下,可以使用sqlserver的跟踪或者平台的客户端优化工具。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-12-12 14:19:13 | 显示全部楼层
今天在测试的时候,2936的平台,如果主数据集没有数据时,那么从数据集打开的时候
平台会自动生成一个SQL
select * from (select * from tablename) where keyid is null
不知道为什么你们要用用is null这样子处理,
这样子非常的影响效率!!!!!!!

不知道2936的平台,主从表打开是否有缺陷????请回答,谢谢!!!!
回复 支持 反对

使用道具 举报

发表于 2008-12-12 14:27:36 | 显示全部楼层
您先传下5楼提到的日志。我们看下。
回复 支持 反对

使用道具 举报

发表于 2008-12-12 15:16:49 | 显示全部楼层
SELECT * FROM (select * from CBLZ) A76545165727349F6998BFDD54CFC8 WHERE PID = ?
因为平台执行是用参数的方式去执行sql。最后一个参数楼主没有给值,就成了了is null。
您传下日志,我们看下您那里是什么情况的。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-12-12 15:18:00 | 显示全部楼层
MonitorLog日志如下!!
回复 支持 反对

使用道具 举报

发表于 2008-12-12 15:19:39 | 显示全部楼层
如果太大,分下包。论坛2m以下附件的可以上传。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Justep Inc.

GMT+8, 2025-7-28 05:37 , Processed in 0.041832 second(s), 16 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表