楼主: cana

东软医保动态库全表扫描问题请教!

[复制链接]
论坛徽章:
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
11#
发表于 2006-9-13 09:28 | 只看该作者
这样就很奇怪了,
我现在还需要表结构
desc kc22

使用道具 举报

回复
论坛徽章:
0
12#
 楼主| 发表于 2006-9-13 19:44 | 只看该作者
好的,等我回头传上来,不过我试了,在门诊收费录入生化全项26项时,如果用first_row大约需半分钟时间,用all_row大约需1分钟时间,另外我从后台找了几个与kc22有关的语句发上来看看,怎么样建索引才能提高运行速度?因为东软的语句加密了,无法修改,只能通过系统优化来提高速度!
SELECT  *
           FROM kc22
          WHERE akb020 = '100004'
            AND AKC190 = '30048174120060825'     
            AND aae072 = 'AAAA'      
            AND akb020 = '100004'      
            AND ( ckc126 = 1 )  
            AND ( ckc125 = 1
                  OR  ckc125 IS NULL )  
       ORDER BY aka063 ASC;

SELECT /*
           FROM kc22
          WHERE AKC190 = '30048174120060825'     
            AND aae072 = 'AAAA'
            AND ( ckc126 = 0
                        OR  ckc126 IS NULL )
            AND ( ckc125 = 1
                  OR  ckc125 IS NULL )  
       ORDER BY aka063 ;

SELECT SUM(Nvl(akc227,0)),SUM(Nvl(akc228,0)),SUM(Nvl(akc253,0)),SUM(Nvl(ckc335,0))
               FROM kc22
              WHERE akb020 = '100004'
                AND akc190 = '30048174120060825'
                AND aae072 = 'AAAA'
                AND Nvl(bkc003,'0') = '1'
                AND ckc125 = 1;

SELECT       AKB020,AKC190,AKC220,AKC515,-1,    CKC131,AAE073,AKC221,AKA063,AKC222,AKC223,AKC224,AKA065,AKC225,-AKC226,-AKC227,-AKC228,-AKC253,AKA070,AKA071,AKA072,AKA073,CKC111,AKC229,CKC048,akc265,ZKA020,CKC126,CDC100,NULL,CKC132,aae072,-1,-CKC335,AAE014,CKC133,-aka068,AKC516,aac001,bkc003,bkc220
             FROM KC22
            WHERE AKB020 = '100004'
              AND AAE072 = 'AAAA'
              AND ckc125 = 1;

SELECT       AKB020,AKC190,AKC220,AKC515,CKC130,CKC131,AAE073,AKC221,AKA063,AKC222,
AKC223,AKC224,AKA065,AKC225,AKC226,AKC227,AKC228,AKC253,AKA070,AKA071,
AKA072,AKA073,CKC111,AKC229,CKC048,akc265,ZKA020,CKC126,CDC100,NULL,
CKC132,ckc125,CKC335,AAE014,CKC133,aka068,AKC516,
aac001,bkc003,bkc220
FROM  KC22
            WHERE  AKB020 = '100004'
              AND  AAE072 = 'AAAA'
              AND  ckc125 = 1;

前两天估计是要用游标,后面的我直接运行全部作全表扫描!

使用道具 举报

回复
论坛徽章:
0
13#
发表于 2006-9-13 20:51 | 只看该作者
最初由 cana 发布
[B]好的,等我回头传上来,不过我试了,在门诊收费录入生化全项26项时,如果用first_row大约需半分钟时间,用all_row大约需1分钟时间,另外我从后台找了几个与kc22有关的语句发上来看看,怎么样建索引才能提高运行速度?因为东软的语句加密了,无法修改,只能通过系统优化来提高速度!
SELECT  *
           FROM kc22
          WHERE akb020 = '100004'
            AND AKC190 = '30048174120060825'     
            AND aae072 = 'AAAA'      
            AND akb020 = '100004'      
            AND ( ckc126 = 1 )  
            AND ( ckc125 = 1
                  OR  ckc125 IS NULL )  
       ORDER BY aka063 ASC;

SELECT /*
           FROM kc22
          WHERE AKC190 = '30048174120060825'     
            AND aae072 = 'AAAA'
            AND ( ckc126 = 0
                        OR  ckc126 IS NULL )
            AND ( ckc125 = 1
                  OR  ckc125 IS NULL )  
       ORDER BY aka063 ;

SELECT SUM(Nvl(akc227,0)),SUM(Nvl(akc228,0)),SUM(Nvl(akc253,0)),SUM(Nvl(ckc335,0))
               FROM kc22
              WHERE akb020 = '100004'
                AND akc190 = '30048174120060825'
                AND aae072 = 'AAAA'
                AND Nvl(bkc003,'0') = '1'
                AND ckc125 = 1;

SELECT       AKB020,AKC190,AKC220,AKC515,-1,    CKC131,AAE073,AKC221,AKA063,AKC222,AKC223,AKC224,AKA065,AKC225,-AKC226,-AKC227,-AKC228,-AKC253,AKA070,AKA071,AKA072,AKA073,CKC111,AKC229,CKC048,akc265,ZKA020,CKC126,CDC100,NULL,CKC132,aae072,-1,-CKC335,AAE014,CKC133,-aka068,AKC516,aac001,bkc003,bkc220
             FROM KC22
            WHERE AKB020 = '100004'
              AND AAE072 = 'AAAA'
              AND ckc125 = 1;

SELECT       AKB020,AKC190,AKC220,AKC515,CKC130,CKC131,AAE073,AKC221,AKA063,AKC222,
AKC223,AKC224,AKA065,AKC225,AKC226,AKC227,AKC228,AKC253,AKA070,AKA071,
AKA072,AKA073,CKC111,AKC229,CKC048,akc265,ZKA020,CKC126,CDC100,NULL,
CKC132,ckc125,CKC335,AAE014,CKC133,aka068,AKC516,
aac001,bkc003,bkc220
FROM  KC22
            WHERE  AKB020 = '100004'
              AND  AAE072 = 'AAAA'
              AND  ckc125 = 1;

前两天估计是要用游标,后面的我直接运行全部作全表扫描! [/B]

上面的这几个语句都需要优化。

使用道具 举报

回复
论坛徽章:
5
授权会员
日期:2005-10-30 17:05:33会员2006贡献徽章
日期:2006-04-17 13:46:34会员2007贡献徽章
日期:2007-09-26 18:42:10ITPUB新首页上线纪念徽章
日期:2007-10-20 08:38:44行业板块每日发贴之星
日期:2008-07-01 01:02:17
14#
发表于 2006-9-14 07:38 | 只看该作者
如果确认了需要优化,可以考虑使用outline改变执行计划

使用道具 举报

回复
论坛徽章:
0
15#
 楼主| 发表于 2006-9-14 13:56 | 只看该作者
如何优化呢?
SQL> desc kc22;
Name                                      Null?    Type
----------------------------------------- -------- ----------------------------
AKB020                                    NOT NULL VARCHAR2(8)
AAC001                                    NOT NULL VARCHAR2(20)
AKC190                                    NOT NULL VARCHAR2(18)
CKC131                                             VARCHAR2(30)
CKC133                                    NOT NULL NUMBER(20)
AKC220                                    NOT NULL VARCHAR2(20)
BKC220                                             VARCHAR2(20)
AKC515                                    NOT NULL VARCHAR2(20)
AKC516                                             VARCHAR2(50)
CKC130                                    NOT NULL VARCHAR2(3)
AAE072                                    NOT NULL VARCHAR2(18)
AKC221                                             DATE
AKA063                                             VARCHAR2(3)
AKC222                                             VARCHAR2(18)
AKC223                                             VARCHAR2(100)
AKC224                                             VARCHAR2(3)
AKA065                                             VARCHAR2(3)
AKC225                                             NUMBER(9,3)
AKC226                                             NUMBER(8,2)
AKC227                                             NUMBER(8,2)
AKC228                                             NUMBER(8,2)
AKC253                                             NUMBER(8,2)
AAE073                                             NUMBER(15)
CKA002                                             VARCHAR2(3)
AKA070                                             VARCHAR2(3)
AKA071                                             NUMBER(5,2)
AKA072                                             VARCHAR2(20)
AKA073                                             VARCHAR2(50)
CKC111                                             VARCHAR2(50)
AKC229                                             NUMBER(4,1)
CKC048                                             VARCHAR2(3)
ZKA020                                             NUMBER(8,2)
CKC125                                             NUMBER(1)
CKC127                                             NUMBER(1)
CKC126                                             NUMBER(1)
CDC100                                             VARCHAR2(50)
BAE101                                             NUMBER(20)
AKC265                                             NUMBER(8,2)
ZKC040                                             VARCHAR2(3)
AAE040                                             NUMBER(8)
BAE030                                             DATE
BAE031                                             DATE
AAE011                                             VARCHAR2(20)
AAE036                                             DATE
CKC132                                             VARCHAR2(30)
BKC001                                             VARCHAR2(29)
BKC002                                             VARCHAR2(29)
CKC333                                             VARCHAR2(30)
CKC334                                             VARCHAR2(30)
BKC003                                             VARCHAR2(3)
BAE004                                             VARCHAR2(6)
AKA068                                             NUMBER(8,2)
AKA083                                             VARCHAR2(3)
AKC254                                             NUMBER(8,2)
CKC049                                             VARCHAR2(3)
AKC259                                             NUMBER(8,2)
AKC262                                             NUMBER(8,2)
CKC335                                             NUMBER(8,2)
AAE014                                             VARCHAR2(50)
CKC250                                             NUMBER(6)

使用道具 举报

回复
论坛徽章:
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
16#
发表于 2006-9-14 14:57 | 只看该作者
>如果确认了需要优化,可以考虑使用outline改变执行计划
应该可以使用索引的?你看它的返回结果仅仅一条,而指定索引却使用index full scan。

使用道具 举报

回复
论坛徽章:
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
17#
发表于 2006-9-14 15:02 | 只看该作者
你不会在不同的schema模式下有kc22表。

你分析的是his_trans模式下的,
执行
select * from his_trans.kc22 where akb020='100004' and akc190='30048174120060825' and akc220='265';

看看是否使用索引。

使用道具 举报

回复
论坛徽章:
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
18#
发表于 2006-9-14 15:08 | 只看该作者
你们的表结构很我们的还是有许多不同的。
实际上你们为什么不找东软?

使用道具 举报

回复
论坛徽章:
0
19#
 楼主| 发表于 2006-9-15 10:51 | 只看该作者
不会的,我查过了,只有一个KC22,而且由于使用了动态库,所以在后台全部使用的都是HIS_TRANS这个用户登陆的,找了东软了,由于东软在本市只放了一个人,所以支持跟不上!

使用道具 举报

回复
招聘 : Oracle 中级初级DBA
论坛徽章:
2
ITPUB新首页上线纪念徽章
日期:2007-10-20 08:38:44ITPUB社区OCM联盟徽章
日期:2013-03-21 15:35:43
20#
发表于 2006-9-15 11:34 | 只看该作者
很眼熟,想当年,我对KC20-KC24那几张表相当熟了,不管是哪个版本的,呵呵

使用道具 举报

回复

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

本版积分规则 发表回复

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