Qual é a sua versao de banco ?

vou mandar um script "dbms_stats", mas você deve
adequa-lo a sua necessidade, janela de processamento
para fazer a coleta (compute ou estimate), se será
pelo banco ou por usuário etc...junto vou mandar um
pdf da Oracle que explica um pouco sobre as pkgs
dbms_stats assim como o CBO trabalha, mas isso é um
paleativo apenas. Seria legal você comprar um livro
como o chiappa disse e entender quais sao os
otimizadores, parametros, configuraçoes (RAID),
junções de tabela, tipos de índice, SGA, latchs
etc.... 

Mas amigo mande a sua versão do banco....

Faça o seguinte...:

SQL> select banner from v$version;

BANNER
------------------------------------------------------
Oracle8i Release 8.1.5.0.0 - Production
PL/SQL Release 8.1.5.0.0 - Production
CORE Version 8.1.3.0.0 - Production
TNS for Intel SVR4 UNIX: Version 8.1.5.0.0 -
Production
NLSRTL Version 3.4.0.0.0 - Production

SQL> 

Agora só umas curiosidades, 
O Retorno da sua query será de + ou - quantos
registros ?
Qual é a quantidade de Regs que você posssui em cada
tabela assim como chaves Pk e indexs ?

Out-off 
Porque você esta usando o Linux AS com 2GB ??? o AS
suporta muuuuuuuuuuuuuuuuuuuito mais que isso...e com
um Oracle 9i Enterprise você tem muito mais recursos.



--- Rodrigo Cavalcante <[EMAIL PROTECTED]>
escreveu:


---------------------------------
Luis,

    Tenho índice nesse campo, eu acho que oracle não
usa em virtude de ter
poucos registros na tabela, possuem 68 regitros.

    Agora não sei como fazer a coleta de estatisticas,
poderia me informar
como fazer isso?

    Desde já agradeço.

Att.

Rodrigo Cavalcante

----- Original Message -----
From: "Luis Claudio Arruda Figueiredo"
<[EMAIL PROTECTED]>
To: <[email protected]>
Sent: Wednesday, April 12, 2006 12:57 PM
Subject: Re: [oracle_br] Cost


> Rodrigo.
>
> você tem indice na GCCUSTO.CODCCUSTO ?
> como você faz a coleta de estatística nas tabelas e
> como é a seletividade desta coluna ?
>
>
>
>
> --- Rodrigo Cavalcante <[EMAIL PROTECTED]>
> escreveu:
>
>
> ---------------------------------
> Valeu luis pela atenção, a configuração do hardware
é
> o seguinte: 02
> processadores intel xeon dual 3.20 ghz, 2 GB de RAM,
> 04 discos de 34 GB, SO:
> Red Hat Enterpise Linux 4.0 AS, Oracle 9.2.0.4.0.
>
> Estou mandando o sql abaixo, como estudo de caso pra
> mim entender melhor o a
> otimização:
>
> SELECT GFILIAL.NOMEFANTASIA AS FILIAL,
>
> CLCTLOTE.DOCUMENTO,
>
> 'LANC' AS COD_TIPO_DOCUMENTO,
>
> 'LANCAMENTO SALDUS' AS TIPO_DOCUMENTO,
>
> TO_CHAR(CLCTLOTE.DATA,'YYYY') AS ANO_CONTAB,
>
> TO_CHAR(CLCTLOTE.DATA,'MM') AS MES_CONTAB,
>
> TO_CHAR(CLCTLOTE.DATA,'DD') AS DIA_CONTAB,
>
> TO_CHAR(CLCTLOTE.DATA,'YYYY') AS ANO_EMISSAO,
>
> TO_CHAR(CLCTLOTE.DATA,'MM') AS MES_EMISSAO,
>
> TO_CHAR(CLCTLOTE.DATA,'DD') AS DIA_EMISSAO,
>
> SUBSTR(CRATEIOLC.CODCONTA,1,5) AS COD_GRUPO,
>
>  (SELECT CCONTA.DESCRICAO FROM CCONTA WHERE
> CCONTA.CODCONTA =
> SUBSTR(CRATEIOLC.CODCONTA,1,5)) AS GRUPO_CONTA,
>
> CRATEIOLC.CODCONTA AS COD_CONTA,
>
>  CCONTA.DESCRICAO AS DES_CONTA,
>
> 'NÃO CONSTA' AS FORNECEDOR,
>
> 'NÃO CONSTA' AS USR_APROVADOR,
>
> CLCTLOTE.USUARIO AS USR_EMITENTE,
>
> (CASE SUBSTR(CRATEIOLC.CODGERENCIAL,1,1)
>
>                                 WHEN '1' THEN
> 'PRESIDENCIA'
>
>                                 WHEN '2' THEN
'DIRAD'
>
>                                 WHEN '3' THEN
'DIROP'
>
>                                 WHEN '4' THEN
'DIRCO'
>
>                                 WHEN '9' THEN
'RATEIO'
>
>                 END) AS DES_DIR,
>
>  SUBSTR(CRATEIOLC.CODGERENCIAL,1,3) AS COD_GER,
>
>  (SELECT DISTINCT NOME FROM GCCUSTO
> WHERE GCCUSTO.CODCCUSTO=
> SUBSTR(CRATEIOLC.CODGERENCIAL,1,3) AND
> LENGTH(CRATEIOLC.CODGERENCIAL)>1 AND
> GCCUSTO.CODCOLIGADA=1) AS DES_GER,
>
> CRATEIOLC.CODGERENCIAL AS COD_CCUSTO,
>
> GCCUSTO.NOME AS DES_CCUSTO,
>
> '00.00.00000' AS COD_PRD,
>
> TRIM(CLCTLOTE.COMPLEMENTO) AS DES_PRD,
>
> (CRATEIOLC.VLRDEBITO-CRATEIOLC.VLRCREDITO) AS VALOR
>
>  FROM CRATEIOLC
>
> JOIN CLCTLOTE ON (CRATEIOLC.LCTREF =
CLCTLOTE.LCTREF)
>
> JOIN GFILIAL ON (GFILIAL.CODFILIAL =
> CLCTLOTE.CODFILIAL AND
>
>                  GFILIAL.CODCOLIGADA =
> CLCTLOTE.CODCOLIGADA)
>
> JOIN CCONTA ON (CCONTA.CODCOLIGADA =
> CRATEIOLC.CODCOLIGADA AND
>
>                 CCONTA.CODCONTA = CRATEIOLC.CODCONTA
)
>
> JOIN GCCUSTO ON (GCCUSTO.CODCCUSTO =
> CRATEIOLC.CODGERENCIAL)
>
> WHERE CRATEIOLC.CODLOTE <> 0
>
> AND (CLCTLOTE.INTEGRAAPLICACAO IN ('C','I0') OR
> CLCTLOTE.INTEGRAAPLICACAO IS
> NULL)
>
> AND CRATEIOLC.CODCONTA LIKE '5%'
>
> Resultado do Explain:
>
>  SELECT STATEMENT, GOAL = CHOOSE
> 53                1                225
>  TABLE ACCESS BY INDEX ROWID                RM
>        CCONTA
> 2                1                38
>
>   INDEX RANGE SCAN      RM
> CXCTACODCONTA
> 1                1
>
>  FILTER
>
>   TABLE ACCESS BY INDEX ROWID                RM
>         GCCUSTO
> 1                1                40
>
>    INDEX UNIQUE SCAN      RM               
PKGCCUSTO
> 361                                          INDEX
>
>  HASH JOIN
> 53                1                225
>
>   NESTED LOOPS
> 50                1                188
>
>    NESTED LOOPS
> 49                1                166
>
>     NESTED LOOPS
> 47                2                250
>
>      TABLE ACCESS FULL      RM               
CLCTLOTE
> 43                2                168
>
>      TABLE ACCESS BY INDEX ROWID                RM
>            CRATEIOLC
> 2                1                41
>
>       INDEX RANGE SCAN      RM
> CXCRATEIOLCTREF
> 1                1
>
>     TABLE ACCESS BY INDEX ROWID                RM
>           CCONTA
> 1                1                41
>
>      INDEX UNIQUE SCAN      RM               
PKCONTA
> 1                                              INDEX
>
>    TABLE ACCESS BY INDEX ROWID                RM
>          GFILIAL
> 1                1                22
>
>     INDEX UNIQUE SCAN      RM               
PKGFILIAL
> 1                                              INDEX
>
>   TABLE ACCESS FULL      RM                GCCUSTO
> 2                361                13357
>
> ----- Original Message -----
> From: "Luis Claudio Arruda Figueiredo"
> <[EMAIL PROTECTED]>
> To: <[email protected]>
> Sent: Wednesday, April 12, 2006 11:28 AM
> Subject: Re: [oracle_br] Cost
>
>
> > É um bom indicador mas infelismente não é só com
> este
> > parâmetro que funciona, depende de outras "N"
> > variáveis.
> > Como:
> > init<sid>.ora, hardware(disco "RPM", Controladora,
> > Processador, Memória, Esta em Fibra ou placa giga
> > ect...) fragmentação da tabela e indice, tipo de
> > acesso (hash, merge, nestedloop) utilização de
> hints,
> > sua SGA, versão do banco etc...
> >
> > Mande um exemplo da query ou proc ou package que
> você
> > quer otimizar, assim como versão do banco e
> > informações de hardware e so.
> >
> > abs,
> >
> > Luis Figueiredo.
> >
> >
> > --- Rodrigo Cavalcante
<[EMAIL PROTECTED]>
> > escreveu:
> >
> >
> > ---------------------------------
> >  Srs.
> >
> >     Estou fazendo otimização de sql, no banco de
> > dados, gostaria de
> > saber como o oracle faz o cálculo do parâmetro
COST,
> > sei que, se esse
> > valor for alto a query vai demorar mais e se for
> baixo
> > será mais rápido,
> > qual o melhor valor dele, alguém tem um tutorial
> para
> > fazer otimização
> > de consultas?
> >
> > Att.
> >
> > Rodrigo Cavalcante
> >
> >
> > [As partes desta mensagem que não continham texto
> > foram removidas]
> >
> >
> >
> >
>
--------------------------------------------------------------------------
> ------------------------------------------------
> > Atenção! As mensagens deste grupo são de acesso
> > público e de inteira responsabilidade de seus
> > remetentes.
> > Acesse:
> >
>
http://www.mail-archive.com/[email protected]/
> >
> >
>
--------------------------------------------------------------------------
>
------------------------------------------------__________________________
__
> ______________________________________
> >
> > Este Grupo recebe o apoio da SQL Magazine -
> > www.devmedia.com.br/sqlmagazine
> >
>
__________________________________________________________________
> > O grupo Oracle_br não aceita anexos. Quando
oferecer
> > algum arquivo, tenha o link do mesmo para evitar
> > trafego(pedidos) desnecessário.
> >
> >
> >
> > ---------------------------------
> > Links do Yahoo! Grupos
> >
> >    Para visitar o site do seu grupo na web,
acesse:
> > http://br.groups.yahoo.com/group/oracle_br/
> >
> >    Para sair deste grupo, envie um e-mail para:
> > [EMAIL PROTECTED]
> >
> >    O uso que você faz do Yahoo! Grupos está
sujeito
> > aos Termos do Serviço do Yahoo!.
> >
> >
> >
> >
> >
> >
>
_______________________________________________________
> > Abra sua conta no Yahoo! Mail: 1GB de espaço,
> alertas de e-mail no celular
> e anti-spam realmente eficaz.
> > http://br.info.mail.yahoo.com/
> >
> >
> >
>
--------------------------------------------------------------------------
> ------------------------------------------------
> > Atenção! As mensagens deste grupo são de acesso
> público e de inteira
> responsabilidade de seus remetentes.
> > Acesse:
>
http://www.mail-archive.com/[email protected]/
> >
>
--------------------------------------------------------------------------
>
------------------------------------------------__________________________
__
> ______________________________________
> >
> > Este Grupo recebe o apoio da SQL Magazine -
> www.devmedia.com.br/sqlmagazine
> >
>
__________________________________________________________________
> > O grupo Oracle_br não aceita anexos. Quando
oferecer
> algum arquivo, tenha
> o link do mesmo para evitar trafego(pedidos)
> desnecessário.
> > Links do Yahoo! Grupos
> >
> >
> >
> >
> >
> >
> >
> >
>
>
>
--------------------------------------------------------------------------
------------------------------------------------
> Atenção! As mensagens deste grupo são de acesso
> público e de inteira responsabilidade de seus
> remetentes.
> Acesse:
>
http://www.mail-archive.com/[email protected]/
>
>
--------------------------------------------------------------------------
------------------------------------------------____________________________
______________________________________
>
> Este Grupo recebe o apoio da SQL Magazine -
> www.devmedia.com.br/sqlmagazine
>
__________________________________________________________________
> O grupo Oracle_br não aceita anexos. Quando oferecer
> algum arquivo, tenha o link do mesmo para evitar
> trafego(pedidos) desnecessário.
>
>
>
> ---------------------------------
> Links do Yahoo! Grupos
>
>    Para visitar o site do seu grupo na web, acesse:
> http://br.groups.yahoo.com/group/oracle_br/
>
>    Para sair deste grupo, envie um e-mail para:
> [EMAIL PROTECTED]
>
>    O uso que você faz do Yahoo! Grupos está sujeito
> aos Termos do Serviço do Yahoo!.
>
>
>
> __________________________________________________
> Faça ligações para outros computadores com o novo
Yahoo! Messenger
> http://br.beta.messenger.yahoo.com/
>
>
>
--------------------------------------------------------------------------
------------------------------------------------
> Atenção! As mensagens deste grupo são de acesso
público e de inteira
responsabilidade de seus remetentes.
> Acesse:
http://www.mail-archive.com/[email protected]/
>
--------------------------------------------------------------------------
------------------------------------------------____________________________
______________________________________
>
> Este Grupo recebe o apoio da SQL Magazine -
www.devmedia.com.br/sqlmagazine
>
__________________________________________________________________
> O grupo Oracle_br não aceita anexos. Quando oferecer
algum arquivo, tenha
o link do mesmo para evitar trafego(pedidos)
desnecessário.
> Links do Yahoo! Grupos
>
>
>
>
>
>
>
>


--------------------------------------------------------------------------------------------------------------------------
Atenção! As mensagens deste grupo são de acesso
público e de inteira responsabilidade de seus
remetentes.
Acesse:
http://www.mail-archive.com/[email protected]/

--------------------------------------------------------------------------------------------------------------------------__________________________________________________________________

Este Grupo recebe o apoio da SQL Magazine -
www.devmedia.com.br/sqlmagazine 
__________________________________________________________________
O grupo Oracle_br não aceita anexos. Quando oferecer
algum arquivo, tenha o link do mesmo para evitar
trafego(pedidos) desnecessário.

  
  
---------------------------------
Links do Yahoo! Grupos

   Para visitar o site do seu grupo na web, acesse:
http://br.groups.yahoo.com/group/oracle_br/
 
   Para sair deste grupo, envie um e-mail para:
[EMAIL PROTECTED]
 
   O uso que você faz do Yahoo! Grupos está sujeito
aos Termos do Serviço do Yahoo!.




        



        
                
_______________________________________________________ 
Yahoo! doce lar. Faça do Yahoo! sua homepage. 
http://br.yahoo.com/homepageset.html 



--------------------------------------------------------------------------------------------------------------------------
Atenção! As mensagens deste grupo são de acesso público e de inteira 
responsabilidade de seus remetentes.
Acesse: http://www.mail-archive.com/[email protected]/ 
--------------------------------------------------------------------------------------------------------------------------__________________________________________________________________

Este Grupo recebe o apoio da SQL Magazine - www.devmedia.com.br/sqlmagazine 
__________________________________________________________________
O grupo Oracle_br não aceita anexos. Quando oferecer algum arquivo, tenha o 
link do mesmo para evitar trafego(pedidos) desnecessário. 
Links do Yahoo! Grupos

<*> Para visitar o site do seu grupo na web, acesse:
    http://br.groups.yahoo.com/group/oracle_br/

<*> Para sair deste grupo, envie um e-mail para:
    [EMAIL PROTECTED]

<*> O uso que você faz do Yahoo! Grupos está sujeito aos:
    http://br.yahoo.com/info/utos.html

 


Responder a