ORACLE db 在更新特定 table 时变得非常非常慢
ORACLE db become very very slow while updating the particular table
我们公司的数据库有一个名为 "TEMP_EMP_ATTENDANCE" 的 table。这次大约有600000多条记录,并且系统每天添加大约3500条记录用于员工考勤记录。因此,当我们进行出勤计算过程时,整个数据库和应用程序变得太慢,每个班次需要大约 2.5 到 3 小时。我们可以做些什么来加快处理速度?
TABLE 描述:
CREATE TABLE SYSTEM.TEMP_EMP_ATTENDANCE (
CM_CODE NUMBER(2, 0) NOT NULL,
EAE_MONTH NUMBER(2, 0) NOT NULL,
EAE_YEAR NUMBER(4, 0) NOT NULL,
EAE_EM_ID NUMBER(8, 0) NOT NULL,
EAE_EMP_ID VARCHAR2(50 BYTE),
EAE_REG_NO VARCHAR2(6 BYTE),
EM_NAME VARCHAR2(100 BYTE),
EAE_DATE TIMESTAMP(6) NOT NULL,
EM_TYPE_CODE NUMBER(4, 0),
EG_ID NUMBER(4, 0),
PH_CODE NUMBER(4, 0),
DEPT_CODE NUMBER(4, 0),
SUBDEPT_CODE NUMBER(4, 0),
SHIFT_ID NUMBER(4, 0),
SCH_INTIME TIMESTAMP(6),
SCH_OUTTIME TIMESTAMP(6),
IN_TIME TIMESTAMP(6),
OUT_TIME TIMESTAMP(6),
DAY NUMBER(5, 2),
LATE_TIME NUMBER(15, 2),
OVER_TIME NUMBER(15, 2),
EAE_EM_RESTDAY VARCHAR2(10 BYTE),
DAILY_STATUS VARCHAR2(30 BYTE),
LTM_CODE NUMBER(4, 0),
BMANUALUPDATEINOUTTIME NUMBER(1, 0),
TOTAL_PUNCH NUMBER(3, 0),
REMARK VARCHAR2(1000 BYTE),REMARK VARCHAR2(1000 BYTE),
WORK_HOURS NUMBER(4, 2),REMARK VARCHAR2(1000 BYTE),
WORK_HOURS NUMBER(4, 2),
ENT_DATE DATE,REMARK VARCHAR2(1000 BYTE),
WORK_HOURS NUMBER(4, 2),
ENT_DATE DATE,
USER_ID NUMBER(8, 0),REMARK VARCHAR2(1000 BYTE),
WORK_HOURS NUMBER(4, 2),
ENT_DATE DATE,
USER_ID NUMBER(8, 0),
DM_ID NUMBER(4, 0),REMARK VARCHAR2(1000 BYTE),
WORK_HOURS NUMBER(4, 2),
ENT_DATE DATE,
USER_ID NUMBER(8, 0),
DM_ID NUMBER(4, 0),
LATE_GOING NUMBER(15, 2),REMARK VARCHAR2(1000 BYTE),
WORK_HOURS NUMBER(4, 2),
ENT_DATE DATE,
USER_ID NUMBER(8, 0),
DM_ID NUMBER(4, 0),
LATE_GOING NUMBER(15, 2),
DAY_STATUS VARCHAR2(1 BYTE),REMARK VARCHAR2(1000 BYTE),
WORK_HOURS NUMBER(4, 2),
ENT_DATE DATE,
USER_ID NUMBER(8, 0),
DM_ID NUMBER(4, 0),
LATE_GOING NUMBER(15, 2),
DAY_STATUS VARCHAR2(1 BYTE),
CONSTRAINT TEMP_EMP_ATTENDANCE_O_PK PRIMARY KEY (CM_CODE, EAE_EM_ID, EAE_DATE, EAE_MONTH, EAE_YEAR) USING INDEX TABLESPACE SYSTEM STORAGE ( INITIAL 64K MAXEXTENTS UNLIMITED ))REMARK VARCHAR2(1000 BYTE),
WORK_HOURS NUMBER(4, 2),
ENT_DATE DATE,
USER_ID NUMBER(8, 0),
DM_ID NUMBER(4, 0),
LATE_GOING NUMBER(15, 2),
DAY_STATUS VARCHAR2(1 BYTE),
CONSTRAINT TEMP_EMP_ATTENDANCE_O_PK PRIMARY KEY (CM_CODE, EAE_EM_ID, EAE_DATE, EAE_MONTH, EAE_YEAR) USING INDEX TABLESPACE SYSTEM STORAGE ( INITIAL 64K MAXEXTENTS UNLIMITED ))
TABLESPACE SYSTEMREMARK VARCHAR2(1000 BYTE),
WORK_HOURS NUMBER(4, 2),
ENT_DATE DATE,
USER_ID NUMBER(8, 0),
DM_ID NUMBER(4, 0),
LATE_GOING NUMBER(15, 2),
DAY_STATUS VARCHAR2(1 BYTE),
CONSTRAINT TEMP_EMP_ATTENDANCE_O_PK PRIMARY KEY (CM_CODE, EAE_EM_ID, EAE_DATE, EAE_MONTH, EAE_YEAR) USING INDEX TABLESPACE SYSTEM STORAGE ( INITIAL 64K MAXEXTENTS UNLIMITED ))
TABLESPACE SYSTEM
STORAGE (REMARK VARCHAR2(1000 BYTE),
WORK_HOURS NUMBER(4, 2),
ENT_DATE DATE,
USER_ID NUMBER(8, 0),
DM_ID NUMBER(4, 0),
LATE_GOING NUMBER(15, 2),
DAY_STATUS VARCHAR2(1 BYTE),
CONSTRAINT TEMP_EMP_ATTENDANCE_O_PK PRIMARY KEY (CM_CODE, EAE_EM_ID, EAE_DATE, EAE_MONTH, EAE_YEAR) USING INDEX TABLESPACE SYSTEM STORAGE ( INITIAL 64K MAXEXTENTS UNLIMITED ))
TABLESPACE SYSTEM
STORAGE (
INITIAL 64KREMARK VARCHAR2(1000 BYTE),
WORK_HOURS NUMBER(4, 2),
ENT_DATE DATE,
USER_ID NUMBER(8, 0),
DM_ID NUMBER(4, 0),
LATE_GOING NUMBER(15, 2),
DAY_STATUS VARCHAR2(1 BYTE),
CONSTRAINT TEMP_EMP_ATTENDANCE_O_PK PRIMARY KEY (CM_CODE, EAE_EM_ID, EAE_DATE, EAE_MONTH, EAE_YEAR) USING INDEX TABLESPACE SYSTEM STORAGE ( INITIAL 64K MAXEXTENTS UNLIMITED ))
TABLESPACE SYSTEM
STORAGE (
INITIAL 64K
MAXEXTENTS UNLIMITEDREMARK VARCHAR2(1000 BYTE),
WORK_HOURS NUMBER(4, 2),
ENT_DATE DATE,
USER_ID NUMBER(8, 0),
DM_ID NUMBER(4, 0),
LATE_GOING NUMBER(15, 2),
DAY_STATUS VARCHAR2(1 BYTE),
CONSTRAINT TEMP_EMP_ATTENDANCE_O_PK PRIMARY KEY (CM_CODE, EAE_EM_ID, EAE_DATE, EAE_MONTH, EAE_YEAR) USING INDEX TABLESPACE SYSTEM STORAGE ( INITIAL 64K MAXEXTENTS UNLIMITED ))
TABLESPACE SYSTEM
STORAGE (
INITIAL 64K
MAXEXTENTS UNLIMITED
)REMARK VARCHAR2(1000 BYTE),
WORK_HOURS NUMBER(4, 2),
ENT_DATE DATE,
USER_ID NUMBER(8, 0),
DM_ID NUMBER(4, 0),
LATE_GOING NUMBER(15, 2),
DAY_STATUS VARCHAR2(1 BYTE),
CONSTRAINT TEMP_EMP_ATTENDANCE_O_PK PRIMARY KEY (CM_CODE, EAE_EM_ID, EAE_DATE, EAE_MONTH, EAE_YEAR) USING INDEX TABLESPACE SYSTEM STORAGE ( INITIAL 64K MAXEXTENTS UNLIMITED ))
TABLESPACE SYSTEM
STORAGE (
INITIAL 64K
MAXEXTENTS UNLIMITED
)
LOGGING;REMARK VARCHAR2(1000 BYTE),
WORK_HOURS NUMBER(4, 2),
ENT_DATE DATE,
USER_ID NUMBER(8, 0),
DM_ID NUMBER(4, 0),
LATE_GOING NUMBER(15, 2),
DAY_STATUS VARCHAR2(1 BYTE),
CONSTRAINT TEMP_EMP_ATTENDANCE_O_PK PRIMARY KEY (CM_CODE, EAE_EM_ID, EAE_DATE, EAE_MONTH, EAE_YEAR) USING INDEX TABLESPACE SYSTEM STORAGE ( INITIAL 64K MAXEXTENTS UNLIMITED ))
TABLESPACE SYSTEM
STORAGE (
INITIAL 64K
MAXEXTENTS UNLIMITED
)
LOGGING;
CREATE INDEX SYSTEM.IND_TEMP_DAILY2_O ON SYSTEM.TEMP_EMP_ATTENDANCE (CM_CODE, EAE_EM_ID, EAE_DATE, EM_TYPE_CODE, EG_ID, DEPT_CODE)REMARK VARCHAR2(1000 BYTE),
WORK_HOURS NUMBER(4, 2),
ENT_DATE DATE,
USER_ID NUMBER(8, 0),
DM_ID NUMBER(4, 0),
LATE_GOING NUMBER(15, 2),
DAY_STATUS VARCHAR2(1 BYTE),
CONSTRAINT TEMP_EMP_ATTENDANCE_O_PK PRIMARY KEY (CM_CODE, EAE_EM_ID, EAE_DATE, EAE_MONTH, EAE_YEAR) USING INDEX TABLESPACE SYSTEM STORAGE ( INITIAL 64K MAXEXTENTS UNLIMITED ))
TABLESPACE SYSTEM
STORAGE (
INITIAL 64K
MAXEXTENTS UNLIMITED
)
LOGGING;
CREATE INDEX SYSTEM.IND_TEMP_DAILY2_O ON SYSTEM.TEMP_EMP_ATTENDANCE (CM_CODE, EAE_EM_ID, EAE_DATE, EM_TYPE_CODE, EG_ID, DEPT_CODE)
TABLESPACE SYSTEMREMARK VARCHAR2(1000 BYTE),
WORK_HOURS NUMBER(4, 2),
ENT_DATE DATE,
USER_ID NUMBER(8, 0),
DM_ID NUMBER(4, 0),
LATE_GOING NUMBER(15, 2),
DAY_STATUS VARCHAR2(1 BYTE),
CONSTRAINT TEMP_EMP_ATTENDANCE_O_PK PRIMARY KEY (CM_CODE, EAE_EM_ID, EAE_DATE, EAE_MONTH, EAE_YEAR) USING INDEX TABLESPACE SYSTEM STORAGE ( INITIAL 64K MAXEXTENTS UNLIMITED ))
TABLESPACE SYSTEM
STORAGE (
INITIAL 64K
MAXEXTENTS UNLIMITED
)
LOGGING;
CREATE INDEX SYSTEM.IND_TEMP_DAILY2_O ON SYSTEM.TEMP_EMP_ATTENDANCE (CM_CODE, EAE_EM_ID, EAE_DATE, EM_TYPE_CODE, EG_ID, DEPT_CODE)
TABLESPACE SYSTEM
STORAGE (REMARK VARCHAR2(1000 BYTE),
WORK_HOURS NUMBER(4, 2),
ENT_DATE DATE,
USER_ID NUMBER(8, 0),
DM_ID NUMBER(4, 0),
LATE_GOING NUMBER(15, 2),
DAY_STATUS VARCHAR2(1 BYTE),
CONSTRAINT TEMP_EMP_ATTENDANCE_O_PK PRIMARY KEY (CM_CODE, EAE_EM_ID, EAE_DATE, EAE_MONTH, EAE_YEAR) USING INDEX TABLESPACE SYSTEM STORAGE ( INITIAL 64K MAXEXTENTS UNLIMITED ))
TABLESPACE SYSTEM
STORAGE (
INITIAL 64K
MAXEXTENTS UNLIMITED
)
LOGGING;
CREATE INDEX SYSTEM.IND_TEMP_DAILY2_O ON SYSTEM.TEMP_EMP_ATTENDANCE (CM_CODE, EAE_EM_ID, EAE_DATE, EM_TYPE_CODE, EG_ID, DEPT_CODE)
TABLESPACE SYSTEM
STORAGE (
INITIAL 64KREMARK VARCHAR2(1000 BYTE),
WORK_HOURS NUMBER(4, 2),
ENT_DATE DATE,
USER_ID NUMBER(8, 0),
DM_ID NUMBER(4, 0),
LATE_GOING NUMBER(15, 2),
DAY_STATUS VARCHAR2(1 BYTE),
CONSTRAINT TEMP_EMP_ATTENDANCE_O_PK PRIMARY KEY (CM_CODE, EAE_EM_ID, EAE_DATE, EAE_MONTH, EAE_YEAR) USING INDEX TABLESPACE SYSTEM STORAGE ( INITIAL 64K MAXEXTENTS UNLIMITED ))
TABLESPACE SYSTEM
STORAGE (
INITIAL 64K
MAXEXTENTS UNLIMITED
)
LOGGING;
CREATE INDEX SYSTEM.IND_TEMP_DAILY2_O ON SYSTEM.TEMP_EMP_ATTENDANCE (CM_CODE, EAE_EM_ID, EAE_DATE, EM_TYPE_CODE, EG_ID, DEPT_CODE)
TABLESPACE SYSTEM
STORAGE (
INITIAL 64K
MAXEXTENTS UNLIMITEDREMARK VARCHAR2(1000 BYTE),
WORK_HOURS NUMBER(4, 2),
ENT_DATE DATE,
USER_ID NUMBER(8, 0),
DM_ID NUMBER(4, 0),
LATE_GOING NUMBER(15, 2),
DAY_STATUS VARCHAR2(1 BYTE),
CONSTRAINT TEMP_EMP_ATTENDANCE_O_PK PRIMARY KEY (CM_CODE, EAE_EM_ID, EAE_DATE, EAE_MONTH, EAE_YEAR) USING INDEX TABLESPACE SYSTEM STORAGE ( INITIAL 64K MAXEXTENTS UNLIMITED ))
TABLESPACE SYSTEM
STORAGE (
INITIAL 64K
MAXEXTENTS UNLIMITED
)
LOGGING;
CREATE INDEX SYSTEM.IND_TEMP_DAILY2_O ON SYSTEM.TEMP_EMP_ATTENDANCE (CM_CODE, EAE_EM_ID, EAE_DATE, EM_TYPE_CODE, EG_ID, DEPT_CODE)
TABLESPACE SYSTEM
STORAGE (
INITIAL 64K
MAXEXTENTS UNLIMITED
)REMARK VARCHAR2(1000 BYTE),
WORK_HOURS NUMBER(4, 2),
ENT_DATE DATE,
USER_ID NUMBER(8, 0),
DM_ID NUMBER(4, 0),
LATE_GOING NUMBER(15, 2),
DAY_STATUS VARCHAR2(1 BYTE),
CONSTRAINT TEMP_EMP_ATTENDANCE_O_PK PRIMARY KEY (CM_CODE, EAE_EM_ID, EAE_DATE, EAE_MONTH, EAE_YEAR) USING INDEX TABLESPACE SYSTEM STORAGE ( INITIAL 64K MAXEXTENTS UNLIMITED ))
TABLESPACE SYSTEM
STORAGE (
INITIAL 64K
MAXEXTENTS UNLIMITED
)
LOGGING;
CREATE INDEX SYSTEM.IND_TEMP_DAILY2_O ON SYSTEM.TEMP_EMP_ATTENDANCE (CM_CODE, EAE_EM_ID, EAE_DATE, EM_TYPE_CODE, EG_ID, DEPT_CODE)
TABLESPACE SYSTEM
STORAGE (
INITIAL 64K
MAXEXTENTS UNLIMITED
)
LOGGING;REMARK VARCHAR2(1000 BYTE),
WORK_HOURS NUMBER(4, 2),
ENT_DATE DATE,
USER_ID NUMBER(8, 0),
DM_ID NUMBER(4, 0),
LATE_GOING NUMBER(15, 2),
DAY_STATUS VARCHAR2(1 BYTE),
CONSTRAINT TEMP_EMP_ATTENDANCE_O_PK PRIMARY KEY (CM_CODE, EAE_EM_ID, EAE_DATE, EAE_MONTH, EAE_YEAR) USING INDEX TABLESPACE SYSTEM STORAGE ( INITIAL 64K MAXEXTENTS UNLIMITED ))
TABLESPACE SYSTEM
STORAGE (
INITIAL 64K
MAXEXTENTS UNLIMITED
)
LOGGING;
CREATE INDEX SYSTEM.IND_TEMP_DAILY2_O ON SYSTEM.TEMP_EMP_ATTENDANCE (CM_CODE, EAE_EM_ID, EAE_DATE, EM_TYPE_CODE, EG_ID, DEPT_CODE)
TABLESPACE SYSTEM
STORAGE (
INITIAL 64K
MAXEXTENTS UNLIMITED
)
LOGGING;
CREATE UNIQUE INDEX SYSTEM.IND_TEMP_DAILY_O ON SYSTEM.TEMP_EMP_ATTENDANCE (EAE_EM_ID, CM_CODE, EAE_DATE)REMARK VARCHAR2(1000 BYTE),
WORK_HOURS NUMBER(4, 2),
ENT_DATE DATE,
USER_ID NUMBER(8, 0),
DM_ID NUMBER(4, 0),
LATE_GOING NUMBER(15, 2),
DAY_STATUS VARCHAR2(1 BYTE),
CONSTRAINT TEMP_EMP_ATTENDANCE_O_PK PRIMARY KEY (CM_CODE, EAE_EM_ID, EAE_DATE, EAE_MONTH, EAE_YEAR) USING INDEX TABLESPACE SYSTEM STORAGE ( INITIAL 64K MAXEXTENTS UNLIMITED ))
TABLESPACE SYSTEM
STORAGE (
INITIAL 64K
MAXEXTENTS UNLIMITED
)
LOGGING;
CREATE INDEX SYSTEM.IND_TEMP_DAILY2_O ON SYSTEM.TEMP_EMP_ATTENDANCE (CM_CODE, EAE_EM_ID, EAE_DATE, EM_TYPE_CODE, EG_ID, DEPT_CODE)
TABLESPACE SYSTEM
STORAGE (
INITIAL 64K
MAXEXTENTS UNLIMITED
)
LOGGING;
CREATE UNIQUE INDEX SYSTEM.IND_TEMP_DAILY_O ON SYSTEM.TEMP_EMP_ATTENDANCE (EAE_EM_ID, CM_CODE, EAE_DATE)
TABLESPACE SYSTEMREMARK VARCHAR2(1000 BYTE),
WORK_HOURS NUMBER(4, 2),
ENT_DATE DATE,
USER_ID NUMBER(8, 0),
DM_ID NUMBER(4, 0),
LATE_GOING NUMBER(15, 2),
DAY_STATUS VARCHAR2(1 BYTE),
CONSTRAINT TEMP_EMP_ATTENDANCE_O_PK PRIMARY KEY (CM_CODE, EAE_EM_ID, EAE_DATE, EAE_MONTH, EAE_YEAR) USING INDEX TABLESPACE SYSTEM STORAGE ( INITIAL 64K MAXEXTENTS UNLIMITED ))
TABLESPACE SYSTEM
STORAGE (
INITIAL 64K
MAXEXTENTS UNLIMITED
)
LOGGING;
CREATE INDEX SYSTEM.IND_TEMP_DAILY2_O ON SYSTEM.TEMP_EMP_ATTENDANCE (CM_CODE, EAE_EM_ID, EAE_DATE, EM_TYPE_CODE, EG_ID, DEPT_CODE)
TABLESPACE SYSTEM
STORAGE (
INITIAL 64K
MAXEXTENTS UNLIMITED
)
LOGGING;
CREATE UNIQUE INDEX SYSTEM.IND_TEMP_DAILY_O ON SYSTEM.TEMP_EMP_ATTENDANCE (EAE_EM_ID, CM_CODE, EAE_DATE)
TABLESPACE SYSTEM
STORAGE (REMARK VARCHAR2(1000 BYTE),
WORK_HOURS NUMBER(4, 2),
ENT_DATE DATE,
USER_ID NUMBER(8, 0),
DM_ID NUMBER(4, 0),
LATE_GOING NUMBER(15, 2),
DAY_STATUS VARCHAR2(1 BYTE),
CONSTRAINT TEMP_EMP_ATTENDANCE_O_PK PRIMARY KEY (CM_CODE, EAE_EM_ID, EAE_DATE, EAE_MONTH, EAE_YEAR) USING INDEX TABLESPACE SYSTEM STORAGE ( INITIAL 64K MAXEXTENTS UNLIMITED ))
TABLESPACE SYSTEM
STORAGE (
INITIAL 64K
MAXEXTENTS UNLIMITED
)
LOGGING;
CREATE INDEX SYSTEM.IND_TEMP_DAILY2_O ON SYSTEM.TEMP_EMP_ATTENDANCE (CM_CODE, EAE_EM_ID, EAE_DATE, EM_TYPE_CODE, EG_ID, DEPT_CODE)
TABLESPACE SYSTEM
STORAGE (
INITIAL 64K
MAXEXTENTS UNLIMITED
)
LOGGING;
CREATE UNIQUE INDEX SYSTEM.IND_TEMP_DAILY_O ON SYSTEM.TEMP_EMP_ATTENDANCE (EAE_EM_ID, CM_CODE, EAE_DATE)
TABLESPACE SYSTEM
STORAGE (
INITIAL 64KREMARK VARCHAR2(1000 BYTE),
WORK_HOURS NUMBER(4, 2),
ENT_DATE DATE,
USER_ID NUMBER(8, 0),
DM_ID NUMBER(4, 0),
LATE_GOING NUMBER(15, 2),
DAY_STATUS VARCHAR2(1 BYTE),
CONSTRAINT TEMP_EMP_ATTENDANCE_O_PK PRIMARY KEY (CM_CODE, EAE_EM_ID, EAE_DATE, EAE_MONTH, EAE_YEAR) USING INDEX TABLESPACE SYSTEM STORAGE ( INITIAL 64K MAXEXTENTS UNLIMITED ))
TABLESPACE SYSTEM
STORAGE (
INITIAL 64K
MAXEXTENTS UNLIMITED
)
LOGGING;
CREATE INDEX SYSTEM.IND_TEMP_DAILY2_O ON SYSTEM.TEMP_EMP_ATTENDANCE (CM_CODE, EAE_EM_ID, EAE_DATE, EM_TYPE_CODE, EG_ID, DEPT_CODE)
TABLESPACE SYSTEM
STORAGE (
INITIAL 64K
MAXEXTENTS UNLIMITED
)
LOGGING;
CREATE UNIQUE INDEX SYSTEM.IND_TEMP_DAILY_O ON SYSTEM.TEMP_EMP_ATTENDANCE (EAE_EM_ID, CM_CODE, EAE_DATE)
TABLESPACE SYSTEM
STORAGE (
INITIAL 64K
MAXEXTENTS UNLIMITEDREMARK VARCHAR2(1000 BYTE),
WORK_HOURS NUMBER(4, 2),
ENT_DATE DATE,
USER_ID NUMBER(8, 0),
DM_ID NUMBER(4, 0),
LATE_GOING NUMBER(15, 2),
DAY_STATUS VARCHAR2(1 BYTE),
CONSTRAINT TEMP_EMP_ATTENDANCE_O_PK PRIMARY KEY (CM_CODE, EAE_EM_ID, EAE_DATE, EAE_MONTH, EAE_YEAR) USING INDEX TABLESPACE SYSTEM STORAGE ( INITIAL 64K MAXEXTENTS UNLIMITED ))
TABLESPACE SYSTEM
STORAGE (
INITIAL 64K
MAXEXTENTS UNLIMITED
)
LOGGING;
CREATE INDEX SYSTEM.IND_TEMP_DAILY2_O ON SYSTEM.TEMP_EMP_ATTENDANCE (CM_CODE, EAE_EM_ID, EAE_DATE, EM_TYPE_CODE, EG_ID, DEPT_CODE)
TABLESPACE SYSTEM
STORAGE (
INITIAL 64K
MAXEXTENTS UNLIMITED
)
LOGGING;
CREATE UNIQUE INDEX SYSTEM.IND_TEMP_DAILY_O ON SYSTEM.TEMP_EMP_ATTENDANCE (EAE_EM_ID, CM_CODE, EAE_DATE)
TABLESPACE SYSTEM
STORAGE (
INITIAL 64K
MAXEXTENTS UNLIMITED
)REMARK VARCHAR2(1000 BYTE),
WORK_HOURS NUMBER(4, 2),
ENT_DATE DATE,
USER_ID NUMBER(8, 0),
DM_ID NUMBER(4, 0),
LATE_GOING NUMBER(15, 2),
DAY_STATUS VARCHAR2(1 BYTE),
CONSTRAINT TEMP_EMP_ATTENDANCE_O_PK PRIMARY KEY (CM_CODE, EAE_EM_ID, EAE_DATE, EAE_MONTH, EAE_YEAR) USING INDEX TABLESPACE SYSTEM STORAGE ( INITIAL 64K MAXEXTENTS UNLIMITED ))
TABLESPACE SYSTEM
STORAGE (
INITIAL 64K
MAXEXTENTS UNLIMITED
)
LOGGING;
CREATE INDEX SYSTEM.IND_TEMP_DAILY2_O ON SYSTEM.TEMP_EMP_ATTENDANCE (CM_CODE, EAE_EM_ID, EAE_DATE, EM_TYPE_CODE, EG_ID, DEPT_CODE)
TABLESPACE SYSTEM
STORAGE (
INITIAL 64K
MAXEXTENTS UNLIMITED
)
LOGGING;
CREATE UNIQUE INDEX SYSTEM.IND_TEMP_DAILY_O ON SYSTEM.TEMP_EMP_ATTENDANCE (EAE_EM_ID, CM_CODE, EAE_DATE)
TABLESPACE SYSTEM
STORAGE (
INITIAL 64K
MAXEXTENTS UNLIMITED
)
LOGGING;
首先,使用 "SYSTEM" 用户帐户来获取用户数据是一个糟糕的设计,并且您正在 SYSTEM table 空间上创建您的 table。您应该有另一个用户应该在不同的 table 空间拥有您的对象。您不应在 "SYSTEM TABLESPACE" 上保留任何用户数据。
现在要使您的查询执行速度更快,您需要考虑几个参数。
开始于:
检查您是否更新了 table 和索引的统计信息。如果您的统计数据过时,那么这可能是主要原因,因此请在 table 上更新统计数据。如果统计数据没有过时,请检查这个 table last_analyzed 是什么时候。如果自上次分析以来 table 中的数据变化超过 ~10%,则在 table.
上收集统计数据
检查一下 table 上是否存在高碎片。如果是,那么考虑重建它。
如果您的 table 大小非常大,那么尝试在 table 上实施分区概念。
在报告 运行 时检查 OS 资源利用率。你有足够的 RAM,CPU 来完成你的查询。 (free -m, vmstat 1 10, iostat -c 1 10)
AWR 报告最适合分析数据库发生的情况。当您开始生成报告时记下时间,然后在完成后记下时间并生成 AWR 报告。如果持续时间超过 1 小时,则生成 AWR 1 小时间隔。你可以很容易地找出你的数据库发生了什么。
这些是任何人都可以遵循的通用方法。还有很多参数可以从 AWR 报告中提取出来。
我们公司的数据库有一个名为 "TEMP_EMP_ATTENDANCE" 的 table。这次大约有600000多条记录,并且系统每天添加大约3500条记录用于员工考勤记录。因此,当我们进行出勤计算过程时,整个数据库和应用程序变得太慢,每个班次需要大约 2.5 到 3 小时。我们可以做些什么来加快处理速度?
TABLE 描述:
CREATE TABLE SYSTEM.TEMP_EMP_ATTENDANCE (
CM_CODE NUMBER(2, 0) NOT NULL,
EAE_MONTH NUMBER(2, 0) NOT NULL,
EAE_YEAR NUMBER(4, 0) NOT NULL,
EAE_EM_ID NUMBER(8, 0) NOT NULL,
EAE_EMP_ID VARCHAR2(50 BYTE),
EAE_REG_NO VARCHAR2(6 BYTE),
EM_NAME VARCHAR2(100 BYTE),
EAE_DATE TIMESTAMP(6) NOT NULL,
EM_TYPE_CODE NUMBER(4, 0),
EG_ID NUMBER(4, 0),
PH_CODE NUMBER(4, 0),
DEPT_CODE NUMBER(4, 0),
SUBDEPT_CODE NUMBER(4, 0),
SHIFT_ID NUMBER(4, 0),
SCH_INTIME TIMESTAMP(6),
SCH_OUTTIME TIMESTAMP(6),
IN_TIME TIMESTAMP(6),
OUT_TIME TIMESTAMP(6),
DAY NUMBER(5, 2),
LATE_TIME NUMBER(15, 2),
OVER_TIME NUMBER(15, 2),
EAE_EM_RESTDAY VARCHAR2(10 BYTE),
DAILY_STATUS VARCHAR2(30 BYTE),
LTM_CODE NUMBER(4, 0),
BMANUALUPDATEINOUTTIME NUMBER(1, 0),
TOTAL_PUNCH NUMBER(3, 0),
REMARK VARCHAR2(1000 BYTE),REMARK VARCHAR2(1000 BYTE),
WORK_HOURS NUMBER(4, 2),REMARK VARCHAR2(1000 BYTE),
WORK_HOURS NUMBER(4, 2),
ENT_DATE DATE,REMARK VARCHAR2(1000 BYTE),
WORK_HOURS NUMBER(4, 2),
ENT_DATE DATE,
USER_ID NUMBER(8, 0),REMARK VARCHAR2(1000 BYTE),
WORK_HOURS NUMBER(4, 2),
ENT_DATE DATE,
USER_ID NUMBER(8, 0),
DM_ID NUMBER(4, 0),REMARK VARCHAR2(1000 BYTE),
WORK_HOURS NUMBER(4, 2),
ENT_DATE DATE,
USER_ID NUMBER(8, 0),
DM_ID NUMBER(4, 0),
LATE_GOING NUMBER(15, 2),REMARK VARCHAR2(1000 BYTE),
WORK_HOURS NUMBER(4, 2),
ENT_DATE DATE,
USER_ID NUMBER(8, 0),
DM_ID NUMBER(4, 0),
LATE_GOING NUMBER(15, 2),
DAY_STATUS VARCHAR2(1 BYTE),REMARK VARCHAR2(1000 BYTE),
WORK_HOURS NUMBER(4, 2),
ENT_DATE DATE,
USER_ID NUMBER(8, 0),
DM_ID NUMBER(4, 0),
LATE_GOING NUMBER(15, 2),
DAY_STATUS VARCHAR2(1 BYTE),
CONSTRAINT TEMP_EMP_ATTENDANCE_O_PK PRIMARY KEY (CM_CODE, EAE_EM_ID, EAE_DATE, EAE_MONTH, EAE_YEAR) USING INDEX TABLESPACE SYSTEM STORAGE ( INITIAL 64K MAXEXTENTS UNLIMITED ))REMARK VARCHAR2(1000 BYTE),
WORK_HOURS NUMBER(4, 2),
ENT_DATE DATE,
USER_ID NUMBER(8, 0),
DM_ID NUMBER(4, 0),
LATE_GOING NUMBER(15, 2),
DAY_STATUS VARCHAR2(1 BYTE),
CONSTRAINT TEMP_EMP_ATTENDANCE_O_PK PRIMARY KEY (CM_CODE, EAE_EM_ID, EAE_DATE, EAE_MONTH, EAE_YEAR) USING INDEX TABLESPACE SYSTEM STORAGE ( INITIAL 64K MAXEXTENTS UNLIMITED ))
TABLESPACE SYSTEMREMARK VARCHAR2(1000 BYTE),
WORK_HOURS NUMBER(4, 2),
ENT_DATE DATE,
USER_ID NUMBER(8, 0),
DM_ID NUMBER(4, 0),
LATE_GOING NUMBER(15, 2),
DAY_STATUS VARCHAR2(1 BYTE),
CONSTRAINT TEMP_EMP_ATTENDANCE_O_PK PRIMARY KEY (CM_CODE, EAE_EM_ID, EAE_DATE, EAE_MONTH, EAE_YEAR) USING INDEX TABLESPACE SYSTEM STORAGE ( INITIAL 64K MAXEXTENTS UNLIMITED ))
TABLESPACE SYSTEM
STORAGE (REMARK VARCHAR2(1000 BYTE),
WORK_HOURS NUMBER(4, 2),
ENT_DATE DATE,
USER_ID NUMBER(8, 0),
DM_ID NUMBER(4, 0),
LATE_GOING NUMBER(15, 2),
DAY_STATUS VARCHAR2(1 BYTE),
CONSTRAINT TEMP_EMP_ATTENDANCE_O_PK PRIMARY KEY (CM_CODE, EAE_EM_ID, EAE_DATE, EAE_MONTH, EAE_YEAR) USING INDEX TABLESPACE SYSTEM STORAGE ( INITIAL 64K MAXEXTENTS UNLIMITED ))
TABLESPACE SYSTEM
STORAGE (
INITIAL 64KREMARK VARCHAR2(1000 BYTE),
WORK_HOURS NUMBER(4, 2),
ENT_DATE DATE,
USER_ID NUMBER(8, 0),
DM_ID NUMBER(4, 0),
LATE_GOING NUMBER(15, 2),
DAY_STATUS VARCHAR2(1 BYTE),
CONSTRAINT TEMP_EMP_ATTENDANCE_O_PK PRIMARY KEY (CM_CODE, EAE_EM_ID, EAE_DATE, EAE_MONTH, EAE_YEAR) USING INDEX TABLESPACE SYSTEM STORAGE ( INITIAL 64K MAXEXTENTS UNLIMITED ))
TABLESPACE SYSTEM
STORAGE (
INITIAL 64K
MAXEXTENTS UNLIMITEDREMARK VARCHAR2(1000 BYTE),
WORK_HOURS NUMBER(4, 2),
ENT_DATE DATE,
USER_ID NUMBER(8, 0),
DM_ID NUMBER(4, 0),
LATE_GOING NUMBER(15, 2),
DAY_STATUS VARCHAR2(1 BYTE),
CONSTRAINT TEMP_EMP_ATTENDANCE_O_PK PRIMARY KEY (CM_CODE, EAE_EM_ID, EAE_DATE, EAE_MONTH, EAE_YEAR) USING INDEX TABLESPACE SYSTEM STORAGE ( INITIAL 64K MAXEXTENTS UNLIMITED ))
TABLESPACE SYSTEM
STORAGE (
INITIAL 64K
MAXEXTENTS UNLIMITED
)REMARK VARCHAR2(1000 BYTE),
WORK_HOURS NUMBER(4, 2),
ENT_DATE DATE,
USER_ID NUMBER(8, 0),
DM_ID NUMBER(4, 0),
LATE_GOING NUMBER(15, 2),
DAY_STATUS VARCHAR2(1 BYTE),
CONSTRAINT TEMP_EMP_ATTENDANCE_O_PK PRIMARY KEY (CM_CODE, EAE_EM_ID, EAE_DATE, EAE_MONTH, EAE_YEAR) USING INDEX TABLESPACE SYSTEM STORAGE ( INITIAL 64K MAXEXTENTS UNLIMITED ))
TABLESPACE SYSTEM
STORAGE (
INITIAL 64K
MAXEXTENTS UNLIMITED
)
LOGGING;REMARK VARCHAR2(1000 BYTE),
WORK_HOURS NUMBER(4, 2),
ENT_DATE DATE,
USER_ID NUMBER(8, 0),
DM_ID NUMBER(4, 0),
LATE_GOING NUMBER(15, 2),
DAY_STATUS VARCHAR2(1 BYTE),
CONSTRAINT TEMP_EMP_ATTENDANCE_O_PK PRIMARY KEY (CM_CODE, EAE_EM_ID, EAE_DATE, EAE_MONTH, EAE_YEAR) USING INDEX TABLESPACE SYSTEM STORAGE ( INITIAL 64K MAXEXTENTS UNLIMITED ))
TABLESPACE SYSTEM
STORAGE (
INITIAL 64K
MAXEXTENTS UNLIMITED
)
LOGGING;
CREATE INDEX SYSTEM.IND_TEMP_DAILY2_O ON SYSTEM.TEMP_EMP_ATTENDANCE (CM_CODE, EAE_EM_ID, EAE_DATE, EM_TYPE_CODE, EG_ID, DEPT_CODE)REMARK VARCHAR2(1000 BYTE),
WORK_HOURS NUMBER(4, 2),
ENT_DATE DATE,
USER_ID NUMBER(8, 0),
DM_ID NUMBER(4, 0),
LATE_GOING NUMBER(15, 2),
DAY_STATUS VARCHAR2(1 BYTE),
CONSTRAINT TEMP_EMP_ATTENDANCE_O_PK PRIMARY KEY (CM_CODE, EAE_EM_ID, EAE_DATE, EAE_MONTH, EAE_YEAR) USING INDEX TABLESPACE SYSTEM STORAGE ( INITIAL 64K MAXEXTENTS UNLIMITED ))
TABLESPACE SYSTEM
STORAGE (
INITIAL 64K
MAXEXTENTS UNLIMITED
)
LOGGING;
CREATE INDEX SYSTEM.IND_TEMP_DAILY2_O ON SYSTEM.TEMP_EMP_ATTENDANCE (CM_CODE, EAE_EM_ID, EAE_DATE, EM_TYPE_CODE, EG_ID, DEPT_CODE)
TABLESPACE SYSTEMREMARK VARCHAR2(1000 BYTE),
WORK_HOURS NUMBER(4, 2),
ENT_DATE DATE,
USER_ID NUMBER(8, 0),
DM_ID NUMBER(4, 0),
LATE_GOING NUMBER(15, 2),
DAY_STATUS VARCHAR2(1 BYTE),
CONSTRAINT TEMP_EMP_ATTENDANCE_O_PK PRIMARY KEY (CM_CODE, EAE_EM_ID, EAE_DATE, EAE_MONTH, EAE_YEAR) USING INDEX TABLESPACE SYSTEM STORAGE ( INITIAL 64K MAXEXTENTS UNLIMITED ))
TABLESPACE SYSTEM
STORAGE (
INITIAL 64K
MAXEXTENTS UNLIMITED
)
LOGGING;
CREATE INDEX SYSTEM.IND_TEMP_DAILY2_O ON SYSTEM.TEMP_EMP_ATTENDANCE (CM_CODE, EAE_EM_ID, EAE_DATE, EM_TYPE_CODE, EG_ID, DEPT_CODE)
TABLESPACE SYSTEM
STORAGE (REMARK VARCHAR2(1000 BYTE),
WORK_HOURS NUMBER(4, 2),
ENT_DATE DATE,
USER_ID NUMBER(8, 0),
DM_ID NUMBER(4, 0),
LATE_GOING NUMBER(15, 2),
DAY_STATUS VARCHAR2(1 BYTE),
CONSTRAINT TEMP_EMP_ATTENDANCE_O_PK PRIMARY KEY (CM_CODE, EAE_EM_ID, EAE_DATE, EAE_MONTH, EAE_YEAR) USING INDEX TABLESPACE SYSTEM STORAGE ( INITIAL 64K MAXEXTENTS UNLIMITED ))
TABLESPACE SYSTEM
STORAGE (
INITIAL 64K
MAXEXTENTS UNLIMITED
)
LOGGING;
CREATE INDEX SYSTEM.IND_TEMP_DAILY2_O ON SYSTEM.TEMP_EMP_ATTENDANCE (CM_CODE, EAE_EM_ID, EAE_DATE, EM_TYPE_CODE, EG_ID, DEPT_CODE)
TABLESPACE SYSTEM
STORAGE (
INITIAL 64KREMARK VARCHAR2(1000 BYTE),
WORK_HOURS NUMBER(4, 2),
ENT_DATE DATE,
USER_ID NUMBER(8, 0),
DM_ID NUMBER(4, 0),
LATE_GOING NUMBER(15, 2),
DAY_STATUS VARCHAR2(1 BYTE),
CONSTRAINT TEMP_EMP_ATTENDANCE_O_PK PRIMARY KEY (CM_CODE, EAE_EM_ID, EAE_DATE, EAE_MONTH, EAE_YEAR) USING INDEX TABLESPACE SYSTEM STORAGE ( INITIAL 64K MAXEXTENTS UNLIMITED ))
TABLESPACE SYSTEM
STORAGE (
INITIAL 64K
MAXEXTENTS UNLIMITED
)
LOGGING;
CREATE INDEX SYSTEM.IND_TEMP_DAILY2_O ON SYSTEM.TEMP_EMP_ATTENDANCE (CM_CODE, EAE_EM_ID, EAE_DATE, EM_TYPE_CODE, EG_ID, DEPT_CODE)
TABLESPACE SYSTEM
STORAGE (
INITIAL 64K
MAXEXTENTS UNLIMITEDREMARK VARCHAR2(1000 BYTE),
WORK_HOURS NUMBER(4, 2),
ENT_DATE DATE,
USER_ID NUMBER(8, 0),
DM_ID NUMBER(4, 0),
LATE_GOING NUMBER(15, 2),
DAY_STATUS VARCHAR2(1 BYTE),
CONSTRAINT TEMP_EMP_ATTENDANCE_O_PK PRIMARY KEY (CM_CODE, EAE_EM_ID, EAE_DATE, EAE_MONTH, EAE_YEAR) USING INDEX TABLESPACE SYSTEM STORAGE ( INITIAL 64K MAXEXTENTS UNLIMITED ))
TABLESPACE SYSTEM
STORAGE (
INITIAL 64K
MAXEXTENTS UNLIMITED
)
LOGGING;
CREATE INDEX SYSTEM.IND_TEMP_DAILY2_O ON SYSTEM.TEMP_EMP_ATTENDANCE (CM_CODE, EAE_EM_ID, EAE_DATE, EM_TYPE_CODE, EG_ID, DEPT_CODE)
TABLESPACE SYSTEM
STORAGE (
INITIAL 64K
MAXEXTENTS UNLIMITED
)REMARK VARCHAR2(1000 BYTE),
WORK_HOURS NUMBER(4, 2),
ENT_DATE DATE,
USER_ID NUMBER(8, 0),
DM_ID NUMBER(4, 0),
LATE_GOING NUMBER(15, 2),
DAY_STATUS VARCHAR2(1 BYTE),
CONSTRAINT TEMP_EMP_ATTENDANCE_O_PK PRIMARY KEY (CM_CODE, EAE_EM_ID, EAE_DATE, EAE_MONTH, EAE_YEAR) USING INDEX TABLESPACE SYSTEM STORAGE ( INITIAL 64K MAXEXTENTS UNLIMITED ))
TABLESPACE SYSTEM
STORAGE (
INITIAL 64K
MAXEXTENTS UNLIMITED
)
LOGGING;
CREATE INDEX SYSTEM.IND_TEMP_DAILY2_O ON SYSTEM.TEMP_EMP_ATTENDANCE (CM_CODE, EAE_EM_ID, EAE_DATE, EM_TYPE_CODE, EG_ID, DEPT_CODE)
TABLESPACE SYSTEM
STORAGE (
INITIAL 64K
MAXEXTENTS UNLIMITED
)
LOGGING;REMARK VARCHAR2(1000 BYTE),
WORK_HOURS NUMBER(4, 2),
ENT_DATE DATE,
USER_ID NUMBER(8, 0),
DM_ID NUMBER(4, 0),
LATE_GOING NUMBER(15, 2),
DAY_STATUS VARCHAR2(1 BYTE),
CONSTRAINT TEMP_EMP_ATTENDANCE_O_PK PRIMARY KEY (CM_CODE, EAE_EM_ID, EAE_DATE, EAE_MONTH, EAE_YEAR) USING INDEX TABLESPACE SYSTEM STORAGE ( INITIAL 64K MAXEXTENTS UNLIMITED ))
TABLESPACE SYSTEM
STORAGE (
INITIAL 64K
MAXEXTENTS UNLIMITED
)
LOGGING;
CREATE INDEX SYSTEM.IND_TEMP_DAILY2_O ON SYSTEM.TEMP_EMP_ATTENDANCE (CM_CODE, EAE_EM_ID, EAE_DATE, EM_TYPE_CODE, EG_ID, DEPT_CODE)
TABLESPACE SYSTEM
STORAGE (
INITIAL 64K
MAXEXTENTS UNLIMITED
)
LOGGING;
CREATE UNIQUE INDEX SYSTEM.IND_TEMP_DAILY_O ON SYSTEM.TEMP_EMP_ATTENDANCE (EAE_EM_ID, CM_CODE, EAE_DATE)REMARK VARCHAR2(1000 BYTE),
WORK_HOURS NUMBER(4, 2),
ENT_DATE DATE,
USER_ID NUMBER(8, 0),
DM_ID NUMBER(4, 0),
LATE_GOING NUMBER(15, 2),
DAY_STATUS VARCHAR2(1 BYTE),
CONSTRAINT TEMP_EMP_ATTENDANCE_O_PK PRIMARY KEY (CM_CODE, EAE_EM_ID, EAE_DATE, EAE_MONTH, EAE_YEAR) USING INDEX TABLESPACE SYSTEM STORAGE ( INITIAL 64K MAXEXTENTS UNLIMITED ))
TABLESPACE SYSTEM
STORAGE (
INITIAL 64K
MAXEXTENTS UNLIMITED
)
LOGGING;
CREATE INDEX SYSTEM.IND_TEMP_DAILY2_O ON SYSTEM.TEMP_EMP_ATTENDANCE (CM_CODE, EAE_EM_ID, EAE_DATE, EM_TYPE_CODE, EG_ID, DEPT_CODE)
TABLESPACE SYSTEM
STORAGE (
INITIAL 64K
MAXEXTENTS UNLIMITED
)
LOGGING;
CREATE UNIQUE INDEX SYSTEM.IND_TEMP_DAILY_O ON SYSTEM.TEMP_EMP_ATTENDANCE (EAE_EM_ID, CM_CODE, EAE_DATE)
TABLESPACE SYSTEMREMARK VARCHAR2(1000 BYTE),
WORK_HOURS NUMBER(4, 2),
ENT_DATE DATE,
USER_ID NUMBER(8, 0),
DM_ID NUMBER(4, 0),
LATE_GOING NUMBER(15, 2),
DAY_STATUS VARCHAR2(1 BYTE),
CONSTRAINT TEMP_EMP_ATTENDANCE_O_PK PRIMARY KEY (CM_CODE, EAE_EM_ID, EAE_DATE, EAE_MONTH, EAE_YEAR) USING INDEX TABLESPACE SYSTEM STORAGE ( INITIAL 64K MAXEXTENTS UNLIMITED ))
TABLESPACE SYSTEM
STORAGE (
INITIAL 64K
MAXEXTENTS UNLIMITED
)
LOGGING;
CREATE INDEX SYSTEM.IND_TEMP_DAILY2_O ON SYSTEM.TEMP_EMP_ATTENDANCE (CM_CODE, EAE_EM_ID, EAE_DATE, EM_TYPE_CODE, EG_ID, DEPT_CODE)
TABLESPACE SYSTEM
STORAGE (
INITIAL 64K
MAXEXTENTS UNLIMITED
)
LOGGING;
CREATE UNIQUE INDEX SYSTEM.IND_TEMP_DAILY_O ON SYSTEM.TEMP_EMP_ATTENDANCE (EAE_EM_ID, CM_CODE, EAE_DATE)
TABLESPACE SYSTEM
STORAGE (REMARK VARCHAR2(1000 BYTE),
WORK_HOURS NUMBER(4, 2),
ENT_DATE DATE,
USER_ID NUMBER(8, 0),
DM_ID NUMBER(4, 0),
LATE_GOING NUMBER(15, 2),
DAY_STATUS VARCHAR2(1 BYTE),
CONSTRAINT TEMP_EMP_ATTENDANCE_O_PK PRIMARY KEY (CM_CODE, EAE_EM_ID, EAE_DATE, EAE_MONTH, EAE_YEAR) USING INDEX TABLESPACE SYSTEM STORAGE ( INITIAL 64K MAXEXTENTS UNLIMITED ))
TABLESPACE SYSTEM
STORAGE (
INITIAL 64K
MAXEXTENTS UNLIMITED
)
LOGGING;
CREATE INDEX SYSTEM.IND_TEMP_DAILY2_O ON SYSTEM.TEMP_EMP_ATTENDANCE (CM_CODE, EAE_EM_ID, EAE_DATE, EM_TYPE_CODE, EG_ID, DEPT_CODE)
TABLESPACE SYSTEM
STORAGE (
INITIAL 64K
MAXEXTENTS UNLIMITED
)
LOGGING;
CREATE UNIQUE INDEX SYSTEM.IND_TEMP_DAILY_O ON SYSTEM.TEMP_EMP_ATTENDANCE (EAE_EM_ID, CM_CODE, EAE_DATE)
TABLESPACE SYSTEM
STORAGE (
INITIAL 64KREMARK VARCHAR2(1000 BYTE),
WORK_HOURS NUMBER(4, 2),
ENT_DATE DATE,
USER_ID NUMBER(8, 0),
DM_ID NUMBER(4, 0),
LATE_GOING NUMBER(15, 2),
DAY_STATUS VARCHAR2(1 BYTE),
CONSTRAINT TEMP_EMP_ATTENDANCE_O_PK PRIMARY KEY (CM_CODE, EAE_EM_ID, EAE_DATE, EAE_MONTH, EAE_YEAR) USING INDEX TABLESPACE SYSTEM STORAGE ( INITIAL 64K MAXEXTENTS UNLIMITED ))
TABLESPACE SYSTEM
STORAGE (
INITIAL 64K
MAXEXTENTS UNLIMITED
)
LOGGING;
CREATE INDEX SYSTEM.IND_TEMP_DAILY2_O ON SYSTEM.TEMP_EMP_ATTENDANCE (CM_CODE, EAE_EM_ID, EAE_DATE, EM_TYPE_CODE, EG_ID, DEPT_CODE)
TABLESPACE SYSTEM
STORAGE (
INITIAL 64K
MAXEXTENTS UNLIMITED
)
LOGGING;
CREATE UNIQUE INDEX SYSTEM.IND_TEMP_DAILY_O ON SYSTEM.TEMP_EMP_ATTENDANCE (EAE_EM_ID, CM_CODE, EAE_DATE)
TABLESPACE SYSTEM
STORAGE (
INITIAL 64K
MAXEXTENTS UNLIMITEDREMARK VARCHAR2(1000 BYTE),
WORK_HOURS NUMBER(4, 2),
ENT_DATE DATE,
USER_ID NUMBER(8, 0),
DM_ID NUMBER(4, 0),
LATE_GOING NUMBER(15, 2),
DAY_STATUS VARCHAR2(1 BYTE),
CONSTRAINT TEMP_EMP_ATTENDANCE_O_PK PRIMARY KEY (CM_CODE, EAE_EM_ID, EAE_DATE, EAE_MONTH, EAE_YEAR) USING INDEX TABLESPACE SYSTEM STORAGE ( INITIAL 64K MAXEXTENTS UNLIMITED ))
TABLESPACE SYSTEM
STORAGE (
INITIAL 64K
MAXEXTENTS UNLIMITED
)
LOGGING;
CREATE INDEX SYSTEM.IND_TEMP_DAILY2_O ON SYSTEM.TEMP_EMP_ATTENDANCE (CM_CODE, EAE_EM_ID, EAE_DATE, EM_TYPE_CODE, EG_ID, DEPT_CODE)
TABLESPACE SYSTEM
STORAGE (
INITIAL 64K
MAXEXTENTS UNLIMITED
)
LOGGING;
CREATE UNIQUE INDEX SYSTEM.IND_TEMP_DAILY_O ON SYSTEM.TEMP_EMP_ATTENDANCE (EAE_EM_ID, CM_CODE, EAE_DATE)
TABLESPACE SYSTEM
STORAGE (
INITIAL 64K
MAXEXTENTS UNLIMITED
)REMARK VARCHAR2(1000 BYTE),
WORK_HOURS NUMBER(4, 2),
ENT_DATE DATE,
USER_ID NUMBER(8, 0),
DM_ID NUMBER(4, 0),
LATE_GOING NUMBER(15, 2),
DAY_STATUS VARCHAR2(1 BYTE),
CONSTRAINT TEMP_EMP_ATTENDANCE_O_PK PRIMARY KEY (CM_CODE, EAE_EM_ID, EAE_DATE, EAE_MONTH, EAE_YEAR) USING INDEX TABLESPACE SYSTEM STORAGE ( INITIAL 64K MAXEXTENTS UNLIMITED ))
TABLESPACE SYSTEM
STORAGE (
INITIAL 64K
MAXEXTENTS UNLIMITED
)
LOGGING;
CREATE INDEX SYSTEM.IND_TEMP_DAILY2_O ON SYSTEM.TEMP_EMP_ATTENDANCE (CM_CODE, EAE_EM_ID, EAE_DATE, EM_TYPE_CODE, EG_ID, DEPT_CODE)
TABLESPACE SYSTEM
STORAGE (
INITIAL 64K
MAXEXTENTS UNLIMITED
)
LOGGING;
CREATE UNIQUE INDEX SYSTEM.IND_TEMP_DAILY_O ON SYSTEM.TEMP_EMP_ATTENDANCE (EAE_EM_ID, CM_CODE, EAE_DATE)
TABLESPACE SYSTEM
STORAGE (
INITIAL 64K
MAXEXTENTS UNLIMITED
)
LOGGING;
首先,使用 "SYSTEM" 用户帐户来获取用户数据是一个糟糕的设计,并且您正在 SYSTEM table 空间上创建您的 table。您应该有另一个用户应该在不同的 table 空间拥有您的对象。您不应在 "SYSTEM TABLESPACE" 上保留任何用户数据。
现在要使您的查询执行速度更快,您需要考虑几个参数。
开始于:
检查您是否更新了 table 和索引的统计信息。如果您的统计数据过时,那么这可能是主要原因,因此请在 table 上更新统计数据。如果统计数据没有过时,请检查这个 table last_analyzed 是什么时候。如果自上次分析以来 table 中的数据变化超过 ~10%,则在 table.
上收集统计数据
检查一下 table 上是否存在高碎片。如果是,那么考虑重建它。
如果您的 table 大小非常大,那么尝试在 table 上实施分区概念。
在报告 运行 时检查 OS 资源利用率。你有足够的 RAM,CPU 来完成你的查询。 (free -m, vmstat 1 10, iostat -c 1 10)
AWR 报告最适合分析数据库发生的情况。当您开始生成报告时记下时间,然后在完成后记下时间并生成 AWR 报告。如果持续时间超过 1 小时,则生成 AWR 1 小时间隔。你可以很容易地找出你的数据库发生了什么。
这些是任何人都可以遵循的通用方法。还有很多参数可以从 AWR 报告中提取出来。