Acesso lento

DBA Geral (instalação, configuração do banco, scripts do Sql*Plus, shell scripts, batch scripts, etc...)
Responder
fbarros300472
Rank: Analista Júnior
Rank: Analista Júnior
Mensagens: 73
Registrado em: Qui, 21 Set 2006 10:13 am
Localização: sp

Informações do Ambiente:
* Versão do Oracle: 10g
* Sistema Operacional: Red Hat 4

Pessoal, fizemos uma conversão de base em nosso ERP e depois disso, para acessar uma tabela, num primeiro acesso está bem lento(cadastro de produtos - leva 3 minutos - 30.000 linhas), num segundo acesso sem matar a seção da aplicação, fica bem rápido.

Acessando a base via plsql e fazendo um select dos produtos, está normal.

Gostaria de saber a opinião de vocês sobre o que poderia ser e qual a ação a desenvolver.

Obrigado.
marcelo_nunes
Rank: Programador Júnior
Rank: Programador Júnior
Mensagens: 17
Registrado em: Seg, 08 Set 2008 7:35 pm
Localização: Ribeirão Preto - SP
Marcelo Nunes
Analista/Desenvolvedor Oracle

A segunda consulta é mais rápida pois os dados já foram carregados na memória.
você está fazendo um select full na tabela ou utiliza alguma condição no where?
Esta tabela possui índices? Quando foi realizado o último analyze nela?

Cheque estas informações primeiramente...
fbarros300472
Rank: Analista Júnior
Rank: Analista Júnior
Mensagens: 73
Registrado em: Qui, 21 Set 2006 10:13 am
Localização: sp

O select é full. Me desculpe a ignorância, mas é que sou principiante. Como faço para executar um analyze ?

Obrigado.
marcelo_nunes
Rank: Programador Júnior
Rank: Programador Júnior
Mensagens: 17
Registrado em: Seg, 08 Set 2008 7:35 pm
Localização: Ribeirão Preto - SP
Marcelo Nunes
Analista/Desenvolvedor Oracle

Execute o seguinte comando subistituindo o *OWNER* pelo owner da tabela (o usuário dono da tabela) e o *NOME_DA_TABELA* pelo nome da tabela

Selecionar tudo

EXEC DBMS_STATS.GATHER_TABLE_STATS( OWNNAME          => '*OWNER*'
                                  , TABNAME          => '*NOME_DA_TABELA*'
                                  , ESTIMATE_PERCENT => dbms_stats.auto_sample_size
                                  ,METHOD_OPT        => 'for all columns size skewonly'
                                  );
vandclem
Rank: Programador Pleno
Rank: Programador Pleno
Mensagens: 40
Registrado em: Qua, 29 Abr 2009 10:42 am
Localização: ITAJAI-SC

Opa,lendo o topico fiquei curioso o que extamente esse analyse faz com a tabela?

valeu,também dou principiante...
fbarros300472
Rank: Analista Júnior
Rank: Analista Júnior
Mensagens: 73
Registrado em: Qui, 21 Set 2006 10:13 am
Localização: sp

Boa tarde Marcelo !

Excecutei o script que você me passou apresentou esses erros que não consegui resolver:

SQL> EXEC DBMS_STATS.GATHER_TABLE_STATS( OWNNAME => 'RM',

begin DBMS_STATS.GATHER_TABLE_STATS( OWNNAME => 'RM',; end;

ORA-06550: line 2, column 63:
PLS-00103: Encountered the symbol ";" when expecting one of the following:

( - + case mod new not null others <um identificador>
<um identificador delimitado por aspas duplas>
<uma variável de ligação> avg count current exists max min
prior sql stddev sum variance execute forall merge time
timestamp interval date
<um literal de string com especificação de conjunto de caracteres>
<um número> <uma string SQL com aspas simples> pipe
<um literal de string alternativamente entre aspas c
SQL> TABNAME => 'TPRD',
2 ESTIMATE_PERCENT => dbms_stats.auto_sample_size,
3 METHOD_OPT => 'for all columns size skewonly'
4 );

TABNAME => 'TPRD',
ESTIMATE_PERCENT => dbms_stats.auto_sample_size,
METHOD_OPT => 'for all columns size skewonly'
)

ORA-00900: invalid SQL statement
Responder
  • Informação
  • Quem está online

    Usuários navegando neste fórum: Nenhum usuário registrado e 1 visitante