Re: [oracle_br] Tamanho maximo TableSpace

2010-05-13 Por tôpico Lilian Barroso
Rafael

Como o tamanho máximo de um datafile é 2^22 blocos (4194304), ou seja, o 
tamanho máximo, em bytes, é a quantidade de blocos X o tamanho do bloco.

Se sua tablespace tiver apenas 1 datafile, ela crescerá até 32GB (caso o 
tamanho do bloco de dados de seu banco seja 8192 bytes).

Solução: como o Gerson disse, acrescente mais datafiles!

Caso queira saber mais: 
http://download.oracle.com/docs/cd/B19306_01/server.102/b14237/limits002.htm#i287915



Att,
Lílian Barroso




Re: [oracle_br] Re: Recuperação de dados

2009-06-19 Por tôpico Lilian Barroso
  Lucimar,
Bom dia.


Com relação à segunda situação, depende do ambiente: se o datafile for 
apagado em ambiente unix, e o banco não foi reiniciado, dá para 
recuperar.  Tem um post muito interessante no blog do Portilho sobre isso:

http://profissionaloracle.com.br/blogs/portilho/2009/05/24/recuperar-datafile-apagado-sem-backup/


Até mais,
Lílian Barroso
http://profissionaloracle.com.br/blogs/lilianbarroso/


RES: [oracle_br] "Alert Log " do sql server

2009-01-22 Por tôpico Lilian Barroso de Oliveira
Marcio,

E pessoal!

 

Obrigada pela força! Encontrei (com a ajuda do Portilho) o local: na minha
máquina, C:\Arquivos de programas\Microsoft SQL Server\MSSQL.1\MSSQL\LOG.

 

 

O “alert log” do SQL Server é chamado de “error log”, e não é tão completo.

 

 

Obrigada a todos,

 


 

 

Lílian Barroso

http://profissionaloracle.com.br/blogs/lilianbarroso

 

 

 

 

 

 

 

 

 

  _  

De: oracle_br@yahoogrupos.com.br [mailto:oracle...@yahoogrupos.com.br] Em
nome de MARCIO CASTRO
Enviada em: quinta-feira, 22 de janeiro de 2009 16:57
Para: oracle_br@yahoogrupos.com.br
Assunto: Res: [oracle_br] "Alert Log " do sql server

 

Eu acho que é no Gerenciamento do Computador/Ferramentas do
Sistema/Visualizar Eventos.

____
De: Lilian Barroso de Oliveira mailto:lilianbarroso%40yahoo.com.br> yahoo.com.br>
Para: Oracle-br mailto:oracle_br%40yahoogrupos.com.br>
os.com.br>; gpora...@yahoogrupo <mailto:GPOracle%40yahoogrupos.com.br>
s.com.br
Enviadas: Quinta-feira, 22 de Janeiro de 2009 13:52:33
Assunto: [oracle_br] "Alert Log " do sql server

Oi pessoal

Alguém saberia dizer se há (e onde fica) alguma estrutura como o alert log
do Oracle no Sql Server 2005?

Obrigada, 

Lílian Barroso

http://profissional oracle.com. br/blogs/ lilianbarroso

[As partes desta mensagem que não continham texto foram removidas]

Veja quais são os assuntos do momento no Yahoo! +Buscados
http://br.maisbusca <http://br.maisbuscados.yahoo.com> dos.yahoo.com

[As partes desta mensagem que não continham texto foram removidas]

 



[As partes desta mensagem que não continham texto foram removidas]



[oracle_br] "Alert Log " do sql server

2009-01-22 Por tôpico Lilian Barroso de Oliveira
Oi pessoal

 

Alguém saberia dizer se há (e onde fica) alguma estrutura  como o alert log
do Oracle no Sql Server 2005?

 

Obrigada, 


 

 

Lílian Barroso

http://profissionaloracle.com.br/blogs/lilianbarroso

 

 

 

 

 

 

 

 

 



[As partes desta mensagem que não continham texto foram removidas]



RES: [oracle_br] Marcarar senha em script no sqlplus

2009-01-20 Por tôpico Lilian Barroso de Oliveira
Gustavo!

Obrigada pela dica, deu certinho!

 

 


 

 

Lílian Barroso

http://profissionaloracle.com.br/blogs/lilianbarroso

 

 

 

 

 

 

 

 

 

  _  

De: oracle_br@yahoogrupos.com.br [mailto:oracle...@yahoogrupos.com.br] Em
nome de Gustavo Venturini de Lima
Enviada em: terça-feira, 20 de janeiro de 2009 10:20
Para: oracle_br@yahoogrupos.com.br
Assunto: Re: [oracle_br] Marcarar senha em script no sqlplus

 

Bom dia Lilian.
Coloque um accept no início do script para "receber" o valor da senha...
Faça algo parecido com isso:

ACCEPT senha CHAR PROMPT 'Senha: ' HIDE

Desta forma a entrada do usuário será substituída por ""...
Depois referencie sua variável como "&senha".

Att.

Gustavo Venturini.

2009/1/20 Lilian Barroso de Oliveira mailto:lilianbarroso%40yahoo.com.br> yahoo.com.br>

> Pessoal,
>
> Bom dia.
>
> Por favor, alguém sabe como mascarar senhas no em scripts no sqlplus?
>
> Por exemplo:
>
> conn user/&&se...@banco
>
> Com este comando, ele vai pedir um valor para a &senha. É a entrada deste
> valor que eu gostaria de mascarar.
>
> Obrigada,
>
> Lílian Barroso
>
> http://profissional <http://profissionaloracle.com.br/blogs/lilianbarroso>
oracle.com.br/blogs/lilianbarroso
>
> [As partes desta mensagem que não continham texto foram removidas]
>
> 
>

[As partes desta mensagem que não continham texto foram removidas]

 



[As partes desta mensagem que não continham texto foram removidas]



[oracle_br] Marcarar senha em script no sqlplus

2009-01-20 Por tôpico Lilian Barroso de Oliveira
Pessoal,

Bom dia.

 

 

Por favor, alguém sabe como mascarar senhas no em scripts no sqlplus?

 

Por exemplo: 

 

conn user/&&se...@banco

 

Com este comando, ele vai pedir um valor para a &senha. É a entrada deste
valor que eu gostaria de mascarar.

 

 

 

 

Obrigada, 


 

 

Lílian Barroso

http://profissionaloracle.com.br/blogs/lilianbarroso

 

 

 

 

 

 

 

 

 



[As partes desta mensagem que não continham texto foram removidas]



Re: [oracle_br] Oracle 10g x Oracle XE

2008-12-12 Por tôpico Lilian Barroso de Oliveira
Oi!

Seta a sua variável de ambiente TNS_ADMIN com o endereço do seu tns_names.

Na minha máquina, ficou:
TNS_ADMIN=C:\oracle\product\10.2.0\db_1\NETWORK\ADMIN\

Um abraço,
Lílian Barroso

> PessoALL,
>
> Eu tinha instalado em meu computador o client do Oracle 10g. Configurei o
> Listener e o TSNAMES.ora com as minhas conexões. Até aí tudo estava
> normal.
>
> Após tudo estar configurado, instalei a versão XE. Agora não consigo
> conexões com o meu TSN antigo (10g). Quando eu executo o tnsping ... ele
> me informa que o arquivo de parâmetros usado é o da ver~so XE.
>
> Como eu faço pra configurar o meu Oracle a buscar as informações contidas
> no TSNAMES do Oracle 10g?
>
>
>
>   Veja quais são os assuntos do momento no Yahoo! +Buscados
> http://br.maisbuscados.yahoo.com
>
> [As partes desta mensagem que não continham texto foram removidas]
>
>



Re: [oracle_br] problemas com login no oracle 10g

2008-12-02 Por tôpico Lilian Barroso de Oliveira
SQLPLUS é uma ferramenta da Oracle que serve de interface entre você e o
banco de dados, muito utilizada para administração.

Quando você instala o XE, é muito comum usar uma interface web, que
utiliza o browser para manipular o banco.

Provavelmente, o problema está com o navegador. Para ter certificar-se,
sugiro duas coisas:

 - Tenta entrar com uma versão atualizada do Internet Explorer

 ou

 - entra no executar e escreve SQLPLUS /NOLOG
   vai abrir uma tela do DOS com prompt SQL> , então escreve o comando
   CONN /AS SYSDBA
   se aparecer a mensagem CONECTADO. sua instalação está ok.


Atenciosamente,
Lílian Barroso


>
> amigo, utilizo o firefox.
> num tentei em outros não.
> sou
> iniciante, não sei o que é esse sqlplus.
> fiz o mesmo
> processo em outra maquina, com configuração de hardware
> diferente e funcionou legal!!!
> somente nesta dá este bug ou
> sei lá o que!
> pode explicar melhor como faço para
> conectar o sqlplus?
>
>
>
>> Qual navegador você
> está usando?Tentou em outros?Conecta via sqlplus?
>>
>>
>> 2008/11/28 <[EMAIL PROTECTED]>
>>
>>>
>>>
>>> pois é, instalei o oracle
> 10g express edition. minha maquina
>>> é um athlon 64 x2
> dual core 4800+ com 2Gb de ram e HD de 320.
>>>
>>>
>>> > Você está tentando instalr o banco
>>> EE?Qual é a config da sua maquina?
>>> >
>>> >
>>> >
>>> 2008/11/28 Júlio
> César Corrêa
>>> <[EMAIL PROTECTED]
> >
>>> >
>>>
>>> Você
>>> está tentando instalr o banco
> EE?Qual é a config da sua
>>> maquina?
>>>
>>>
>>> >>
>>> >>
>>>
>>>
>>> 2008/11/26 dheyfesson <[EMAIL PROTECTED]
> >
>>> >>
>>>
>>> olá pessoal, instalei o oracle 10g no meu computador
>>> (win XP), porem
>>> >>> não passo da
> pagina de login da
>>> pagina do banco de dados.
>>>

>>> >>> tenho
>>> certeza que
> minha senha esta correta, tanto é que não
>>>
> dá erro de
>>> >>> autenticação,
> mas
>>> só fica na tela de login.
>>>

>>> >>> ja
>>> fiz a
> reinstalação 3 vezes e dá o mesmo problema.
>>> >>>
>>> >>> o faço? podem me
> ajudar???
>>> >>>
>>> >>> desde
> já agradeço pela
>>> atenção!!!
>>> >>>
>>> >>>
>>>

>>> >>
>>> >>
>>>
>>>
>>> >>
>>> --
>>> >>
> Júlio César Corrêa
>>> >> IS
>>> Technologist - Oracle DBA
>>> >>
> http://jccorrea.blogspot.com
>>> >>
>>>
>>>
>>> >
>>> >
>>> > --
>>> >
>>> Júlio César Corrêa
>>> > IS Technologist - Oracle
>>> DBA
>>>
>> http://jccorrea.blogspot.com
>>> >
>>> >
>>> >
>>> [As partes desta mensagem que não
> continham texto foram
>>> removidas]
>>> >
>>> >
>>>
>>> [As partes desta mensagem que
> não continham texto foram removidas]
>>>
>>>
>>>
>>
>>
>>
>> --
>>
> Júlio César Corrêa
>> IS Technologist - Oracle
> DBA
>> http://jccorrea.blogspot.com
>>
>>
>>
> [As partes desta mensagem que não continham texto foram
> removidas]
>>
>>
>
>
> [As partes desta mensagem que não continham texto foram removidas]
>
>



Re: [oracle_br] Explain plan - note: cpu costing is off

2008-11-18 Por tôpico Lilian Barroso de Oliveira
Caro Carlos, dbms_stats.gather_system_stats e não adiantou... fiz isso há
3 dias e, depois, um pouco antes de postar esta mensagem.

Estranho, não?

É esta uma das minhas dúvidas: eu executei o pacote
> Boa tarde,
>
> O padrão no 9i é _optimizer_cost_model=choose, que só liga o cpu
> costing model se as estatisticas de sistema (sys.aux_stats$) forem
> coletadas  exec dbms_stats.gather_system_stats ...
>
> cya[]
> --
> Carlos E. Gorges <[EMAIL PROTECTED]>
>
> 2008/11/17 Lilian Barroso de Oliveira <[EMAIL PROTECTED]>:
>> Olá Caros,
>> Boa tarde.
>>
>> Gerei alguns planos de execução no projeto que estou trabalhando, e o há
>> uma nota ao final destes planos assim:
>>
>> cpu costing is off
>>
>> Alé disso, a coluna CPU_COST da plan_table tem apenas valores nulos.
>>
>> Por favor, alguém saberia explicar o que está acontecendo? E, como
>> trazer
>> o custo de CPU destes planos de execução, visto que são importantes no
>> trabalho de tuning de aplicação?
>>
>> Dados: Sistema operacional Windows de 32 bits
>> Oracle Oracle9i Release 9.2.0.8.0
>


Lílian B. Oliveira
Analista de Sistemas
Implantação - Teknisa SP



[oracle_br] Explain plan - note: cpu costing is off

2008-11-17 Por tôpico Lilian Barroso de Oliveira
Olá Caros,
Boa tarde.


Gerei alguns planos de execução no projeto que estou trabalhando, e o há
uma nota ao final destes planos assim:

cpu costing is off

Alé disso, a coluna CPU_COST da plan_table tem apenas valores nulos.

Por favor, alguém saberia explicar o que está acontecendo? E, como trazer
o custo de CPU destes planos de execução, visto que são importantes no
trabalho de tuning de aplicação?


Dados: Sistema operacional Windows de 32 bits
   Oracle Oracle9i Release 9.2.0.8.0
As estatísticas estão em dia e o optimizer_mode  está como CHOOSE


exemplo de explain plan:


SQL> explain plan for
  2  select * from ala;

Explicado.

SQL> select * from table (dbms_xplan.display);

PLAN_TABLE_OUTPUT



| Id  | Operation|  Name   | Rows  | Bytes | Cost  |

|   0 | SELECT STATEMENT | | 1 |50 | 2 |
|   1 |  TABLE ACCESS FULL   | ALA | 1 |50 | 2 |


Note: cpu costing is off

9 linhas selecionadas.

SQL>

___


Obrigada,

Lílian B. Oliveira
Analista de Sistemas
Implantação - Teknisa SP



[oracle_br] Dúvida com explain plan e função implícita

2008-10-07 Por tôpico Lilian Barroso de Oliveira
Caros Colegas,
Bom dia.


Por favor,observem o seguinte código SQL e seu plano de execução:

/* *** */
SELECT ITEMSOLI.CDFILSOLI AS CDFILIAL,
ITEMSOLI.DTPROGENTR,
ESTOQUE.CDPRODUTO,
ESTOQUE.CDPRODESTO,
ESTOQUE.VRFATOCONV,

SUM(ITEMSOLI.QTSOLIPROD*PRODUTO.VRFATOCONV/ESTOQUE.VRFATOCONV)
AS QTDECOMP
 FROM PRODUTO ESTOQUE,
  PRODUTO,
  ITEMSOLI
 WHERE DECODE(ITEMSOLI.IDITMCONS, NULL, 'N', 
ITEMSOLI.IDITMCONS) = 'N'
AND (ITEMSOLI.CDPRODUTO = PRODUTO.CDPRODUTO)
AND (PRODUTO.CDPRODESTO = ESTOQUE.CDPRODESTO)
AND (PRODUTO.CDARVPROD BETWEEN :B5 AND :B4 OR :B3 = 
'T')
AND ITEMSOLI.DTPROGENTR BETWEEN :B2 AND :B1
AND DECODE(ITEMSOLI.IDSOLIAPROV, NULL, 'S',
ITEMSOLI.IDSOLIAPROV) = 'S'
GROUP BY ITEMSOLI.CDFILSOLI,
 ITEMSOLI.DTPROGENTR,
 ESTOQUE.CDPRODUTO,
 ESTOQUE.CDPRODESTO,
 ESTOQUE.VRFATOCONV


PLAN_TABLE_OUTPUT


-
| Id  | Operation |  Name   | Rows  | Bytes | Cost  |
-
|   0 | SELECT STATEMENT  | |21 |  1722 |   127 |
|   1 |  SORT GROUP BY| |21 |  1722 |   127 |
|*  2 |   FILTER  | |   |   |   |
|*  3 |HASH JOIN  | |21 |  1722 |   124 |
|*  4 | HASH JOIN | |21 |  1281 |96 |
|*  5 |  TABLE ACCESS FULL| ITEMSOLI|21 |   672 |68 |
|*  6 |  TABLE ACCESS FULL| PRODUTO |42 |  1218 |27 |
|*  7 | TABLE ACCESS FULL | PRODUTO |  3377 | 70917 |27 |
-

Predicate Information (identified by operation id):
---

   2 - filter(TO_DATE(:Z)<=TO_DATE(:Z))
   3 - access("PRODUTO"."CDPRODESTO"="ESTOQUE"."CDPRODESTO")
   4 - access("ITEMSOLI"."CDPRODUTO"="PRODUTO"."CDPRODUTO")
   5 - filter(DECODE("ITEMSOLI"."IDSOLIAPROV",NULL,'S',"ITEMSOLI"."ID
  SOLIAPROV")='S' AND
DECODE("ITEMSOLI"."IDITMCONS",NULL,'N',"ITEMSO
LI"

  ."IDITMCONS")='N' AND "ITEMSOLI"."DTPROGENTR">=:Z AND
  "ITEMSOLI"."DTPROGENTR"<=:Z)
   6 - filter("PRODUTO"."CDPRODESTO" IS NOT NULL AND
  ("PRODUTO"."CDARVPROD">=:Z AND "PRODUTO"."CDARVPROD"<=:Z OR
:Z='T'
))

   7 - filter("ESTOQUE"."CDPRODESTO" IS NOT NULL)


/* *** */

Minha dúvida está na linha 7 do plano: O Predicate Information  indica que
está havendo um full table scan na tabela estoque (produto). Não entendi
de onde o Oracle "tirou" a expressão "ESTOQUE"."CDPRODESTO" IS NOT NULL.
Alguém poderia me ajudar?

(Oracle9i Release 9.2.0.8.0  for 32-bit Windows).



Att,
Lílian Barroso




Re: [oracle_br] FIAP, IBTA ou outras?

2008-08-18 Por tôpico Lilian Barroso de Oliveira
Caro José

Me formei pela IBTA neste último mês, graduação em banco de dados, e
realmente a faculdade é muito boa (tanto que todos da minha sala hoje
estão bem colocados no mercado). Os professores da graduação são os mesmos
da pós, excelentes,  e como tive acesso à grade do curso, recomendo
fortemente o IBTA.

Alguns colegas meus falam muito bem da FIAP, dizendo inclusive que ela
está no mesmo nível do IBTA.




> Bom dia galera.
>
> Gostaria de pedir uma opinião dos camaradas.
>
> Estou pesquisando pós graduação em bancos de dados e as únicas aqui em
> SP que encontrei foram: IBTA, FIAP e Uninove.
>
> Gostaria de saber a opinião de vocês quanto aos cursos.
>
> Eu estava pensando em fazer primeiramente Uninove devido ao baixo custo
> (cerca de 1/4 das outras) e minha inexperiência ainda em administração.
> Depois faria outra melhor e mais renomada, quando já tivesse uma certa
> experiência.
>
> Grato desde já.
>



Re: [oracle_br] Re: O que é Child Number (views gv$sql_plan)

2008-08-14 Por tôpico Lilian Barroso de Oliveira
Ok, Chiappa!

Ajudou muito esta resposta!


Obrigada,
Lílian Barroso


> Colega, é simples de entender uma vez que vc conheça o mecanismo de
> execuções de SQLs no banco Oracle : na verdade, childing  é um detalhe
> que normalmente não te dá muita abertura para tunning, eu até o
> retirei do material do Workshop justamente por isso, só expliquei o
> conceito em classe... Mas é o eguinte, quando um SQL é enviado para o
> banco pela primeira vez, entre outros trabalhos o banco TEM QUE montar
> um Plano de Excução para esse SQL, decidindo como serão acessadas as
> tabelas/índices presentes, quais métodos de join/leitura/execução
> serão empregados, etc. O ponto principal aqui é que o banco Oracle
> LEVA EM CONTA os settings, o "ambiente" da sessão aonde o plano foi
> montado : assim, por exemplo, se na sessão para a qual o plano foi
> montado foi setado um hash_area_size bem grande digamos, o otimizador
> é influenciado a querer usar um HASH JOIN, se foi setado um tamanho de
> I/O máximo bem alto via db_file_multiblock_read_count o otimizador
> pode vir a preferir table scans ao invés de index acess um bloco por
> vez, se mudou o datatype duma bind variable, etc. Ou ainda, vc pode
> ter uma aplicação DOENTINHA aonde não são usados bind variables
> corretamente, aí neguinho setou CURSOR_SHARING, diferenças são quase
> INEVITÁVEIS nesse caso...
>  Muito bem, uma vez esse SQL planificado, o Plano E O AMBIENTE
> gravados nas tabelas internas do banco, quando uma outra (ou a mesma)
> sessão executarem esse MESMO TEXTO DE SQL com ambiente DIFERENTE do
> registrado, o banco "sabe" que o plano PODE não ser ótimo, ou mesmo
> pode não ser viável (há settings que DESABILITAM determinados métodos
> de acesso/join, por exemplo), então nesses casos ele monta um novo
> plano para esse mesmo SQL, e "marca" esse plano com child number
> diferente de zero, é isso. Notar que o novo plano até PODE SER O MESMO
> que já existia, o que foi o seu caso pelo que vc diz : o ponto é que a
> análise para o banco verificar se o ambiente alterado implica em novo
> plano ou não é complexa, então a Oracle optou por de qualquer maneira
> já chamar mesmo a sub-rotina do kernel de geração de planos sem
> verificar, então até pode ocorrer de child cursors terem o mesmo plano
> que os pais, ok ? Via de regra isso de mesmo SQL ser executado com
> ambientes diferentes é ** incomum ** , então até por isso também a
> Oracle optou por não otimizar essa situação, SE no seu caso Realmente
> isso está ocorrendo muito muitíssimo (digamos, sei lá, 7 ou 8 de cada
> 10 SQLs de usuários tem clinds, e não é nem um nem dois, são muitos
> childs de cada SQL), provavelmente vc poderá poupar uns tantos  ciclos
> de CPU (e uns tantinhos de disco/RAM) se a alteração de ambiente puder
> ser evitada, evitando o childing, MAS NÂO PENSE que isso será
> altamente significativo, talvez só se vc realmente estiver atolada em
> uso de CPU
>Um exemplo (usarei aqui os recursos do 10g para identificar SQLs e
> planos, pra variar vc não deu a versão do seu bd Oracle então não sei
> se vc poderá reproduzir o exemplo, mas segue) :
>
> ==> crio e execute 2x um SQL qquer...
>
> [EMAIL PROTECTED]:SQL>variable x number;
> [EMAIL PROTECTED]:SQL>exec :x := 10;
>
> Procedimento PL/SQL concluído com sucesso.
>
> [EMAIL PROTECTED]:SQL>select empno, ename, sal from emp where deptno = :x;
>
>  EMPNO ENAME SAL
> -- -- --
>   7782 CLARK2450
>   7839 KING 5000
>   7934 MILLER   1300
>
> 3 linhas selecionadas.
>
> [EMAIL PROTECTED]:SQL>exec :x := 20;
>
> Procedimento PL/SQL concluído com sucesso.
>
> [EMAIL PROTECTED]:SQL>select empno, ename, sal from emp where deptno = :x;
>
>  EMPNO ENAME SAL
> -- -- --
>   7369 SMITH 800
>   7566 JONES2975
>   7788 SCOTT3000
>   7876 ADAMS1100
>   7902 FORD 3000
>
> 5 linhas selecionadas.
>
> ==> veja lá que NÂO houve mudança de ambiente, então NECA de childing :
>
> [EMAIL PROTECTED]:SQL>select SQL_ID, EXECUTIONS, CHILD_NUMBER, SQL_TEXT
>from v$sql where sql_text like 'select empno, ename, sal from emp%';
>
> SQL_IDEXECUTIONS CHILD_NUMBER SQL_TEXT
> - -- 
> ---
> axymrmdzmuc0p  20 select empno, ename, sal from
> emp where deptno = :x
>
> 1 linha selecionada.
>
> ==> agora vou executar rigorosamente O MESMO SQL, mas COM mudança de
> ambiente (datatypes de binds no caso) :
>
> [EMAIL PROTECTED]:SQL>exec :x := '10';
>
> Procedimento PL/SQL concluído com sucesso.
>
> [EMAIL PROTECTED]:SQL>select empno, ename, sal from emp where deptno = :x;
>
>

[oracle_br] O que é Child Number (views gv$sql_plan)

2008-08-08 Por tôpico Lilian Barroso de Oliveira
Olá a todos

Tenho trabalhado em um projeto de tuning de aplicação, que envolve análise
das queries através de planos de execução; uma das views que mais utilizo
para é a gv$sql_plan, que através de um join com a gv$sqlarea consigo
descobrir quais são os planos de execução em memória e quais estão sendo
utilizados.

Uma das coisas que me intrigam é o fato de que, as vezes, o Oracle
armazena o mesmo plano de acesso (inclusive com o mesmo custo) com Child
Numbers diferentes. Mas, o que é o Child Number? E, porque ele muda, sendo
que as vezes o plano de execução é o mesmo?

Por exemplo: A query abaixo traz todos os planos de execução em memória,
com custo e por instância, de uma certa query (identificada por
hash_value)
, e o plano que está em uso pelo Oracle
/*
(
SELECT  DISTINCT (SP.CHILD_ADDRESS) ,
SP.INST_ID,
SP.CHILD_NUMBER,
SP.HASH_VALUE,
SP.PLAN_HASH_VALUE,
MAX(SP.COST) CUSTO,
MAX(SP.IO_COST) CUSTO_IO,
MAX(SP.CPU_COST) CUSTO_CPU,
'' STATUS
FROM GV$SQL_PLAN SP
WHERE HASH_VALUE = 3643588562
GROUP BY SP.CHILD_ADDRESS, SP.INST_ID,CHILD_NUMBER, SP.HASH_VALUE,
SP.PLAN_HASH_VALUE
MINUS
SELECT  DISTINCT (SP.CHILD_ADDRESS) ,
SP.INST_ID,
SP.CHILD_NUMBER,
SP.HASH_VALUE,
SP.PLAN_HASH_VALUE,
MAX(SP.COST) CUSTO,
MAX(SP.IO_COST) CUSTO_IO,
MAX(SP.CPU_COST) CUSTO_CPU,
'' STATUS
FROM GV$SQL_PLAN SP ,
 GV$SQLAREA SA
WHERE SP.HASH_VALUE = 3643588562
  AND SP.CHILD_ADDRESS = SA.LAST_ACTIVE_CHILD_ADDRESS
GROUP BY SP.CHILD_ADDRESS,
 SP.INST_ID,CHILD_NUMBER,
 SP.HASH_VALUE,
 SP.PLAN_HASH_VALUE)
UNION
  SELECT  DISTINCT (SP.CHILD_ADDRESS) ,
  SP.INST_ID,
  SP.CHILD_NUMBER,
  SP.HASH_VALUE,
  SP.PLAN_HASH_VALUE,
  MAX(SP.COST) CUSTO,
  MAX(SP.IO_COST) CUSTO_IO,
  MAX(SP.CPU_COST) CUSTO_CPU,
  'EM USO' STATUS
  FROM GV$SQL_PLAN SP ,
   GV$SQLAREA SA
  WHERE SP.HASH_VALUE = 3643588562
 AND SP.CHILD_ADDRESS = SA.LAST_ACTIVE_CHILD_ADDRESS
  GROUP BY SP.CHILD_ADDRESS,
SP.INST_ID,
CHILD_NUMBER,
SP.HASH_VALUE,
SP.PLAN_HASH_VALUE
  ORDER BY INST_ID,
   CHILD_NUMBER

*/

resultado:

/*
CHILD_ADDRESS   INST_ID CHILD_NUMBER HASH_VALUE PLAN_HASH_VALUE 
CUSTO   CUSTO_IO  CUSTO_CPU STATUS
 --  -- ---
-- -- --
00024E1F0F20  10 3643588562  2999871912   
209207   19905805
0002234F3380  11 3643588562  2999871912   
209207   19905804
000254DE3D00  12 3643588562  2999871912   
209207   19905804 EM USO
00022728E810  20 3643588562  2999871912   
209207   19905804
00019FCC8BD8  21 3643588562  2999871912   
209207   19905804 EM USO
00029AFACFA0  30 3643588562  2999871912   
209207   19905805
0002965FD790  31 3643588562  2999871912   
209207   19905804
00022AA0A328  32 3643588562  2999871912   
209207   19905804
00021D858778  33 3643588562  2999871912   
209207   19905804
00017F67D698  34 3643588562  2999871912   
209207   19905804 EM USO
0001649F3BB0  35 3643588562  2999871912   
209207   19905804

*/

Observem que a mesma query tem o mesmo plano de execução para as três
instâncias, mas para cada instância há vários child number diferentes .
Alguém saberia dizer o que ele significa?

(Ah, se alguém quiser aperfeiçoar a query, esteja a vontade!)



Obrigada,
Lílian Barroso




[oracle_br] Re: [oracle _br] Explain plan: significado das "notas de rodapé"

2008-08-08 Por tôpico Lilian Barroso de Oliveira
Valeu a ambos!

Lílian
> Grande Rodrigo
>
> Valeu pela observação! Obrigado!
>
> [ ]
>
> André
>
>
> Em 08/08/08, Rodrigo Mufalani <[EMAIL PROTECTED]> escreveu:
>>
>>
>> André,
>>
>> Como tudo no mundo Oracle tem seus dois lados da moeda, há casos que
>> o Dynamic sampling é recomendado sim.
>>
>> Tabelas que normalmente são muito atualizadas. Você pode deletar as
>> estatísticas e fazer lock das estatísticas das mesmas.
>>
>> Com isso o oracle pode se beneficiar no uso do dynamic sampling.
>>
>> Atenciosamente,
>>
>> Rodrigo Mufalani
>> OCP 10g & 11g
>> [EMAIL PROTECTED] 
>>
>> > Mensagem Original:
>> > Data: 16:58:02 08/08/2008
>> > De: Andre Santos
>> <[EMAIL PROTECTED]
>> >
>> > Assunto: Re: [oracle_br] Explain plan: significado das "notas de
>> rodapé"
>>
>> > Lílian
>> >
>> > Só complementando o que o Rodrigo explicou, o "dynamic sampling"
>> ocorre
>> > porque:
>> >
>> > - O otimizador está configurado em "choose", ou seja, utilizará CBO
>> sempre
>> > que possível.
>> >
>> > - Na consulta há tabela(s) com estatística e tabela(s) sem
>> estatística...
>> aí
>> > o otimizador fará uma coleta de "amostra" automaticamente (e
>> temporária
>> > apenas para a execução) dessa(s) tabela(s) sem estatística, para
>> determinar
>> > o plano de acesso da consulta. E isso não é recomendável.
>> >
>> > Verifique as tabelas que estejam sem estatística e faça a coleta para
>> elas.
>> > [ ]
>> >
>> > André
>> >
>> >
>> > Em 08/08/08, Rodrigo Mufalani <[EMAIL PROTECTED]
>> >
>> escreveu:
>> >
>> >>
>> >> Provavelmente vc tem no schema uma plan_table criada de uma versão
>> >> anterior a 10.2 o script para criar a plan_table na versão correta
>> >> está em:
>> >>
>> >> $ORACLE_HOME/rdbms/admin/utlxplan.sql
>> >>
>> >> Dá uma procurada sobre dinamyc sampling... isso é para coletar
>> >> estatísticas em tempo de execução.
>> >>
>> >> Atenciosamente,
>> >>
>> >> Rodrigo Mufalani
>> >> OCP 10g & 11g
>> >> [EMAIL PROTECTED]  
>> >>
>> >> > Mensagem Original:
>> >> > Data: 16:13:02 08/08/2008
>> >> > De: Lilian Barroso de Oliveira
>> >> <[EMAIL PROTECTED] 
>> 
>> >> >
>> >> > Assunto: [oracle_br] Explain plan: significado das "notas de
>> rodapé"
>> >>
>> >> > Olá a todos!
>> >> >
>> >> >
>> >> > Estou em um projeto de tuning de aplicação e, ao gerar planos de
>> execução
>> >> > das queries, sempre há uma nota de rodaté (note), que na maioria
>> dos
>> >> casos
>> >> > é:
>> >> > "
>> >> > Note
>> >> > -
>> >> > - 'PLAN_TABLE' is old version
>> >> > "
>> >> >
>> >> > Além desta mensagem, apenas uma vez eu vi a seguinte:
>> >> > "
>> >> > Note
>> >> > -
>> >> > - dynamic sampling used for this statement
>> >> > "
>> >> >
>> >> > Alguém saberia explicar o que significam estas mensagens?(Utilizo o
>> >> Oracle
>> >> > 10.2 )
>> >> >
>> >> >
>> >> > Obrigada,
>> >> > Lílian Barroso
>> >> >
>> >> > 
>> >> >
>> >> > --
>> >> >> Atenção! As mensagens do grupo ORACLE_BR são de acesso público e
>> de
>> >> >> inteira responsabilidade de seus remetentes.
>> >> > Acesse: http://www.mail-archive.com/oracle_br@yahoogrupos.com.br/
>> >> > --
>> >> >> Funções, Procedures, propostas de emprego - O GRUPO ORACLE_BR TEM
>> >> >> SEU PROPRIO ESPAÇO! VISITE: http://www.oraclebr.com.br/
>> >> > -- Links do
>> >> Yahoo!
>> >> > Grupos
>> >> >
>> >> >
>> 

[oracle_br] Explain plan: significado das "notas de rodapé"

2008-08-08 Por tôpico Lilian Barroso de Oliveira
Olá a todos!


Estou em um projeto de tuning de aplicação e, ao gerar planos de execução
das queries, sempre há uma nota de rodaté (note), que na maioria dos casos
é:
"
Note
-
   - 'PLAN_TABLE' is old version
"

Além desta mensagem, apenas uma vez eu vi a seguinte:
"
Note
-
   - dynamic sampling used for this statement
"

Alguém saberia explicar o que significam estas mensagens?(Utilizo o Oracle
10.2 )


Obrigada,
Lílian Barroso


[oracle_br] Re: [oracle _br] Como forçar uma tabela a ficar em memória

2008-08-01 Por tôpico Lilian Barroso de Oliveira
Augustinho

Creio que você possa utilizar a opção de criar uma GLOBAL TEMPORARY TABLE
(são tabelas temporárias que todos os dados são tratados em nível de
"memória", até o valor máximo de SORT_AREA_SIZE). Dá uma olhada no link
abaixo:

http://www.psoug.org/reference/gtt.html

Um Abraço,
Lílian Barroso


> Use essa opção
>
> ALTER TABLE x CACHE ;
>
>   - Original Message -
>   From: Augustinho K. Segundo
>   To: oracle_br@yahoogrupos.com.br
>   Sent: Friday, August 01, 2008 10:30 AM
>   Subject: [oracle_br] Como forçar uma tabela a ficar em memória
>
>
>   Oi Pessoal,
>   Estou precisando de uma ajuda!
>   temos uma tabela que precisamos forçar a ficar residente em memória,
>   não estou conseguindo encontrar como fazer, alguem pode me ajudar
>   nisso?
>   desde já obrigado.
>
>   Estamos usando Oracle 10g
>
>   Abs.,
>
>   Augustinho K. Segundo
>
>
>
>
> [As partes desta mensagem que não continham texto foram removidas]
>
>





Re: [oracle_br] Qual a media de salario para um DBA Jr

2008-07-28 Por tôpico Lilian Barroso de Oliveira
Eu conheço vários DBAs sem certificação.
Certificação é um diferencial, não um item obrigatório.


> Meu amigo, isso é relativo,
>
> trabalho como DBA e não tenho certificação... o Chiappa, até onde eu
> sei... tbm não tem
>
> o Reginaldo.. tbm manja... tem OCA
>
> isso é relativo.. abraço.!
>
>   - Original Message -
>   From: José Costacurta
>   To: oracle_br@yahoogrupos.com.br
>   Sent: Monday, July 28, 2008 10:45 AM
>   Subject: Re: [oracle_br] Qual a media de salario para um DBA Jr
>
>
>   E com OCP? É possível já entrar como Pleno com OCP? Se sim, qual a
> média?
>
>   Diego Moura wrote:
>   >
>   > Com experiência uns 3500,00 a 4200,00
>   > Sem experiencia uns 2800,00 a 3200,00
>   >
>   > 2008/7/27 josuemrosario <[EMAIL PROTECTED]
>   > >
>   >
>   > > Qual seria a média de salário para quem está começando como DBA Jr
> em
>   > > uma empresa de grande porte(Multinacional) e que possua a
> certificação
>   > > OCA?.
>   > >
>   > > Obrigado.
>   > >
>   > >
>   > >
>   >
>   > --
>   > Diego Antonio Moura
>   > (15)33434634/97597005
>   >
>   > [As partes desta mensagem que não continham texto foram removidas]
>   >
>   >
>
>
>
>
> [As partes desta mensagem que não continham texto foram removidas]
>
>



Re: [oracle_br] Eventos de Epera Lock Contention

2008-07-28 Por tôpico Lilian Barroso de Oliveira
Existem algumas views que vc pode consultar:
- dba_lock e v$locked_object para descobrir quem está em lock e quais
objetos envolvidos;
- dba_objects - para saber o tipo do objeto e
- dba_table, dba_indexes  conforme o tipo de objeto, para saber
maiores detalhes.


Um abraço,
Lílian Barroso


> Olá pessoal, estou um probleminha aqui na empresa, gostaria de saber qual
> o objeto que está entrado em lock,
>
> não apenas o objeto, ex.
>
> Objeto, Extent, bloco, ai indo para quem está requisitando esse objeto.
>
> alguem tem algo assim, não achei nada na net para verificar essa
> informação.?
>
> att,
>
> Welvis Douglas
>
> [As partes desta mensagem que não continham texto foram removidas]
>
>




Re: [oracle_br] UPDATE de um campo com valor de outro campo

2008-07-25 Por tôpico Lilian Barroso de Oliveira
Executa apenas o subselect, separadamente, e veja quantas linhas retornam

SELECT campo.tabelaB FROM tabelaA, tabelaB, tabelaC
WHERE condições_especificas

caso retorne mais de uma linha, utilize IN no lugar de =.

Um abraço,
Lílian Barroso



> Bom dia,
> estou precisando da ajuda de vocês...
>
> Não estou conseguindo fazer o seguinte update:
>
> UPDATE tabelaA SET campo.tabelaA = campo.tabelaB
> WHERE campo.tabelaA =
> (
> SELECT campo.tabelaB FROM tabelaA, tabelaB, tabelaC
> WHERE condições_especificas
> )
>
>
> O seguinte erro acontece:
>
> "ORA-01427: single-row subquery returns more than one row."
>
> Só que eu estou selecionando na subquery apenas uma coluna, como pode
> ver no exemplo acima.
> E então ele nao está aceitando porque diz que o select está trazendo
> mais de uma linha.
> Eu não tenho muita experiencia com as funções do Oracle.
> Já tentei usar o exemplo sugerido aqui
> (http://www.techonthenet.com/oracle/errors/ora01427.php), mas pelos
> select que fiz antes, os valores que foram retornados usando esse
> exemplo eram diferentes do valor correto.
>
> O que mais preciso fazer para que meu update de certo? Algo com Join?
> pode me ajudar com um exemplo de update com join ou sem ?  Estou
> precisando muito.
>
> Obrigada a todos.
>
> Izis Filipaldi
> Tecmedd - TI
> Ribeirão Preto/SP
>
>
>
>