起步软件技术论坛-X3

 找回密码
 立即注册
搜索
查看: 900|回复: 11

请教流转速度奇慢无比,原来还可以忍受,现在基本无法忍受了。

[复制链接]
发表于 2011-8-19 08:42:46 | 显示全部楼层 |阅读模式
流转一个需要40S
太慢了,那位大师给看看?我需要做什么?
流转时,cpu占用率1%,网络几乎没有占用,内存也足够大,计算机配置很好
这是为什么?
回复

使用道具 举报

 楼主| 发表于 2011-8-19 09:02:55 | 显示全部楼层
这是 我 通过监控得到的,主要是 sql语句太慢了,我通过pl/sql工具查询1000条数据都要 40秒钟,不慢才怪,看看 能否优化??还请起步公司一定要帮忙优化一下

以下应该是 三个地方生成的sql语句。
发文 流转时,只有一个地方慢,是下面语句,查询40秒
select FGUID from TORGSYSTEM where
FGUID IN (
SELECT b.FGUID FROM TORGSYSTEM b, TORGSYSTEM a where a.FGUID IN (SELECT FGUID FROM TORGSYSTEM WHERE (FGUID in (select FGUID from TORGINDEX where UPPER(FID) = 'ORGUNIT.FUNCREF' and UPPER(FVALUE) = '\OPERATION\CR15OA\CR15OA_SENDDOC_DWHG.FUNC')))  AND b.FGUID IN (SELECT FGUID FROM TORGSYSTEM WHERE ( (UPPER(FFILENAME) LIKE '%.PSM') ))  AND ((( (b.FPATH LIKE a.FPATH || a.FID || a.FKIND || '\%') OR ((a.FKIND = '.PTN') AND ((b.FID = a.FID AND b.FKIND = '.PTM') OR (b.FPATH || b.FID || b.FKIND LIKE '%\' || a.FID || '.PTM' || '\%'))) ) OR ( a.FPATH || a.FID || a.FKIND = b.FPATH || b.FID || b.FKIND )))) and FDELETELEVEL = 0

monitorlog.rar

79.43 KB, 下载次数: 52

回复 支持 反对

使用道具 举报

 楼主| 发表于 2011-8-19 09:04:24 | 显示全部楼层
收文登记慢,分了两个。
1、点击流转慢,大约11秒,3条记录
select FGUID from TORGSYSTEM where FGUID IN (SELECT b.FGUID FROM TORGSYSTEM b, TORGSYSTEM a where a.FGUID IN (SELECT FGUID FROM TORGSYSTEM WHERE FGUID IN (SELECT FGUID FROM TORGSYSTEM WHERE (FDEPT = 'O100O001') and (FPOSITION = '' or FPOSITION is null) and (FPERSON = '' or FPERSON is null)))  AND ((( (b.FPATH LIKE a.FPATH || a.FID || a.FKIND || '\%') OR ((a.FKIND = '.PTN') AND ((b.FID = a.FID AND b.FKIND = '.PTM') OR (b.FPATH || b.FID || b.FKIND LIKE '%\' || a.FID || '.PTM' || '\%'))) ) OR ( a.FPATH || a.FID || a.FKIND = b.FPATH || b.FID || b.FKIND )))) AND FGUID IN (SELECT b.FGUID FROM TORGSYSTEM b, TORGSYSTEM a where a.FGUID IN (SELECT FGUID FROM TORGSYSTEM WHERE (FGUID in (select FGUID from TORGINDEX where UPPER(FID) = 'ORGUNIT.FUNCREF' and UPPER(FVALUE) = '\OPERATION\CR15OA\CR15OA_RECEIVEDOC_NB.FUNC')))  AND b.FGUID IN (SELECT FGUID FROM TORGSYSTEM WHERE ( (UPPER(FFILENAME) LIKE '%.PSM') ))  AND ((( (b.FPATH LIKE a.FPATH || a.FID || a.FKIND || '\%') OR ((a.FKIND = '.PTN') AND ((b.FID = a.FID AND b.FKIND = '.PTM') OR (b.FPATH || b.FID || b.FKIND LIKE '%\' || a.FID || '.PTM' || '\%'))) ) OR ( a.FPATH || a.FID || a.FKIND = b.FPATH || b.FID || b.FKIND )))) and FDELETELEVEL = 0

2、在流转框里点添加执行人 按钮,这个更离谱61秒,5条记录
select FGUID from TORGSYSTEM where FGUID IN (SELECT b.FGUID FROM TORGSYSTEM b, TORGSYSTEM a where a.FGUID IN (SELECT FGUID FROM TORGSYSTEM WHERE FGUID IN (SELECT FGUID FROM TORGSYSTEM WHERE (FDEPT = 'O100O001') and (FPOSITION = '' or FPOSITION is null) and (FPERSON = '' or FPERSON is null)))  AND ((( (b.FPATH LIKE a.FPATH || a.FID || a.FKIND || '\%') OR ((a.FKIND = '.PTN') AND ((b.FID = a.FID AND b.FKIND = '.PTM') OR (b.FPATH || b.FID || b.FKIND LIKE '%\' || a.FID || '.PTM' || '\%'))) ) OR ( a.FPATH || a.FID || a.FKIND = b.FPATH || b.FID || b.FKIND )))) AND FGUID IN (SELECT b.FGUID FROM TORGSYSTEM b, TORGSYSTEM a where a.FGUID IN (SELECT FGUID FROM TORGSYSTEM WHERE (FGUID in (select FGUID from TORGINDEX where UPPER(FID) = 'ORGUNIT.FUNCREF' and UPPER(FVALUE) = '\OPERATION\CR15OA\CR15OA_RECEIVEDOC_BMCB.FUNC')))  AND b.FGUID IN (SELECT FGUID FROM TORGSYSTEM WHERE ( (UPPER(FFILENAME) LIKE '%.PSM') ))  AND ((( (b.FPATH LIKE a.FPATH || a.FID || a.FKIND || '\%') OR ((a.FKIND = '.PTN') AND ((b.FID = a.FID AND b.FKIND = '.PTM') OR (b.FPATH || b.FID || b.FKIND LIKE '%\' || a.FID || '.PTM' || '\%'))) ) OR ( a.FPATH || a.FID || a.FKIND = b.FPATH || b.FID || b.FKIND )))) and FDELETELEVEL = 0
回复 支持 反对

使用道具 举报

 楼主| 发表于 2011-8-19 13:17:31 | 显示全部楼层
性能测试:

select FGUID from TORGSYSTEM where
FGUID IN (
      SELECT b.FGUID FROM TORGSYSTEM b, TORGSYSTEM a where
      a.FGUID IN (
              SELECT FGUID FROM TORGSYSTEM WHERE (FGUID in (select FGUID from TORGINDEX where UPPER(FID) = 'ORGUNIT.FUNCREF' and UPPER(FVALUE) = '\OPERATION\CR15OA\CR15OA_SENDDOC_DWHG.FUNC'))
              )
                AND b.FGUID IN (
                     SELECT FGUID FROM TORGSYSTEM WHERE ( (UPPER(FFILENAME) LIKE '%.PSM') )
                )  AND (((
                (b.FPATH LIKE a.FPATH || a.FID || a.FKIND || '\%') OR
                ((a.FKIND = '.PTN') AND ((b.FID = a.FID AND b.FKIND = '.PTM') OR (b.FPATH || b.FID || b.FKIND LIKE '%\' || a.FID || '.PTM' || '\%'))) ) OR ( a.FPATH || a.FID || a.FKIND = b.FPATH || b.FID || b.FKIND )))
) and
FDELETELEVEL = 0



经测试第 12行 是影响性能的关键行,
                (b.FPATH LIKE a.FPATH || a.FID || a.FKIND || '\%') OR
如果加上这一行,查询需要40秒,如果去掉这一行,则 很快,只有0.5秒


需要怎么优化?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2011-8-19 13:45:49 | 显示全部楼层
经测试,如果把流程图的 执行者范围 里的 执行者必须是功能的拥有者 打上勾,就奇慢无比,如果去掉 速度 就可以了。但是 这样带来的问题是 流转时 所有人 都能选了
回复 支持 反对

使用道具 举报

 楼主| 发表于 2011-8-24 21:11:51 | 显示全部楼层
哎,起步不管我们了。。。
回复 支持 反对

使用道具 举报

发表于 2011-8-25 17:59:13 | 显示全部楼层
哈哈,现在有事自己扛,我都很少来了
回复 支持 反对

使用道具 举报

 楼主| 发表于 2011-8-26 08:01:48 | 显示全部楼层
关键 这个扛不住啊
回复 支持 反对

使用道具 举报

发表于 2011-8-26 11:07:27 | 显示全部楼层

检查一下你的组织机构!

可以看下你的组织机构是不是很臃肿了,建议你从这方面优化下。

顺便说句,思维加速现在的客服真不如从前了
回复 支持 反对

使用道具 举报

 楼主| 发表于 2011-8-29 07:45:00 | 显示全部楼层
组织机构如何优化?该删除的删除?
回复 支持 反对

使用道具 举报

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

本版积分规则

小黑屋|手机版|Justep Inc.

GMT+8, 2024-4-30 10:21 , Processed in 0.051797 second(s), 18 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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