To: eygle
老大,又来麻烦您了,嘿嘿!先谢谢!
我现在系统奇慢,仔细看后发现是个查询导致的,脚本如下:
select/*+ ORDERED */ --qv.lj,
'v' "BJ",
bso.department_id department_id,
bso.standard_operation_id process_id,
ppf.person_id person_id,
qv.CHARACTER31 "BC",
cih.workshop_name "CJ",
'N' "SFBZ",
trunc(to_date(qv.CHARACTER17, 'YYYY/MM/DD') "CLRQ",
qv.CHARACTER27 "YG" ,
nvl(qv.CHARACTER30,qv.CHARACTER25) "CHP",
nvl(qv.CHARACTER14,'A'"LJGXDM",
decode(qv.CHARACTER14,NULL,nvl(qv.CHARACTER26,qv.CHARACTER20),nvl(nvl(qv.CHARACTER29,qv.CHARACTER26),qv.CHARACTER20) ) "GXDM",
qv.CHARACTER2"SZCG",
qv.WIP_ENTITY_ID "JOB",
decode(cih.inspection_code,'HGP',round(round(to_number(qv.CHARACTER7, '9999999999999999999999999999999.999999'*cpp1.per_price,8)/cpp2.per_price,8),0) "HGP",
decode(cih.inspection_code,'CP',round(round(to_number(qv.CHARACTER7, '9999999999999999999999999999999.999999'*cpp1.per_price,8)/cpp2.per_price,8),0) "CP",
decode(cih.inspection_code,'FP',round(round(to_number(qv.CHARACTER7, '9999999999999999999999999999999.999999'*cpp1.per_price,8)/cpp2.per_price,8),0) "FEP",
decode(cih.inspection_code,'SF',round(round(to_number(qv.CHARACTER7, '9999999999999999999999999999999.999999'*cpp1.per_price,8)/cpp2.per_price,8),0) "SAOF",
decode(cih.inspection_code,'FS',round(round(to_number(qv.CHARACTER7, '9999999999999999999999999999999.999999'*cpp1.per_price,8)/cpp2.per_price,8),0) "FANS",
decode(cih.inspection_code,'FG',round(round(to_number(qv.CHARACTER7, '9999999999999999999999999999999.999999'*cpp1.per_price,8)/cpp2.per_price,8),0) "FANG",
decode(cih.inspection_code,'LT',round(round(to_number(qv.CHARACTER7, '9999999999999999999999999999999.999999'*cpp1.per_price,8)/cpp2.per_price,8),0) "LIANT",
decode(cih.inspection_code,'SSBLCP',round(round(to_number(qv.CHARACTER7, '9999999999999999999999999999999.999999'*cpp1.per_price,8)/cpp2.per_price,8),0) "SSCP",
decode(cih.inspection_code,'SSBLFP',round(round(to_number(qv.CHARACTER7, '9999999999999999999999999999999.999999'*cpp1.per_price,8)/cpp2.per_price,8),0) "SSFP",
decode(cih.inspection_code,'DCZT',round(round(to_number(qv.CHARACTER7, '9999999999999999999999999999999.999999'*cpp1.per_price,8)/cpp2.per_price,8),0) "DACZT",
decode(cih.inspection_code,'SHF',round(round(to_number(qv.CHARACTER7, '9999999999999999999999999999999.999999'*cpp1.per_price,8)/cpp2.per_price,8),0) "SHUAIF",
decode(cih.inspection_code,'SH',round(round(to_number(qv.CHARACTER7, '9999999999999999999999999999999.999999'*cpp1.per_price,8)/cpp2.per_price,8),0) "SUNH"
from qa_results qv,
cux_inspection_headers cih,
cux_inspection_lines cil,
cux_process_prices cpp1,
cux_process_prices cpp2,
bom_standard_operations bso,
per_people_f ppf
where qv.CHARACTER8 = cil.reason_code
and cih.header_id = cil.header_id
and qv.CHARACTER28 is null
and qv.CHARACTER27 is not null
and qv.CHARACTER8 is not null
and qv.plan_id=101
--and nvl(qv.lj,'无' = '无'
and decode(qv.CHARACTER14,NULL,nvl(qv.CHARACTER26,qv.CHARACTER20),nvl(nvl(qv.CHARACTER29,qv.CHARACTER26),qv.CHARACTER20) ) = cih.process_code
注意最后一个条件,如果不加这个条件就会很快,如果加上就会很慢。估计是这个函数反复比较导致的,但是我这个函数还必须用,有什么办法优化一下呢?
qa_results的脚本如下:
-- Create table
create table QA.QA_RESULTS
(
COLLECTION_IDNUMBER not null,
OCCURRENCE NUMBER not null,
LAST_UPDATE_DATE DATE not null,
QA_LAST_UPDATE_DATEDATE not null,
LAST_UPDATED_BYNUMBER not null,
QA_LAST_UPDATED_BY NUMBER not null,
CREATION_DATEDATE not null,
QA_CREATION_DATE DATE not null,
CREATED_BY NUMBER not null,
QA_CREATED_BYNUMBER not null,
LAST_UPDATE_LOGINNUMBER,
REQUEST_ID NUMBER,
PROGRAM_APPLICATION_ID NUMBER,
PROGRAM_ID NUMBER,
PROGRAM_UPDATE_DATEDATE,
TRANSACTION_NUMBER NUMBER,
TXN_HEADER_IDNUMBER,
ORGANIZATION_IDNUMBER not null,
PLAN_IDNUMBER not null,
SPEC_IDNUMBER,
TRANSACTION_ID NUMBER,
DEPARTMENT_IDNUMBER,
TO_DEPARTMENT_ID NUMBER,
RESOURCE_IDNUMBER,
QUANTITY NUMBER,
ITEM_IDNUMBER,
UOMVARCHAR2(3),
REVISION VARCHAR2(3),
SUBINVENTORY VARCHAR2(10),
LOCATOR_ID NUMBER,
LOT_NUMBER VARCHAR2(30),
SERIAL_NUMBERVARCHAR2(30),
COMP_ITEM_ID NUMBER,
COMP_UOM VARCHAR2(3),
COMP_REVISIONVARCHAR2(3),
COMP_SUBINVENTORYVARCHAR2(10),
COMP_LOCATOR_IDNUMBER,
COMP_LOT_NUMBERVARCHAR2(30),
COMP_SERIAL_NUMBER VARCHAR2(30),
WIP_ENTITY_IDNUMBER,
LINE_IDNUMBER,
TO_OP_SEQ_NUMNUMBER,
FROM_OP_SEQ_NUMNUMBER,
VENDOR_IDNUMBER,
RECEIPT_NUMVARCHAR2(30),
PO_HEADER_ID NUMBER,
PO_RELEASE_IDNUMBER,
PO_LINE_NUMNUMBER,
PO_SHIPMENT_NUMNUMBER,
CUSTOMER_IDNUMBER,
SO_HEADER_ID NUMBER,
RMA_HEADER_IDNUMBER,
PROJECT_ID NUMBER,
TASK_IDNUMBER,
STATUS NUMBER,
TRANSACTION_DATE DATE,
CHARACTER1 VARCHAR2(150),
CHARACTER2 VARCHAR2(150),
CHARACTER3 VARCHAR2(150),
CHARACTER4 VARCHAR2(150),
CHARACTER5 VARCHAR2(150),
CHARACTER6 VARCHAR2(150),
CHARACTER7 VARCHAR2(150),
CHARACTER8 VARCHAR2(150),
CHARACTER9 VARCHAR2(150),
CHARACTER10VARCHAR2(150),
CHARACTER11VARCHAR2(150),
CHARACTER12VARCHAR2(150),
CHARACTER13VARCHAR2(150),
CHARACTER14VARCHAR2(150),
CHARACTER15VARCHAR2(150),
CHARACTER16VARCHAR2(150),
CHARACTER17VARCHAR2(150),
CHARACTER18VARCHAR2(150),
CHARACTER19VARCHAR2(150),
CHARACTER20VARCHAR2(150),
CHARACTER21VARCHAR2(150),
CHARACTER22VARCHAR2(150),
CHARACTER23VARCHAR2(150),
CHARACTER24VARCHAR2(150),
CHARACTER25VARCHAR2(150),
CHARACTER26VARCHAR2(150),
CHARACTER27VARCHAR2(150),
CHARACTER28VARCHAR2(150),
CHARACTER29VARCHAR2(150),
CHARACTER30VARCHAR2(150),
CHARACTER31VARCHAR2(150),
CHARACTER32VARCHAR2(150),
CHARACTER33VARCHAR2(150),
CHARACTER34VARCHAR2(150),
CHARACTER35VARCHAR2(150),
CHARACTER36VARCHAR2(150),
CHARACTER37VARCHAR2(150),
CHARACTER38VARCHAR2(150),
CHARACTER39VARCHAR2(150),
CHARACTER40VARCHAR2(150),
CHARACTER41VARCHAR2(150),
CHARACTER42VARCHAR2(150),
CHARACTER43VARCHAR2(150),
CHARACTER44VARCHAR2(150),
CHARACTER45VARCHAR2(150),
CHARACTER46VARCHAR2(150),
CHARACTER47VARCHAR2(150),
CHARACTER48VARCHAR2(150),
CHARACTER49VARCHAR2(150),
CHARACTER50VARCHAR2(150),
CHARACTER51VARCHAR2(150),
CHARACTER52VARCHAR2(150),
CHARACTER53VARCHAR2(150),
CHARACTER54VARCHAR2(150),
CHARACTER55VARCHAR2(150),
CHARACTER56VARCHAR2(150),
CHARACTER57VARCHAR2(150),
CHARACTER58VARCHAR2(150),
CHARACTER59VARCHAR2(150),
CHARACTER60VARCHAR2(150),
CHARACTER61VARCHAR2(150),
CHARACTER62VARCHAR2(150),
CHARACTER63VARCHAR2(150),
CHARACTER64VARCHAR2(150),
CHARACTER65VARCHAR2(150),
CHARACTER66VARCHAR2(150),
CHARACTER67VARCHAR2(150),
CHARACTER68VARCHAR2(150),
CHARACTER69VARCHAR2(150),
CHARACTER70VARCHAR2(150),
CHARACTER71VARCHAR2(150),
CHARACTER72VARCHAR2(150),
CHARACTER73VARCHAR2(150),
CHARACTER74VARCHAR2(150),
CHARACTER75VARCHAR2(150),
CHARACTER76VARCHAR2(150),
CHARACTER77VARCHAR2(150),
CHARACTER78VARCHAR2(150),
CHARACTER79VARCHAR2(150),
CHARACTER80VARCHAR2(150),
CHARACTER81VARCHAR2(150),
CHARACTER82VARCHAR2(150),
CHARACTER83VARCHAR2(150),
CHARACTER84VARCHAR2(150),
CHARACTER85VARCHAR2(150),
CHARACTER86VARCHAR2(150),
CHARACTER87VARCHAR2(150),
CHARACTER88VARCHAR2(150),
CHARACTER89VARCHAR2(150),
CHARACTER90VARCHAR2(150),
CHARACTER91VARCHAR2(150),
CHARACTER92VARCHAR2(150),
CHARACTER93VARCHAR2(150),
CHARACTER94VARCHAR2(150),
CHARACTER95VARCHAR2(150),
CHARACTER96VARCHAR2(150),
CHARACTER97VARCHAR2(150),
CHARACTER98VARCHAR2(150),
CHARACTER99VARCHAR2(150),
CHARACTER100 VARCHAR2(150),
LPN_ID NUMBER,
CONTRACT_IDNUMBER,
CONTRACT_LINE_ID NUMBER,
DELIVERABLE_ID NUMBER
)
tablespace QAD
pctfree 10
pctused 40
initrans 10
maxtrans 255
storage
(
initial 16K
next 4M
minextents 1
maxextents unlimited
pctincrease 0
);
-- Create/Recreate indexes
create index QA.QA_RESULTS_CUX_N1 on QA.QA_RESULTS (CHARACTER14, CHARACTER20, CHARACTER25, CHARACTER26, CHARACTER28, CHARACTER29, CHARACTER30)
tablespace QAX
pctfree 10
initrans 2
maxtrans 255
storage
(
initial 40K
next 43152K
minextents 1
maxextents 505
pctincrease 0
);
create index QA.QA_RESULTS_CUX_N2 on QA.QA_RESULTS (CHARACTER14, CHARACTER20, CHARACTER26, CHARACTER25, CHARACTER27, CHARACTER29, CHARACTER30)
tablespace QAX
pctfree 10
initrans 2
maxtrans 255
storage
(
initial 40K
next 43152K
minextents 1
maxextents 505
pctincrease 0
);
create index QA.QA_RESULTS_CUX_N3 on QA.QA_RESULTS (CHARACTER28)
tablespace QAX
pctfree 10
initrans 2
maxtrans 255
storage
(
initial 40K
next 12784K
minextents 1
maxextents 505
pctincrease 0
);
create index QA.QA_RESULTS_CUX_N4 on QA.QA_RESULTS (CHARACTER27)
tablespace QAX
pctfree 10
initrans 2
maxtrans 255
storage
(
initial 40K
next 12784K
minextents 1
maxextents 505
pctincrease 0
);
create index QA.QA_RESULTS_N1 on QA.QA_RESULTS (ITEM_ID, ORGANIZATION_ID)
tablespace QAX
pctfree 10
initrans 11
maxtrans 255
storage
(
initial 16K
next 256K
minextents 1
maxextents unlimited
pctincrease 0
);
create index QA.QA_RESULTS_N2 on QA.QA_RESULTS (SERIAL_NUMBER, ORGANIZATION_ID)
tablespace QAX
pctfree 10
initrans 11
maxtrans 255
storage
(
initial 16K
next 256K
minextents 1
maxextents unlimited
pctincrease 0
);
create index QA.QA_RESULTS_N3 on QA.QA_RESULTS (COMP_SERIAL_NUMBER, ORGANIZATION_ID)
tablespace QAX
pctfree 10
initrans 11
maxtrans 255
storage
(
initial 16K
next 256K
minextents 1
maxextents unlimited
pctincrease 0
);
create index QA.QA_RESULTS_N4 on QA.QA_RESULTS (LOT_NUMBER, ORGANIZATION_ID)
tablespace QAX
pctfree 10
initrans 11
maxtrans 255
storage
(
initial 16K
next 256K
minextents 1
maxextents unlimited
pctincrease 0
);
create index QA.QA_RESULTS_N5 on QA.QA_RESULTS (SO_HEADER_ID)
tablespace QAX
pctfree 10
initrans 11
maxtrans 255
storage
(
initial 16K
next 4M
minextents 1
maxextents unlimited
pctincrease 0
);
create index QA.QA_RESULTS_N6 on QA.QA_RESULTS (COLLECTION_ID)
tablespace QAX
pctfree 10
initrans 11
maxtrans 255
storage
(
initial 16K
next 256K
minextents 1
maxextents unlimited
pctincrease 0
);
create index QA.QA_RESULTS_N7 on QA.QA_RESULTS (TXN_HEADER_ID)
tablespace QAX
pctfree 10
initrans 11
maxtrans 255
storage
(
initial 16K
next 256K
minextents 1
maxextents unlimited
pctincrease 0
);
create index QA.QA_RESULTS_N8 on QA.QA_RESULTS (CONTRACT_ID, CONTRACT_LINE_ID, DELIVERABLE_ID)
tablespace QAX
pctfree 10
initrans 11
maxtrans 255
storage
(
initial 16K
next 256K
minextents 1
maxextents unlimited
pctincrease 0
);
create unique index QA.QA_RESULTS_U1 on QA.QA_RESULTS (PLAN_ID, COLLECTION_ID, OCCURRENCE)
tablespace QAX
pctfree 10
initrans 11
maxtrans 255
storage
(
initial 16K
next 256K
minextents 1
maxextents unlimited
pctincrease 0
);
呵呵,脚本比较长,还请老大息怒,帮我仔细看看,感动阿....................
From: remen 2005.11.04 04:28
|