Наблюдаю проблему. Считается себестоимость. Основной расчёт проходит с обычной скоростью. На расчёте себестоимости в производстве встаёт примерно на половине бара.
Висит запрос:
insert into FFProdRep(DocType,DocID,SpecItem,IsIncome,Location,ZoneID,DocDate,Article,Quantity,TotalSum,PrimeCost,QuantityForced,PrimeCostForced)
select S_IN.DocType,
S_IN.DocID,
S_IN.SpecItem,
1 IsIncome,
S_IN.StoreLoc,
S_IN.ZoneID,
S_IN.CreatedAt,
S_IN.Article,
S_IN.Quantity,
S_IN.TotalSum,
sum(decode(S_IN.PriceFactor,null,nvl(M.PrimeCost,0),nvl(M.PrimeCost,0)*S_IN.PriceFactor/100)),0,0
from TTProdArticle T,FFProdInSpec S_IN,FFProdOutSpec S_OUT,FFProdRep M
where T.StoreLoc=S_IN.StoreLoc and T.ZoneID=S_IN.ZoneID and T.Article=S_IN.Article and T.CalcNu=3 and S_IN.CreatedAt
between to_date('31.12.2009','DD.MM.YYYY')
and to_date('25.06.2012','DD.MM.YYYY')
and S_IN.DocType='PD'
and S_OUT.DocType='PD'
and S_OUT.DocID=S_IN.DocID
and M.DocType='PD'
and M.DocID = S_OUT.DocID
and M.SpecItem = S_OUT.SpecItem
and M.IsIncome = '0'
group by S_IN.DocType, S_IN.DocID, S_IN.SpecItem,S_IN.StoreLoc, S_IN.ZoneID, S_IN.CreatedAt, S_IN.Article,S_IN.Quantity, S_IN.TotalSum
Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 архивлог включен.
СМ 1.027.4 SP8
SQL> select * from v$sgainfo;
NAME BYTES RESIZEABLE
-------------------------------- ---------- ----------
Fixed SGA Size 2085128 No
Redo Buffers 14688256 No
Buffer Cache Size 4563402752 Yes
Shared Pool Size 6928990208 Yes
Large Pool Size 16777216 Yes
Java Pool Size 16777216 Yes
Streams Pool Size 0 Yes
Granule Size 16777216 No
Maximum SGA Size 1154272460 No
Startup overhead in Shared Pool 100663296 No
Free SGA Memory Available 0
Скрипт для FFProdRep:
ALTER TABLE SUPERMAG.FFPRODREP
DROP PRIMARY KEY CASCADE;
DROP TABLE SUPERMAG.FFPRODREP CASCADE CONSTRAINTS;
CREATE TABLE SUPERMAG.FFPRODREP
(
DOCTYPE CHAR(2 BYTE) NOT NULL,
DOCID VARCHAR2(50 BYTE) NOT NULL,
SPECITEM NUMBER(10) NOT NULL,
LOCATION NUMBER(10) NOT NULL,
ZONEID NUMBER(10) NOT NULL,
DOCDATE DATE NOT NULL,
ARTICLE VARCHAR2(50 BYTE) NOT NULL,
QUANTITY NUMBER(14,3) NOT NULL,
PRIMECOST NUMBER(19,4) NOT NULL,
TOTALSUM NUMBER(19,4) NOT NULL,
ISINCOME CHAR(1 BYTE) NOT NULL,
QUANTITYFORCED NUMBER(14,3) NOT NULL,
PRIMECOSTFORCED NUMBER(19,4) NOT NULL
)
TABLESPACE FFTAB
PCTUSED 0
PCTFREE 0
INITRANS 1
MAXTRANS 255
STORAGE (
INITIAL 192K
MINEXTENTS 1
MAXEXTENTS UNLIMITED
PCTINCREASE 0
BUFFER_POOL DEFAULT
)
NOLOGGING
NOCOMPRESS
CACHE
NOPARALLEL
MONITORING;
CREATE UNIQUE INDEX SUPERMAG.FFCPRODREP_PK ON SUPERMAG.FFPRODREP
(DOCTYPE, DOCID, SPECITEM, ISINCOME)
NOLOGGING
TABLESPACE FFTAB
PCTFREE 10
INITRANS 2
MAXTRANS 255
STORAGE (
INITIAL 522M
MINEXTENTS 1
MAXEXTENTS UNLIMITED
PCTINCREASE 0
BUFFER_POOL DEFAULT
)
NOPARALLEL;
CREATE INDEX SUPERMAG.FFPRODREP_ZONEART ON SUPERMAG.FFPRODREP
(LOCATION, ZONEID, ARTICLE)
NOLOGGING
TABLESPACE FFTAB
PCTFREE 10
INITRANS 2
MAXTRANS 255
STORAGE (
INITIAL 368M
MINEXTENTS 1
MAXEXTENTS UNLIMITED
PCTINCREASE 0
BUFFER_POOL DEFAULT
)
NOPARALLEL;
ALTER TABLE SUPERMAG.FFPRODREP ADD (
CONSTRAINT FFCPRODREP_PK
PRIMARY KEY
(DOCTYPE, DOCID, SPECITEM, ISINCOME)
USING INDEX
TABLESPACE FFTAB
PCTFREE 10
INITRANS 2
MAXTRANS 255
STORAGE (
INITIAL 522M
MINEXTENTS 1
MAXEXTENTS UNLIMITED
PCTINCREASE 0
));
GRANT SELECT ON SUPERMAG.FFPRODREP TO SUPERMAG_FN_PROD_ZAKUPPRICE;
GRANT INSERT, SELECT, UPDATE ON SUPERMAG.FFPRODREP TO SUPERMAG_FN_REPADMIN_CALC;
Полностью очищал данные расчёта и переноса. Таблица и индексы NOLOGGING. Оптимайзер работает в зарегистрированном режиме.
оракл грузит проц, активно читает с диска 20-30Мб/сек, практически при этом не пишет. Ещё на прошлой неделе считалось нормально. Изменения только оптимайзер делает в настройки оракла, сам не трогаю.
Поделитесь опытом что делать, кто сталкивался с такой проблемой ? Что ещё проверить можно ?