Fazer execute esta rotina com trace 10046 e enviei o resultado. para ativar o trace: alter session set events ´10046 trace name context forever, level 8'; alter session tracefile_identifier=update;
para desativar o trace alter session ser events ´10046 trace name context off´; para tratar o trace tkprof nomedoarquivo_update.trc update.txt sort=exeela,prsela,fchela sys=no copie o trecho referente ao update incluse com os wait events. ________________________________ De: limaleodavid <[EMAIL PROTECTED]> Para: oracle_br@yahoogrupos.com.br Enviadas: Quarta-feira, 5 de Novembro de 2008 8:51:43 Assunto: [oracle_br] Otimizacao( Tuning ) Senhores Bom dia .... Tenho uma tabela que estou precisando diminuir o tempo de execucao dos processos, basicamente e uma tabela de transformacao (delete eupdate ), hoje ela esta demorando ( 1/2 a 1 hora ), posso reescrever esta query, mas antes preciso de uma luz, dos conhecimentos de vcs, segue o desc da tabela ... CREATE TABLE SIM_RFCDEV.TMP_ PESSOA ( MANDT VARCHAR2(3 BYTE), ID VARCHAR2(10 BYTE), CD_PESSOA VARCHAR2(14 BYTE), DT_INICIAL VARCHAR2(11 BYTE), NM_RAZAO_SOCIAL VARCHAR2(70 BYTE), DS_ENDERECO VARCHAR2(60 BYTE), DS_BAIRRO VARCHAR2(60 BYTE), DS_MUNICIPIO VARCHAR2(100 BYTE), UF VARCHAR2(2 BYTE), DS_PAIS VARCHAR2(20 BYTE), NR_CEP VARCHAR2(8 BYTE), NR_CNPJ_CPF VARCHAR2(14 BYTE), NR_INSCR_EST VARCHAR2(20 BYTE), NR_INSCR_MUNIC VARCHAR2(14 BYTE), NR_CEI VARCHAR2(12 BYTE), COD_GRUPOEMPRESA VARCHAR2(4 BYTE), COD_EMPRESA VARCHAR2(4 BYTE), COD_FILIAL VARCHAR2(4 BYTE), DT_MOVIMENTO VARCHAR2(11 BYTE), NR_INSCR_SUBST VARCHAR2(14 BYTE), CD_SUFRAMA VARCHAR2(9 BYTE), NR_NUMERO VARCHAR2(10 BYTE), DS_COMPLEMENTO VARCHAR2(60 BYTE), NR_CEP_CP VARCHAR2(8 BYTE), NR_CP VARCHAR2(10 BYTE), NR_FONE VARCHAR2(15 BYTE), NR_FAX VARCHAR2(15 BYTE), DM_RELACIONADO VARCHAR2(1 BYTE), DT_INI_REL VARCHAR2(11 BYTE), DT_FIN_REL VARCHAR2(11 BYTE), NR_NIT VARCHAR2(11 BYTE), CD_CNAE VARCHAR2(20 BYTE), NR_CATEGORIA VARCHAR2(2 BYTE), DT_IMPORTACAO VARCHAR2(11 BYTE), ID_USUARIO_IMP VARCHAR2(5 BYTE), NR_RG VARCHAR2(20 BYTE), CD_MUNICIPIO VARCHAR2(7 BYTE), CD_PAIS VARCHAR2(5 BYTE), DM_OPTANTE_SIMP VARCHAR2(1 BYTE), DS_EMAIL VARCHAR2(60 BYTE), NR_TERMINAL_ TEL VARCHAR2(10 BYTE), NR_CONTA_CONS VARCHAR2(10 BYTE), UF_HABILITACAO VARCHAR2(2 BYTE), DS_FIM VARCHAR2(1 BYTE) ); REATE TABLE SIM_RFCDEV.IN_ IMPORTACAO ( ID_ARQUIVO NUMBER NOT NULL, ID_EMPRESA NUMBER(4) NOT NULL, DT_MOVIMENTO DATE NOT NULL, DM_SITUACAO VARCHAR2(1 BYTE) NOT NULL, ID_USUARIO NUMBER(5) NOT NULL, DS_MOTIVO_ENCERRAME NTO CLOB ); CREATE TABLE SIM_RFCDEV.CTRL_ EMPRESA ( ID_EMPRESA NUMBER(4) NOT NULL, NM_FANTASIA VARCHAR2(60 BYTE) NOT NULL, ENDERECO_EMPRESA VARCHAR2(40 BYTE) NOT NULL, NM_EMPRESA VARCHAR2(60 BYTE) NOT NULL, BAIRRO_EMPRESA VARCHAR2(30 BYTE) NOT NULL, CEP_EMPRESA VARCHAR2(10 BYTE) NOT NULL, MUNICIPIO_EMPRESA VARCHAR2(25 BYTE) NOT NULL, UF_EMPRESA VARCHAR2(2 BYTE) NOT NULL, TELEFONE_EMPRESA VARCHAR2(20 BYTE), FAX_EMPRESA VARCHAR2(20 BYTE), EMAIL_EMPRESA VARCHAR2(60 BYTE), CEI_EMPRESA VARCHAR2(20 BYTE), INSCR_EMPRESA VARCHAR2(20 BYTE) NOT NULL, CNPJ_EMPRESA VARCHAR2(20 BYTE) NOT NULL, LICENCA_EMPRESA NUMBER(10) NOT NULL, QTDE_USUARIO NUMBER(4) NOT NULL, DT_INICIO DATE NOT NULL, DT_FINAL DATE NOT NULL, DM_IMPRIME_LOGO VARCHAR2(1 BYTE) NOT NULL, ID_PESSOA NUMBER, ID_FILIAL NUMBER, ID_SEGMENTO_ EMPRESA NUMBER(3) NOT NULL, DT_ANIVERSARIO DATE, COD_GRUPOEMPRESA VARCHAR2(4 BYTE), NR_JUNTA_COMERCIAL VARCHAR2(20 BYTE), DT_JUNTA_COMERCIAL DATE, CNAE_EMPRESA VARCHAR2(9 BYTE), COMPL_EMPRESA VARCHAR2(30 BYTE), NUMERO_EMPRESA VARCHAR2(10 BYTE) NOT NULL, CD_NIT NUMBER(11), CD_MUNICIPIO_ IBGE NUMBER(7), NR_INSCR_MUNICIPAL VARCHAR2(20 BYTE), NR_SUFRAMA VARCHAR2(9 BYTE), DM_CENTRALIZACAO VARCHAR2(1 BYTE) NOT NULL, NR_CEP_CP VARCHAR2(10 BYTE), NR_CAIXA_POSTAL NUMBER, NR_CACEAL NUMBER(9), ALIQ_ICMS_ESTADO NUMBER(5,2) NOT NULL, ID_REF_331_MUNICIPI O NUMBER, NR_INSCR_SUBSTITUTO _TRIB NUMBER(14), CD_BACEN VARCHAR2(20 BYTE), CD_CVM VARCHAR2(20 BYTE), CD_SUSEP VARCHAR2(20 BYTE), CD_SPC VARCHAR2(20 BYTE), NR_NIRE VARCHAR2(20 BYTE), ID_NATUREZA_ JURIDICA NUMBER, DM_DECDIPJ VARCHAR2(1 BYTE), COD_EMPRESA VARCHAR2(5 BYTE), COD_FILIAL VARCHAR2(5 BYTE), CD_ANP_AGENTE NUMBER(10), LOGO BLOB, ID_CNAE NUMBER, NM_PREFEITURA VARCHAR2(200 BYTE), CNPJ_PREFEITURA VARCHAR2(20 BYTE), DM_REGIME_DECLARANT E VARCHAR2(1 BYTE), COD_CLIENTE_ SAP VARCHAR2(10 BYTE), NR_REG_EXPORTACAO VARCHAR2(20 BYTE) ); .. indices CREATE INDEX IDX ON TMP_PESSOA(ID) NOLOGGING COMPUTE STATISTICS ; CREATE BITMAP INDEX IDX2 ON TMP_PESSOA (COD_EMPRESA, COD_FILIAL) NOLOGGING COMPUTE STATISTICS ; lembrando que CTRL_EMPRESA tem poucos dados (2 mil no maximo), e a IN_IMPORTACAO (200 mil ); TMP_PESSOA (APROX . 2 MILHOES ); SEGUE A QUERY ... DELETE FROM TMP_PESSOA TMP WHERE EXISTS ( SELECT IMP.* FROM IN_IMPORTACAO IMP WHERE IMP.ID_ARQUIVO IN ( 19,369,431) AND IMP.DM_SITUACAO IN ( '4','5' ) AND IMP.ID_EMPRESA = ( SELECT CTRL.ID_EMPRESA FROM CTRL_EMPRESA CTRL WHERE CTRL.COD_EMPRESA = TRIM(TMP.COD_ EMPRESA) AND (TMP.COD_EMPRESA IS NOT NULL OR TMP.COD_FILIAL IS NOT NULL ) AND ((CTRL.COD_FILIAL IS NULL AND SUBSTR(CTRL. CNPJ_EMPRESA, 12,4) = '0001') OR (CTRL.COD_FILIAL IS NOT NULL AND CTRL.COD_FILIAL = TRIM (TMP.COD_FILIAL) )) AND ROWNUM = 1) AND IMP.DT_MOVIMENTO = TO_DATE('01/ '|| TO_CHAR(TO_DATE (TMP.DT_INICIAL) ,'MM') || '/' || TO_CHAR(TO_DATE (TMP.DT_INICIAL) ,'YYYY'), 'DD/MM/YYYY' )) AND TMP.ID IS NOT NULL; desde ja agradeco Novos endereços, o Yahoo! que você conhece. Crie um email novo com a sua cara @ymail.com ou @rocketmail.com. http://br.new.mail.yahoo.com/addresses [As partes desta mensagem que não continham texto foram removidas]