楼主: lfree

[原创] XXXX的LIS系统的性能问题

[复制链接]
论坛徽章:
33
ITPUB元老
日期:2005-09-16 10:42:482012新春纪念徽章
日期:2012-02-13 15:13:202012新春纪念徽章
日期:2012-02-13 15:13:202012新春纪念徽章
日期:2012-02-13 15:13:202012新春纪念徽章
日期:2012-02-13 15:13:202012新春纪念徽章
日期:2012-02-13 15:13:20版主3段
日期:2012-05-15 15:24:11马上有车
日期:2014-02-19 11:55:14马上有房
日期:2014-02-19 11:55:14马上有钱
日期:2014-02-19 11:55:14
31#
发表于 2008-4-4 18:00 | 只看该作者
如果厂商不愿意改,有几种可能,一个是实施人员本身不愿意把客户的修改意愿提交到公司去,嫌麻烦,另一个可能就是公司客户化资源不足,改起来周期很长,甚至他们认为这种小问题,排不到修改的重要项去.

客户化一直是医卫行业实施的一个大问题,也是成本最高的地方.在总体价格较低的情况下,多半的厂商不愿意做太多的客户化.

使用道具 举报

回复
论坛徽章:
1
ITPUB9周年纪念徽章
日期:2010-10-08 09:31:22
32#
发表于 2008-7-28 10:48 | 只看该作者
lfree 楼主能留下联系方式,有事想请教哈.....谢谢!!!!

使用道具 举报

回复
论坛徽章:
194
红宝石
日期:2014-05-09 08:24:37萤石
日期:2014-01-03 10:25:39奥运会纪念徽章:羽毛球
日期:2008-07-01 10:46:06奥运会纪念徽章:马术
日期:2008-07-07 17:43:24奥运会纪念徽章:射箭
日期:2008-07-25 18:07:39奥运会纪念徽章:皮划艇激流回旋
日期:2008-07-30 10:02:57奥运会纪念徽章:花样游泳
日期:2008-09-26 13:02:43奥运会纪念徽章:排球
日期:2008-12-03 11:23:272010新春纪念徽章
日期:2010-01-04 08:33:082010年世界杯参赛球队:澳大利亚
日期:2010-02-26 11:08:44
33#
 楼主| 发表于 2008-7-28 12:09 | 只看该作者
你是谁?
联系方式已经发到消息板.

使用道具 举报

回复
论坛徽章:
6
行业板块每日发贴之星
日期:2008-01-01 01:07:11行业板块每日发贴之星
日期:2008-01-06 01:06:18行业板块每日发贴之星
日期:2008-01-07 01:07:032008新春纪念徽章
日期:2008-02-13 12:43:03祖国60周年纪念徽章
日期:2009-10-09 08:28:00行业板块每日发贴之星
日期:2009-10-13 01:01:01
34#
发表于 2008-8-2 16:07 | 只看该作者
版主很受欢迎哦

使用道具 举报

回复
论坛徽章:
194
红宝石
日期:2014-05-09 08:24:37萤石
日期:2014-01-03 10:25:39奥运会纪念徽章:羽毛球
日期:2008-07-01 10:46:06奥运会纪念徽章:马术
日期:2008-07-07 17:43:24奥运会纪念徽章:射箭
日期:2008-07-25 18:07:39奥运会纪念徽章:皮划艇激流回旋
日期:2008-07-30 10:02:57奥运会纪念徽章:花样游泳
日期:2008-09-26 13:02:43奥运会纪念徽章:排球
日期:2008-12-03 11:23:272010新春纪念徽章
日期:2010-01-04 08:33:082010年世界杯参赛球队:澳大利亚
日期:2010-02-26 11:08:44
35#
 楼主| 发表于 2008-8-3 09:59 | 只看该作者
他问的是ms sql的东西,我自己也很少使用。

使用道具 举报

回复
论坛徽章:
0
36#
发表于 2008-11-24 23:02 | 只看该作者
主要是杏和开发人员不行,,,华西锁表是常有的事,,哈哈!

使用道具 举报

回复
论坛徽章:
0
37#
发表于 2008-11-24 23:21 | 只看该作者
如果我是张**就回把版主请出来好好搞搞,,,不过徐**估计又要拍桌子了哦,,

使用道具 举报

回复
论坛徽章:
194
红宝石
日期:2014-05-09 08:24:37萤石
日期:2014-01-03 10:25:39奥运会纪念徽章:羽毛球
日期:2008-07-01 10:46:06奥运会纪念徽章:马术
日期:2008-07-07 17:43:24奥运会纪念徽章:射箭
日期:2008-07-25 18:07:39奥运会纪念徽章:皮划艇激流回旋
日期:2008-07-30 10:02:57奥运会纪念徽章:花样游泳
日期:2008-09-26 13:02:43奥运会纪念徽章:排球
日期:2008-12-03 11:23:272010新春纪念徽章
日期:2010-01-04 08:33:082010年世界杯参赛球队:澳大利亚
日期:2010-02-26 11:08:44
38#
 楼主| 发表于 2008-11-25 08:21 | 只看该作者
原帖由 findecho 于 2008-11-24 23:21 发表
如果我是张**就回把版主请出来好好搞搞,,,不过徐**估计又要拍桌子了哦,,


不知道你是谁?实际上我比较注重优化,而没有考虑业务的流程。

顺便更正一下,我以前写的一些错误,在补充一些内容:

1.
滥用临时表,XXXX系统在存贮过程为了生成中间的结果,大量的使用临时表,而且程序中
大量的执行delete这些临时表的语句,导致产生了大量的垃圾日志。程序已经写成这样,目前
的改进仅仅是将delete换成truncate。我们使用redo文件每个100M,而每天基本最少产生是300M的
日志。而表空间的增长每天不过20M。

这个我的分析有错,实际上关于临时表的日志并不是太大,我保守估计大约在80-100M之间。也许日志大主要可能集中在表结构数据冗余以及update语句很多,
因为LIS_INSPECTION_RESULT的操作主要是先insert,再update,也是出现大量行迁移的表。

2.
另外我发现一个问题就是odbc的驱动问题,这个可能是逻辑读很高的原因,就是后台写的一些服务,使用ms odbc驱动,写的程序在调用存储过程的时候会执行一个检测参数的sql语句
这个语句很长,我贴出来:

SELECT   procedure_catalog, procedure_schema, procedure_name, parameter_name,
         ordinal_position, parameter_type, parameter_hasdefault,
         parameter_default, is_nullable, data_type, character_maximum_length,
         character_maximum_length character_octet_length, numeric_precision,
         numeric_scale, description, type_name, type_name, overload
    FROM (SELECT NULL procedure_catalog, owner procedure_schema,
                 DECODE (package_name,
                         NULL, object_name,
                         package_name || '.' || object_name
                        ) procedure_name,
                 DECODE (POSITION,
                         0, 'RETURN_VALUE',
                         NVL (argument_name, CHR (0))
                        ) parameter_name,
                 POSITION ordinal_position,
                 DECODE (in_out,
                         'IN', 1,
                         'IN/OUT', 2,
                         'OUT', DECODE (argument_name, NULL, 4, 3),
                         NULL
                        ) parameter_type,
                 NULL parameter_hasdefault, NULL parameter_default,
                 65535 is_nullable,
                 DECODE (data_type,
                         'CHAR', 129,
                         'NCHAR', 129,
                         'DATE', 135,
                         'FLOAT', 139,
                         'LONG', 129,
                         'LONG RAW', 128,
                         'NUMBER', 139,
                         'RAW', 128,
                         'ROWID', 129,
                         'VARCHAR2', 129,
                         'NVARCHAR2', 129,
                         13
                        ) data_type,
                 DECODE (data_type,
                         'CHAR', DECODE (data_length,
                                         NULL, 2000,
                                         data_length
                                        ),
                         'LONG', 2147483647,
                         'LONG RAW', 2147483647,
                         'ROWID', 18,
                         'RAW', DECODE (data_length, NULL, 2000, data_length),
                         'VARCHAR2', DECODE (data_length,
                                             NULL, 4000,
                                             data_length
                                            ),
                         'DATE', NULL,
                         'FLOAT', NULL,
                         'NUMBER', NULL,
                         NULL
                        ) character_maximum_length,
                 DECODE (data_type,
                         'DATE', 19,
                         'FLOAT', 15,
                         'NUMBER', DECODE (data_precision,
                                           NULL, 0,
                                           data_precision
                                          ),
                         'CHAR', NULL,
                         'NCHAR', NULL,
                         'LONG', NULL,
                         'LONG RAW', NULL,
                         'RAW', NULL,
                         'VARCHAR2', NULL,
                         'NVARCHAR2', NULL,
                         NULL
                        ) numeric_precision,
                 DECODE (data_type,
                         'DATE', 0,
                         'NUMBER', DECODE (data_scale, NULL, 0, data_scale),
                         'CHAR', NULL,
                         'NCHAR', NULL,
                         'FLOAT', NULL,
                         'LONG', NULL,
                         'LONG RAW', NULL,
                         'RAW', NULL,
                         'VARCHAR2', NULL,
                         'NVARCHAR2', NULL,
                         NULL
                        ) numeric_scale,
                 NULL description, data_type type_name, overload
            FROM all_arguments
           WHERE data_level = 0 AND data_type IS NOT NULL) procedure_parameters
   WHERE procedure_name = 'XXXX'
ORDER BY 1, 2, 3, 5

这个在9i下产生大量的逻辑读,每次大约58XXX,如果分析里面的系统表sys.user$,可以使执行计划走cbo,虽然oracle不主张分析系统表,我觉得应该问题不大。
这样逻辑减少到9XX。

3.还有其它,等一会在写,另外我们最近升级到10g,我还在检测,看看还有那些可以优化的地方。

使用道具 举报

回复
论坛徽章:
194
红宝石
日期:2014-05-09 08:24:37萤石
日期:2014-01-03 10:25:39奥运会纪念徽章:羽毛球
日期:2008-07-01 10:46:06奥运会纪念徽章:马术
日期:2008-07-07 17:43:24奥运会纪念徽章:射箭
日期:2008-07-25 18:07:39奥运会纪念徽章:皮划艇激流回旋
日期:2008-07-30 10:02:57奥运会纪念徽章:花样游泳
日期:2008-09-26 13:02:43奥运会纪念徽章:排球
日期:2008-12-03 11:23:272010新春纪念徽章
日期:2010-01-04 08:33:082010年世界杯参赛球队:澳大利亚
日期:2010-02-26 11:08:44
39#
 楼主| 发表于 2008-11-25 09:26 | 只看该作者
另外我可能一些索引乱建,导致日志偏高,不过我删除了许多好像改善并不是很大。
在历史模式下还有许多表上建立了许多无用的索引。

如图:

snap.jpg (35.58 KB, 下载次数: 57)

snap.jpg

使用道具 举报

回复
论坛徽章:
194
红宝石
日期:2014-05-09 08:24:37萤石
日期:2014-01-03 10:25:39奥运会纪念徽章:羽毛球
日期:2008-07-01 10:46:06奥运会纪念徽章:马术
日期:2008-07-07 17:43:24奥运会纪念徽章:射箭
日期:2008-07-25 18:07:39奥运会纪念徽章:皮划艇激流回旋
日期:2008-07-30 10:02:57奥运会纪念徽章:花样游泳
日期:2008-09-26 13:02:43奥运会纪念徽章:排球
日期:2008-12-03 11:23:272010新春纪念徽章
日期:2010-01-04 08:33:082010年世界杯参赛球队:澳大利亚
日期:2010-02-26 11:08:44
40#
 楼主| 发表于 2008-11-25 09:31 | 只看该作者
而且可以发现,大量的是单键索引。

出现这个问题我猜测原来在ms sql下出现大量的死锁,开发人员认为这些能够加快sql的执行,建立了许多无用的索引。

不如group_id 的索引,check_person等索引,仔细看这个表
PATIENT_BED
PATIENT_DEPT
PATIENT_TYPE
SAMPLE_NUMBER
CHECK_PERSON
SAMPLE_CLASS
GROUP_ID
还有
CLINICAL_DIAGNOSES
都是无用的索引。

使用道具 举报

回复

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

本版积分规则 发表回复

TOP技术积分榜 社区积分榜 徽章 团队 统计 知识索引树 积分竞拍 文本模式 帮助
  ITPUB首页 | ITPUB论坛 | 数据库技术 | 企业信息化 | 开发技术 | 微软技术 | 软件工程与项目管理 | IBM技术园地 | 行业纵向讨论 | IT招聘 | IT文档
  ChinaUnix | ChinaUnix博客 | ChinaUnix论坛
CopyRight 1999-2011 itpub.net All Right Reserved. 北京盛拓优讯信息技术有限公司版权所有 联系我们 未成年人举报专区 
京ICP备16024965号-8  北京市公安局海淀分局网监中心备案编号:11010802021510 广播电视节目制作经营许可证:编号(京)字第1149号
  
快速回复 返回顶部 返回列表