刚开始指系统初始使用
表结构及索引如下:
create table TB_COST
(
ORGCODE VARCHAR2(8) not null,
ORGNAME VARCHAR2(50) not null,
INSURECODE VARCHAR2(20) not null,
ICCODE VARCHAR2(12) not null,
PRESCRIPTIONCODE VARCHAR2(20) not null,
INVOICECODE VARCHAR2(30) not null,
PNAME VARCHAR2(16) not null,
COST NUMBER(18,4) default 0 not null,
LASTDATE DATE not null,
OPRCODE VARCHAR2(16) not null,
TFID VARCHAR2(8),
TRANSFLAG VARCHAR2(1) default 0 not null,
ID VARCHAR2(8))tablespace user1
pctfree 10
pctused 40
initrans 1
maxtrans 255
storage
(
initial 64K
minextents 1
maxextents unlimited
);create index SHOP1 on TB_COST(PRESCRIPTIONCODE, LASTDATE)
tablespace user1
pctfree 10
initrans 2
maxtrans 255
storage
(
initial 64K
minextents 1
maxextents unlimited
);
操作是:简单的插入数据和查询数据,现在的状况是,每个月汇总时,统计很慢,2万条记录大概要十几分钟
请大侠指点
这样速度就比较快了
2、Table 的 Init / Next 空间要建足够大,这样 Table 的 Segment 不会多,也可提高速度
不知道楼主是怎样实现的,但是delete之后再insert,
对全表扫描的效率没有任何作用,因为表的高水位标志并不会降低存在两种可能性:
1。需要使用索引,但是进行了全表扫描,需要analyze表
2。需要全表扫描,但是表有严重碎片问题,需要move表
建议楼主观察执行计划,然后analyze表,看执行计划是否会发生变化,可以考虑调整程序设计Table 的 Init / Next 参数是extent尺寸,建大一些可以避免大量insert时的频繁空间分配,
对提高查询效率没有作用