Re: [oracle_br] Re: Consulta muito lenta!!

2017-12-19 Por tôpico jlchia...@yahoo.com.br [oracle_br]
Então  : comparando o plano original com o novo plano obtido pelo profile, ok 
até mudou o método de acesso mas a Diferença de cardinalidade ao se usar esse 
tal índice  BKPF~0 é ** brutal **, é muita coisa mesmo - assim se esse índice 
Já Existia, o fato de ele não ter sido usado indica que vc deve ter um problema 
Sério de coleta de estatísticas aí... Talvez o tamanho da amostra seja pequeno 
demais, talvez esteja faltando histogramas, talvez a frequência de coleta não 
esteja ótima... Alguma coisa de errada não está certa nesse ambiente...
  Já que cfrme sabemos o SAP não deixa vc mudar nada no banco sozinho,  imho vc 
tem informação MAIS QUE SUFICIENTE pra demandar com o pessoal do SAP 
esclarecimentos e análise de alteração no procedimento de coleta de 
estatísticas
  
  []s
  
Chiappa

Re: Assunto: [oracle_br] Consulta muito lenta!!

2017-12-19 Por tôpico Rafael Mendonca raffaell.t...@yahoo.com [oracle_br]
O problema ja foi resolvido Emerson, conforme escrevi no primeiro topico, a 
view seria inviavel. 

Em Terça-feira, 19 de Dezembro de 2017 16:01, "Emerson Moreira Rocha 
tkz...@yahoo.com.br [oracle_br]"  escreveu:
 

     Não dá pra fazer uma mview atualizável?

Enviado do Yahoo Mail no Android 
 
  Em sex, 15 15e dez 15e 2017 às 10:57, Rafael Mendonca raffaell.t...@yahoo.com 
[oracle_br]&It;oracle_br@yahoogrupos.com.br> escreveu:       Senhores, bom dia.
Preciso de uma grande ajuda dos especialistas.
Ambiente single instance, file system, EE 11.2.0.3Options: diagnostic and 
tuning pack, in memory, advanced compression, partitioning

Possuo uma query do sistema SAP (standard SAP), ou seja, nao existe alternativa 
para mudança estrutural da consulta, nem por hint na consulta, nem nada, por 
ser standard. O que é possível fazer é tudo a nível de banco de dados, como 
criação de sql patch, rewrite etc...
Pois bem, vamos aos detalhes:
A consulta envolve 2 tabelas e 2 índices, cada um com seus respectivos tamanhos 
abaixo:
tabela x1: 400GBtabela x2:160GBIndice tab x1: 140GBIndice tab x2: 2GB
Duracao da consulta: 16 minutos
OBS: Os segmentos envoldios nao possuem PARTICIONAMENTO ou COMPRESSAO.
COnsulta abaixo:
http://textuploader.com/dcreu


Plano de execucao abaixo (SELECT * FROM table(dbms_xplan.display_cursor)):

http://textuploader.com/dcre7



Alternativas 1:
A criacao de uma Mview para a consulta em questao, porem o SAP nao pode 
direcionar o relatorio para a MVIew, entao pensei na rewrite para forcar ao ler 
o sqlid utilizar Mview, porem se as mview nao estiver totalmente atualizada com 
as tabelas envolvidas a Mview nao sera lida, ou seja, a tabela em questao 
possui 2 bilhoes de registros, eh alterada o tempo inteiro, ou seja, sem chance.
Alternativa 2: realizar um compression OLTP nas tabelas envolvidas, o que 
acham? Problema sera a carga de DML nessas tabelas, me preocupo com a lentidao 
dos inserts, updates e deletes.
Alternativa 3: Particionamento. Porem precisamos de uma solucao rapida, ira 
entrar um processo de auditoria e nao temos tempo para essa implementacao.
Alguem pode ajudar nessa dificil missao?

  #yiv3378312260 #yiv3378312260 -- #yiv3378312260ygrp-mkp {border:1px solid 
#d8d8d8;font-family:Arial;margin:10px 0;padding:0 10px;}#yiv3378312260 
#yiv3378312260ygrp-mkp hr {border:1px solid #d8d8d8;}#yiv3378312260 
#yiv3378312260ygrp-mkp #yiv3378312260hd 
{color:#628c2a;font-size:85%;font-weight:700;line-height:122%;margin:10px 
0;}#yiv3378312260 #yiv3378312260ygrp-mkp #yiv3378312260ads 
{margin-bottom:10px;}#yiv3378312260 #yiv3378312260ygrp-mkp .yiv3378312260ad 
{padding:0 0;}#yiv3378312260 #yiv3378312260ygrp-mkp .yiv3378312260ad p 
{margin:0;}#yiv3378312260 #yiv3378312260ygrp-mkp .yiv3378312260ad a 
{color:#ff;text-decoration:none;}#yiv3378312260 #yiv3378312260ygrp-sponsor 
#yiv3378312260ygrp-lc {font-family:Arial;}#yiv3378312260 
#yiv3378312260ygrp-sponsor #yiv3378312260ygrp-lc #yiv3378312260hd {margin:10px 
0px;font-weight:700;font-size:78%;line-height:122%;}#yiv3378312260 
#yiv3378312260ygrp-sponsor #yiv3378312260ygrp-lc .yiv3378312260ad 
{margin-bottom:10px;padding:0 0;}#yiv3378312260 #yiv3378312260actions 
{font-family:Verdana;font-size:11px;padding:10px 0;}#yiv3378312260 
#yiv3378312260activity 
{background-color:#e0ecee;float:left;font-family:Verdana;font-size:10px;padding:10px;}#yiv3378312260
 #yiv3378312260activity span {font-weight:700;}#yiv3378312260 
#yiv3378312260activity span:first-child 
{text-transform:uppercase;}#yiv3378312260 #yiv3378312260activity span a 
{color:#5085b6;text-decoration:none;}#yiv3378312260 #yiv3378312260activity span 
span {color:#ff7900;}#yiv3378312260 #yiv3378312260activity span 
.yiv3378312260underline {text-decoration:underline;}#yiv3378312260 
.yiv3378312260attach 
{clear:both;display:table;font-family:Arial;font-size:12px;padding:10px 
0;width:400px;}#yiv3378312260 .yiv3378312260attach div a 
{text-decoration:none;}#yiv3378312260 .yiv3378312260attach img 
{border:none;padding-right:5px;}#yiv3378312260 .yiv3378312260attach label 
{display:block;margin-bottom:5px;}#yiv3378312260 .yiv3378312260attach label a 
{text-decoration:none;}#yiv3378312260 blockquote {margin:0 0 0 
4px;}#yiv3378312260 .yiv3378312260bold 
{font-family:Arial;font-size:13px;font-weight:700;}#yiv3378312260 
.yiv3378312260bold a {text-decoration:none;}#yiv3378312260 dd.yiv3378312260last 
p a {font-family:Verdana;font-weight:700;}#yiv3378312260 dd.yiv3378312260last p 
span {margin-right:10px;font-family:Verdana;font-weight:700;}#yiv3378312260 
dd.yiv3378312260last p span.yiv3378312260yshortcuts 
{margin-right:0;}#yiv3378312260 div.yiv3378312260attach-table div div a 
{text-decoration:none;}#yiv3378312260 div.yiv3378312260attach-table 
{width:400px;}#yiv3378312260 div.yiv3378312260file-title a, #yiv3378312260 
div.yiv3378312260file-title a:active, #yiv3378312260 
div.yiv3378312260file-title a:hover, #yiv3378312260 div.yiv3378312260file-title 
a:visited {text-decoration:none

Assunto: [oracle_br] Consulta muito lenta!!

2017-12-19 Por tôpico Emerson Moreira Rocha tkz...@yahoo.com.br [oracle_br]
Não dá pra fazer uma mview atualizável?

Enviado do Yahoo Mail no Android 
 
  Em sex, 15 15e dez 15e 2017 às 10:57, Rafael Mendonca raffaell.t...@yahoo.com 
[oracle_br]&It;oracle_br@yahoogrupos.com.br> escreveu:       

Senhores, bom dia.
Preciso de uma grande ajuda dos especialistas.
Ambiente single instance, file system, EE 11.2.0.3Options: diagnostic and 
tuning pack, in memory, advanced compression, partitioning

Possuo uma query do sistema SAP (standard SAP), ou seja, nao existe alternativa 
para mudança estrutural da consulta, nem por hint na consulta, nem nada, por 
ser standard. O que é possível fazer é tudo a nível de banco de dados, como 
criação de sql patch, rewrite etc...
Pois bem, vamos aos detalhes:
A consulta envolve 2 tabelas e 2 índices, cada um com seus respectivos tamanhos 
abaixo:
tabela x1: 400GBtabela x2:160GBIndice tab x1: 140GBIndice tab x2: 2GB
Duracao da consulta: 16 minutos
OBS: Os segmentos envoldios nao possuem PARTICIONAMENTO ou COMPRESSAO.
COnsulta abaixo:
http://textuploader.com/dcreu


Plano de execucao abaixo (SELECT * FROM table(dbms_xplan.display_cursor)):

http://textuploader.com/dcre7



Alternativas 1:
A criacao de uma Mview para a consulta em questao, porem o SAP nao pode 
direcionar o relatorio para a MVIew, entao pensei na rewrite para forcar ao ler 
o sqlid utilizar Mview, porem se as mview nao estiver totalmente atualizada com 
as tabelas envolvidas a Mview nao sera lida, ou seja, a tabela em questao 
possui 2 bilhoes de registros, eh alterada o tempo inteiro, ou seja, sem chance.
Alternativa 2: realizar um compression OLTP nas tabelas envolvidas, o que 
acham? Problema sera a carga de DML nessas tabelas, me preocupo com a lentidao 
dos inserts, updates e deletes.
Alternativa 3: Particionamento. Porem precisamos de uma solucao rapida, ira 
entrar um processo de auditoria e nao temos tempo para essa implementacao.
Alguem pode ajudar nessa dificil missao?
  #yiv6344813816 #yiv6344813816 -- #yiv6344813816ygrp-mkp {border:1px solid 
#d8d8d8;font-family:Arial;margin:10px 0;padding:0 10px;}#yiv6344813816 
#yiv6344813816ygrp-mkp hr {border:1px solid #d8d8d8;}#yiv6344813816 
#yiv6344813816ygrp-mkp #yiv6344813816hd 
{color:#628c2a;font-size:85%;font-weight:700;line-height:122%;margin:10px 
0;}#yiv6344813816 #yiv6344813816ygrp-mkp #yiv6344813816ads 
{margin-bottom:10px;}#yiv6344813816 #yiv6344813816ygrp-mkp .yiv6344813816ad 
{padding:0 0;}#yiv6344813816 #yiv6344813816ygrp-mkp .yiv6344813816ad p 
{margin:0;}#yiv6344813816 #yiv6344813816ygrp-mkp .yiv6344813816ad a 
{color:#ff;text-decoration:none;}#yiv6344813816 #yiv6344813816ygrp-sponsor 
#yiv6344813816ygrp-lc {font-family:Arial;}#yiv6344813816 
#yiv6344813816ygrp-sponsor #yiv6344813816ygrp-lc #yiv6344813816hd {margin:10px 
0px;font-weight:700;font-size:78%;line-height:122%;}#yiv6344813816 
#yiv6344813816ygrp-sponsor #yiv6344813816ygrp-lc .yiv6344813816ad 
{margin-bottom:10px;padding:0 0;}#yiv6344813816 #yiv6344813816actions 
{font-family:Verdana;font-size:11px;padding:10px 0;}#yiv6344813816 
#yiv6344813816activity 
{background-color:#e0ecee;float:left;font-family:Verdana;font-size:10px;padding:10px;}#yiv6344813816
 #yiv6344813816activity span {font-weight:700;}#yiv6344813816 
#yiv6344813816activity span:first-child 
{text-transform:uppercase;}#yiv6344813816 #yiv6344813816activity span a 
{color:#5085b6;text-decoration:none;}#yiv6344813816 #yiv6344813816activity span 
span {color:#ff7900;}#yiv6344813816 #yiv6344813816activity span 
.yiv6344813816underline {text-decoration:underline;}#yiv6344813816 
.yiv6344813816attach 
{clear:both;display:table;font-family:Arial;font-size:12px;padding:10px 
0;width:400px;}#yiv6344813816 .yiv6344813816attach div a 
{text-decoration:none;}#yiv6344813816 .yiv6344813816attach img 
{border:none;padding-right:5px;}#yiv6344813816 .yiv6344813816attach label 
{display:block;margin-bottom:5px;}#yiv6344813816 .yiv6344813816attach label a 
{text-decoration:none;}#yiv6344813816 blockquote {margin:0 0 0 
4px;}#yiv6344813816 .yiv6344813816bold 
{font-family:Arial;font-size:13px;font-weight:700;}#yiv6344813816 
.yiv6344813816bold a {text-decoration:none;}#yiv6344813816 dd.yiv6344813816last 
p a {font-family:Verdana;font-weight:700;}#yiv6344813816 dd.yiv6344813816last p 
span {margin-right:10px;font-family:Verdana;font-weight:700;}#yiv6344813816 
dd.yiv6344813816last p span.yiv6344813816yshortcuts 
{margin-right:0;}#yiv6344813816 div.yiv6344813816attach-table div div a 
{text-decoration:none;}#yiv6344813816 div.yiv6344813816attach-table 
{width:400px;}#yiv6344813816 div.yiv6344813816file-title a, #yiv6344813816 
div.yiv6344813816file-title a:active, #yiv6344813816 
div.yiv6344813816file-title a:hover, #yiv6344813816 div.yiv6344813816file-title 
a:visited {text-decoration:none;}#yiv6344813816 div.yiv6344813816photo-title a, 
#yiv6344813816 div.yiv6344813816photo-title a:active, #yiv6344813816 
div.yiv6344813816photo-title a:hover, #yiv6344813816 
div.yiv6344813816photo-title a:visited {text-decoration

Re: [oracle_br] Re: Consulta muito lenta!!

2017-12-19 Por tôpico Rafael Mendonca raffaell.t...@yahoo.com [oracle_br]
Esse indice FAGLFLEXA~2 eu fiz rebuild, mas nao adiantou de absolutamente nada. 
O restante nao foi alterado, nem indice criado nem dropado.
Algumas das informacoes do SQLT:
DBMS_STATS SYSTEM STATISTICS Single-block read time of 1.138 milliseconds seems 
too small.Index coalesce candidate. (para quase todos os indices dos segmentos 
envolvidos aparece esse advisor)Index with fluctuating BLEVELSample size of 
1593658 rows may be too small for column with histogram. Sample percent used 
was:0.10%. (Essa mensagem tb aparece para todas as colunas da tabela FAGLFLEXA)
A coleta de estatística é feita pelo sistema SAP.
 

Em Terça-feira, 19 de Dezembro de 2017 15:08, "jlchia...@yahoo.com..br 
[oracle_br]"  escreveu:
 

     Ok que o vc contornou seu 'problema', mas alguma coisa muito esquisita 
estava acontecendo aí : no plano original vc tinha (elimino a coluna do ID e do 
tempo só para caber melhor aqui no post) :


| Operation | Name    | Rows  | Bytes |TempSpc| Cost 
(%CPU)|

| SELECT STATEMENT  | |   |   |   | 54953 
(100)|
|  FILTER   | |   |   |   | 
   |
|   HASH JOIN   | |  1280K|   398M|   277M| 54952   
(1)|
|    TABLE ACCESS BY INDEX ROWID| FAGLFLEXA   |  1280K|   262M|   |  8463   
(1)|
| INDEX RANGE SCAN  | FAGLFLEXA~2 |   398K|   |   |   440   
(1)|
|    TABLE ACCESS BY INDEX ROWID| BKPF    |  2499K|   264M|   | 18178   
(1)|
| INDEX SKIP SCAN   | BKPF~BUT    |  2499K|   |   |  2599   
(2)|



E a nova versão :


-
| Operation  | Name    | Rows  | Bytes | Cost (%CPU)|
-
| SELECT STATEMENT   | |   |   |    11 (100)|
|  FILTER    | |   |   |    |
|   NESTED LOOPS | |   |   |    |
|    NESTED LOOPS    | |    31 | 10075 |    10   (0)|
| TABLE ACCESS BY INDEX ROWID| FAGLFLEXA   |    31 |  6634 | 1   (0)|
|  INDEX RANGE SCAN  | FAGLFLEXA~2 |    10 |   | 1   (0)|
| INDEX UNIQUE SCAN  | BKPF~0  | 1 |   | 0   (0)|
|    TABLE ACCESS BY INDEX ROWID | BKPF    | 1 |   111 | 0   (0)|
-


==> Perceba que as qtdades de linhas envolvidas passaram de coisa de milhão pra 
coisa de dezenas de linhas : vc já tinha disponível esse índice BKPF ? Vc 
recriou (tirando ou adicionando colunas, talvez ?) esse índice FAGLFLEXA~2 ? 
COMO É que o Otimizador errou por uma margem tão larga, estimando no plano 
original que o hash join iria criar (E provavelmente CRIOU, dado o consumo de 
temp space!!) tabela hash de vários milhões E agora no novo plano não chega nem 
perto ?? Será que as Estatísticas estavam assim tão defasadas ??? Ou como eu 
disse vc mudou as regras do jogo, criando um novo índice e/ou alterando os que 
existiam ??

[]s

  Chiappa  #yiv2597863981 #yiv2597863981 -- #yiv2597863981ygrp-mkp {border:1px 
solid #d8d8d8;font-family:Arial;margin:10px 0;padding:0 10px;}#yiv2597863981 
#yiv2597863981ygrp-mkp hr {border:1px solid #d8d8d8;}#yiv2597863981 
#yiv2597863981ygrp-mkp #yiv2597863981hd 
{color:#628c2a;font-size:85%;font-weight:700;line-height:122%;margin:10px 
0;}#yiv2597863981 #yiv2597863981ygrp-mkp #yiv2597863981ads 
{margin-bottom:10px;}#yiv2597863981 #yiv2597863981ygrp-mkp .yiv2597863981ad 
{padding:0 0;}#yiv2597863981 #yiv2597863981ygrp-mkp .yiv2597863981ad p 
{margin:0;}#yiv2597863981 #yiv2597863981ygrp-mkp .yiv2597863981ad a 
{color:#ff;text-decoration:none;}#yiv2597863981 #yiv2597863981ygrp-sponsor 
#yiv2597863981ygrp-lc {font-family:Arial;}#yiv2597863981 
#yiv2597863981ygrp-sponsor #yiv2597863981ygrp-lc #yiv2597863981hd {margin:10px 
0px;font-weight:700;font-size:78%;line-height:122%;}#yiv2597863981 
#yiv2597863981ygrp-sponsor #yiv2597863981ygrp-lc .yiv2597863981ad 
{margin-bottom:10px;padding:0 0;}#yiv2597863981 #yiv2597863981actions 
{font-family:Verdana;font-size:11px;padding:10px 0;}#yiv2597863981 
#yiv2597863981activity 
{background-color:#e0ecee;float:left;font-family:Verdana;font-size:10px;padding:10px;}#yiv2597863981
 #yiv2597863981activity span {font-weight:700;}#yiv2597863981 
#yiv2597863981activity span:first-child 
{text-transform:uppercase;}#yiv2597863981 #yiv2597863981activity span a 
{color:#5085b6;text-decoration:none;}#yiv2597863981 #yiv2597863981activity span 
span {color:#ff7900;}#yiv2

Re: [oracle_br] Re: CLUSTERING FACTOR

2017-12-19 Por tôpico Yana Disconzi ydisco...@hotmail.com [oracle_br]
Sim, as coisas vão ficando  mais claras pra mim.
Obrigada pela indicação do livro Oracle SQL High-Performance, vou atrás hoje 
mesmo.


Obrigada pelos esclarecimentos, fizeram diferença pra minha visão do problema.

Abss,




De: oracle_br@yahoogrupos.com.br  em nome de 
jlchia...@yahoo.com.br [oracle_br] 
Enviado: terça-feira, 19 de dezembro de 2017 06:37
Para: oracle_br@yahoogrupos.com.br
Assunto: [oracle_br] Re: CLUSTERING FACTOR



Sim : inclusive, clustering factor *** NÂO TEM NADA A VER *** com redução de 
I/O per se : ele é simplesmente um indicador, uma referência se os dados dentro 
do índice estão bastante 'espalhados' por múltiplos blocos ou não, e é usado 
como fator de DESEMPATE para o Otimizador escolher quando houver mais de um 
índice possível... E Imagino que vc ENTENDEU quando eu disse que o CF é uma 
medida de organização da tabela, se fisicamente a tabela está organizada mais 
coerentemente com a coluna X , não tem ao mesmo tempo como ela Também estar 
organizada fisicamente pela coluna Y ao mesmo tempoNÃO EXISTE isso de 
'melhorar o clustering factor para a query' , o CF é PARA A TABELA COMO UM 
TODO, okdoc 

 Então SIM, eu Recomendo que vc parte pras opções de Tuning de SQL : via de 
regra tuning de SQL é muuito mais simples e mito mais Efetivo, vc 
consegue resultados melhores de uma maneira mais simples... O passo inicial 
para tuning de SQL é obter Conhecimento sobre os índices E as tabelas 
envolvidas na query (o que inclui a razão / regra de negócio que te leva a 
sub-queries, por exemplo), TEM que saber os volumes estimados para cada acesso 
via cada índice E tem que conhecer os métodos de JOIn (ie, HASH JOIN, NESTED 
LOOPs, SORT_mERGE, etc) para poder avaliar o Plano de Execução que o Otimizador 
vai te dar e validar se ele está o mais otimizado possível ou não... Por 
exemplo, pegando o exemplo em 
www.oracle..com/technetwork/database/bi-datawarehousing/twp-explain-the-explain-plan-052011-393674.pdf
 o Otimizador escolher fazer um HASH JOIN, ie, ler na íntegra as tabelas 
envolvidas criando uma tabela temporária em memória ordenada e então filtrar os 
dados por essas tabelas temporárias - isso é RADICALMENTE DIFERENTE de NESTED 
LOOP, onde ele vai lendo os dados linha a linha e para cada linha lida o RDBMS 
procura nas outrs tabelas pra ver se tem um valor correspondente Qual o 
melhor/mais correto ? DEPENDE dessas infos que citei
  Na minha experiência pessoal, a fonte que melhor explicou esses diferentes 
métodos de JOIN foi o livro "Oracle SQL High-Performance Tuning", de Guy 
Harrison , Recomendo que vc o leia...

 O passo inicial do método para Tuning de SQL que recomendo portanto é : COM o 
conhecimento teórico da metodologia do Otimizador de SQL presente E conhecendo 
também volumes e distribuição de dados nas tabelas e índices envolvidas, 
obtenha o Plano de Execução extendido (ie, que inclui qtdades estimadas versus 
qtdades efetivamente obtidas) cfrme 
https://blogs.oracle.com/optimizer/how-do-i-know-if-the-cardinality-estimates-in-a-plan-are-accurate
  Com isso aí vc vai analisar se o índice e o método de JOIN tão 
apropriados ou se vc acredita que outro seria mais efetivo, se as Estatísticas 
que guiam as Estimativas do RDBMS tão apropriadas, é por aí

[]s

  Chiappa




Re: [oracle_br] Re: Consulta muito lenta!!

2017-12-19 Por tôpico jlchia...@yahoo.com.br [oracle_br]
Ok que o vc contornou seu 'problema', mas alguma coisa muito esquisita estava 
acontecendo aí : no plano original vc tinha (elimino a coluna do ID e do tempo 
só para caber melhor aqui no post) :


| Operation | Name| Rows  | Bytes |TempSpc| Cost 
(%CPU)|

| SELECT STATEMENT  | |   |   |   | 54953 
(100)|
|  FILTER   | |   |   |   | 
   |
|   HASH JOIN   | |  1280K|   398M|   277M| 54952   
(1)|
|TABLE ACCESS BY INDEX ROWID| FAGLFLEXA   |  1280K|   262M|   |  8463   
(1)|
| INDEX RANGE SCAN  | FAGLFLEXA~2 |   398K|   |   |   440   
(1)|
|TABLE ACCESS BY INDEX ROWID| BKPF|  2499K|   264M|   | 18178   
(1)|
| INDEX SKIP SCAN   | BKPF~BUT|  2499K|   |   |  2599   
(2)|



E a nova versão :


-
| Operation  | Name| Rows  | Bytes | Cost (%CPU)|
-
| SELECT STATEMENT   | |   |   |11 (100)|
|  FILTER| |   |   ||
|   NESTED LOOPS | |   |   ||
|NESTED LOOPS| |31 | 10075 |10   (0)|
| TABLE ACCESS BY INDEX ROWID| FAGLFLEXA   |31 |  6634 | 1   (0)|
|  INDEX RANGE SCAN  | FAGLFLEXA~2 |10 |   | 1   (0)|
| INDEX UNIQUE SCAN  | BKPF~0  | 1 |   | 0   (0)|
|TABLE ACCESS BY INDEX ROWID | BKPF| 1 |   111 | 0   (0)|
-


==> Perceba que as qtdades de linhas envolvidas passaram de coisa de milhão pra 
coisa de dezenas de linhas : vc já tinha disponível esse índice BKPF ? Vc 
recriou (tirando ou adicionando colunas, talvez ?) esse índice FAGLFLEXA~2 ? 
COMO É que o Otimizador errou por uma margem tão larga, estimando no plano 
original que o hash join iria criar (E provavelmente CRIOU, dado o consumo de 
temp space!!) tabela hash de vários milhões E agora no novo plano não chega nem 
perto ?? Será que as Estatísticas estavam assim tão defasadas ??? Ou como eu 
disse vc mudou as regras do jogo, criando um novo índice e/ou alterando os que 
existiam ??

[]s

  Chiappa

Re: [oracle_br] Re: Consulta muito lenta!!

2017-12-19 Por tôpico Rafael Mendonca raffaell.t...@yahoo.com [oracle_br]
Luis, segue o novo plano gerado abaixo:

http://textuploader.com/dcjxh
 

Em Terça-feira, 19 de Dezembro de 2017 10:11, "Luis Freitas 
lfreita...@yahoo.com [oracle_br]"  escreveu:
 

     Ola Rafael,
    Você pode postar o plano de execução novo?
Atc,Luis Freitas 

On Monday, December 18, 2017 3:33 PM, "Rafael Mendonca 
raffaell.t...@yahoo.com [oracle_br]"  wrote:
 

     PEssoal, o problema foi resolvido.
A solução na qual tomei como base foi a extração do relatório SQLT pelo sqlid 
da consulta. E no SQLT existia a recomendação para criação de um sqlprofile, 
que o ganho seria de 99%, após a criação do sql_profile abaixo
execute dbms_sqltune.accept_sql_profile(task_name => 
'sqlt_s47584_mem',task_owner => 'SYS', replace => TRUE);

A query que rodava em 16 minutos, passou a rodar em 3 segundos.
Valeu pessoal, obrigado a todos. 

Em Sexta-feira, 15 de Dezembro de 2017 19:43, "jlchia...@yahoo.com.br 
[oracle_br]"  escreveu:
 

     Bom, pelo prompt de SQL> eu estou SUPONDO que vc optou por criar no 
sqlplus as bind variables todas necessárias e executar o SQL via sqlplus mesmo 
né ? Bom, DEVERIA FUNCIONAR certinho mas pra teste já que é assim mete o hint 
de gather_statistics mesmo no texto que vc entra entrando no sqlplus... Se 
ainda assim não mostrar o A-ROWs E o E-ROWs já repassa essa info pro Suporte 
SAP, é um sinal indicador que alguma coisa tá MUITO diferente nesse banco

[]s

  Chiappa
   

 

 #yiv5858779180 #yiv5858779180 -- #yiv5858779180ygrp-mkp {border:1px solid 
#d8d8d8;font-family:Arial;margin:10px 0;padding:0 10px;}#yiv5858779180 
#yiv5858779180ygrp-mkp hr {border:1px solid #d8d8d8;}#yiv5858779180 
#yiv5858779180ygrp-mkp #yiv5858779180hd 
{color:#628c2a;font-size:85%;font-weight:700;line-height:122%;margin:10px 
0;}#yiv5858779180 #yiv5858779180ygrp-mkp #yiv5858779180ads 
{margin-bottom:10px;}#yiv5858779180 #yiv5858779180ygrp-mkp ..yiv5858779180ad 
{padding:0 0;}#yiv5858779180 #yiv5858779180ygrp-mkp .yiv5858779180ad p 
{margin:0;}#yiv5858779180 #yiv5858779180ygrp-mkp .yiv5858779180ad a 
{color:#ff;text-decoration:none;}#yiv5858779180 #yiv5858779180ygrp-sponsor 
#yiv5858779180ygrp-lc {font-family:Arial;}#yiv5858779180 
#yiv5858779180ygrp-sponsor #yiv5858779180ygrp-lc #yiv5858779180hd {margin:10px 
0px;font-weight:700;font-size:78%;line-height:122%;}#yiv5858779180 
#yiv5858779180ygrp-sponsor #yiv5858779180ygrp-lc .yiv5858779180ad 
{margin-bottom:10px;padding:0 0;}#yiv5858779180 #yiv5858779180actions 
{font-family:Verdana;font-size:11px;padding:10px 0;}#yiv5858779180 
#yiv5858779180activity 
{background-color:#e0ecee;float:left;font-family:Verdana;font-size:10px;padding:10px;}#yiv5858779180
 #yiv5858779180activity span {font-weight:700;}#yiv5858779180 
#yiv5858779180activity span:first-child 
{text-transform:uppercase;}#yiv5858779180 #yiv5858779180activity span a 
{color:#5085b6;text-decoration:none;}#yiv5858779180 #yiv5858779180activity span 
span {color:#ff7900;}#yiv5858779180 #yiv5858779180activity span 
.yiv5858779180underline {text-decoration:underline;}#yiv5858779180 
.yiv5858779180attach 
{clear:both;display:table;font-family:Arial;font-size:12px;padding:10px 
0;width:400px;}#yiv5858779180 .yiv5858779180attach div a 
{text-decoration:none;}#yiv5858779180 .yiv5858779180attach img 
{border:none;padding-right:5px;}#yiv5858779180 .yiv5858779180attach label 
{display:block;margin-bottom:5px;}#yiv5858779180 .yiv5858779180attach label a 
{text-decoration:none;}#yiv5858779180 blockquote {margin:0 0 0 
4px;}#yiv5858779180 .yiv5858779180bold 
{font-family:Arial;font-size:13px;font-weight:700;}#yiv5858779180 
.yiv5858779180bold a {text-decoration:none;}#yiv5858779180 dd.yiv5858779180last 
p a {font-family:Verdana;font-weight:700;}#yiv5858779180 dd.yiv5858779180last p 
span {margin-right:10px;font-family:Verdana;font-weight:700;}#yiv5858779180 
dd.yiv5858779180last p span.yiv5858779180yshortcuts 
{margin-right:0;}#yiv5858779180 div.yiv5858779180attach-table div div a 
{text-decoration:none;}#yiv5858779180 div.yiv5858779180attach-table 
{width:400px;}#yiv5858779180 div.yiv5858779180file-title a, #yiv5858779180 
div.yiv5858779180file-title a:active, #yiv5858779180 
div.yiv5858779180file-title a:hover, #yiv5858779180 div.yiv5858779180file-title 
a:visited {text-decoration:none;}#yiv5858779180 div.yiv5858779180photo-title a, 
#yiv5858779180 div.yiv5858779180photo-title a:active, #yiv5858779180 
div.yiv5858779180photo-title a:hover, #yiv5858779180 
div.yiv5858779180photo-title a:visited {text-decoration:none;}#yiv5858779180 
div#yiv5858779180ygrp-mlmsg #yiv5858779180ygrp-msg p a 
span.yiv5858779180yshortcuts 
{font-family:Verdana;font-size:10px;font-weight:normal;}#yiv5858779180 
.yiv5858779180green {color:#628c2a;}#yiv5858779180 .yiv5858779180MsoNormal 
{margin:0 0 0 0;}#yiv5858779180 o {font-size:0;}#yiv5858779180 
#yiv5858779180photos div {float:left;width:72px;}#yiv5858779180 
#yiv5858779180photos div div {border:1px solid 
#66;min-height:62px;overflow:hidden;width:62px

[oracle_br] Re: CLUSTERING FACTOR

2017-12-19 Por tôpico jlchia...@yahoo.com.br [oracle_br]
Sim : inclusive, clustering factor *** NÂO TEM NADA A VER *** com redução de 
I/O per se : ele é simplesmente um indicador, uma referência se os dados dentro 
do índice estão bastante 'espalhados' por múltiplos blocos ou não, e é usado 
como fator de DESEMPATE para o Otimizador escolher quando houver mais de um 
índice possível... E Imagino que vc ENTENDEU quando eu disse que o CF é uma 
medida de organização da tabela, se fisicamente a tabela está organizada mais 
coerentemente com a coluna X , não tem ao mesmo tempo como ela Também estar 
organizada fisicamente pela coluna Y ao mesmo tempoNÃO EXISTE isso de 
'melhorar o clustering factor para a query' , o CF é PARA A TABELA COMO UM 
TODO, okdoc  

 Então SIM, eu Recomendo que vc parte pras opções de Tuning de SQL : via de 
regra tuning de SQL é muuito mais simples e mito mais Efetivo, vc 
consegue resultados melhores de uma maneira mais simples... O passo inicial 
para tuning de SQL é obter Conhecimento sobre os índices E as tabelas 
envolvidas na query (o que inclui a razão / regra de negócio que te leva a 
sub-queries, por exemplo), TEM que saber os volumes estimados para cada acesso 
via cada índice E tem que conhecer os métodos de JOIn (ie, HASH JOIN, NESTED 
LOOPs, SORT_mERGE, etc) para poder avaliar o Plano de Execução que o Otimizador 
vai te dar e validar se ele está o mais otimizado possível ou não... Por 
exemplo, pegando o exemplo em 
www.oracle.com/technetwork/database/bi-datawarehousing/twp-explain-the-explain-plan-052011-393674.pdf
 o Otimizador escolher fazer um HASH JOIN, ie, ler na íntegra as tabelas 
envolvidas criando uma tabela temporária em memória ordenada e então filtrar os 
dados por essas tabelas temporárias - isso é RADICALMENTE DIFERENTE de NESTED 
LOOP, onde ele vai lendo os dados linha a linha e para cada linha lida o RDBMS 
procura nas outrs tabelas pra ver se tem um valor correspondente Qual o 
melhor/mais correto ? DEPENDE dessas infos que citei 
  Na minha experiência pessoal, a fonte que melhor explicou esses diferentes 
métodos de JOIN foi o livro "Oracle SQL High-Performance Tuning", de Guy 
Harrison , Recomendo que vc o leia...

 O passo inicial do método para Tuning de SQL que recomendo portanto é : COM o 
conhecimento teórico da metodologia do Otimizador de SQL presente E conhecendo 
também volumes e distribuição de dados nas tabelas e índices envolvidas, 
obtenha o Plano de Execução extendido (ie, que inclui qtdades estimadas versus 
qtdades efetivamente obtidas) cfrme 
https://blogs.oracle.com/optimizer/how-do-i-know-if-the-cardinality-estimates-in-a-plan-are-accurate
  Com isso aí vc vai analisar se o índice e o método de JOIN tão 
apropriados ou se vc acredita que outro seria mais efetivo, se as Estatísticas 
que guiam as Estimativas do RDBMS tão apropriadas, é por aí

[]s

  Chiappa

Re: [oracle_br] Re: Consulta muito lenta!!

2017-12-19 Por tôpico Luis Freitas lfreita...@yahoo.com [oracle_br]
Ola Rafael,
    Você pode postar o plano de execução novo?
Atc,Luis Freitas 

On Monday, December 18, 2017 3:33 PM, "Rafael Mendonca 
raffaell.t...@yahoo.com [oracle_br]"  wrote:
 

     PEssoal, o problema foi resolvido.
A solução na qual tomei como base foi a extração do relatório SQLT pelo sqlid 
da consulta. E no SQLT existia a recomendação para criação de um sqlprofile, 
que o ganho seria de 99%, após a criação do sql_profile abaixo
execute dbms_sqltune.accept_sql_profile(task_name => 
'sqlt_s47584_mem',task_owner => 'SYS', replace => TRUE);

A query que rodava em 16 minutos, passou a rodar em 3 segundos.
Valeu pessoal, obrigado a todos. 

Em Sexta-feira, 15 de Dezembro de 2017 19:43, "jlchia...@yahoo.com.br 
[oracle_br]"  escreveu:
 

     Bom, pelo prompt de SQL> eu estou SUPONDO que vc optou por criar no 
sqlplus as bind variables todas necessárias e executar o SQL via sqlplus mesmo 
né ? Bom, DEVERIA FUNCIONAR certinho mas pra teste já que é assim mete o hint 
de gather_statistics mesmo no texto que vc entra entrando no sqlplus... Se 
ainda assim não mostrar o A-ROWs E o E-ROWs já repassa essa info pro Suporte 
SAP, é um sinal indicador que alguma coisa tá MUITO diferente nesse banco

[]s

  Chiappa
   

 #yiv4409151850 #yiv4409151850 -- #yiv4409151850ygrp-mkp {border:1px solid 
#d8d8d8;font-family:Arial;margin:10px 0;padding:0 10px;}#yiv4409151850 
#yiv4409151850ygrp-mkp hr {border:1px solid #d8d8d8;}#yiv4409151850 
#yiv4409151850ygrp-mkp #yiv4409151850hd 
{color:#628c2a;font-size:85%;font-weight:700;line-height:122%;margin:10px 
0;}#yiv4409151850 #yiv4409151850ygrp-mkp #yiv4409151850ads 
{margin-bottom:10px;}#yiv4409151850 #yiv4409151850ygrp-mkp ..yiv4409151850ad 
{padding:0 0;}#yiv4409151850 #yiv4409151850ygrp-mkp .yiv4409151850ad p 
{margin:0;}#yiv4409151850 #yiv4409151850ygrp-mkp .yiv4409151850ad a 
{color:#ff;text-decoration:none;}#yiv4409151850 #yiv4409151850ygrp-sponsor 
#yiv4409151850ygrp-lc {font-family:Arial;}#yiv4409151850 
#yiv4409151850ygrp-sponsor #yiv4409151850ygrp-lc #yiv4409151850hd {margin:10px 
0px;font-weight:700;font-size:78%;line-height:122%;}#yiv4409151850 
#yiv4409151850ygrp-sponsor #yiv4409151850ygrp-lc .yiv4409151850ad 
{margin-bottom:10px;padding:0 0;}#yiv4409151850 #yiv4409151850actions 
{font-family:Verdana;font-size:11px;padding:10px 0;}#yiv4409151850 
#yiv4409151850activity 
{background-color:#e0ecee;float:left;font-family:Verdana;font-size:10px;padding:10px;}#yiv4409151850
 #yiv4409151850activity span {font-weight:700;}#yiv4409151850 
#yiv4409151850activity span:first-child 
{text-transform:uppercase;}#yiv4409151850 #yiv4409151850activity span a 
{color:#5085b6;text-decoration:none;}#yiv4409151850 #yiv4409151850activity span 
span {color:#ff7900;}#yiv4409151850 #yiv4409151850activity span 
.yiv4409151850underline {text-decoration:underline;}#yiv4409151850 
.yiv4409151850attach 
{clear:both;display:table;font-family:Arial;font-size:12px;padding:10px 
0;width:400px;}#yiv4409151850 .yiv4409151850attach div a 
{text-decoration:none;}#yiv4409151850 .yiv4409151850attach img 
{border:none;padding-right:5px;}#yiv4409151850 .yiv4409151850attach label 
{display:block;margin-bottom:5px;}#yiv4409151850 .yiv4409151850attach label a 
{text-decoration:none;}#yiv4409151850 blockquote {margin:0 0 0 
4px;}#yiv4409151850 .yiv4409151850bold 
{font-family:Arial;font-size:13px;font-weight:700;}#yiv4409151850 
.yiv4409151850bold a {text-decoration:none;}#yiv4409151850 dd.yiv4409151850last 
p a {font-family:Verdana;font-weight:700;}#yiv4409151850 dd.yiv4409151850last p 
span {margin-right:10px;font-family:Verdana;font-weight:700;}#yiv4409151850 
dd.yiv4409151850last p span.yiv4409151850yshortcuts 
{margin-right:0;}#yiv4409151850 div.yiv4409151850attach-table div div a 
{text-decoration:none;}#yiv4409151850 div.yiv4409151850attach-table 
{width:400px;}#yiv4409151850 div.yiv4409151850file-title a, #yiv4409151850 
div.yiv4409151850file-title a:active, #yiv4409151850 
div.yiv4409151850file-title a:hover, #yiv4409151850 div.yiv4409151850file-title 
a:visited {text-decoration:none;}#yiv4409151850 div.yiv4409151850photo-title a, 
#yiv4409151850 div.yiv4409151850photo-title a:active, #yiv4409151850 
div.yiv4409151850photo-title a:hover, #yiv4409151850 
div.yiv4409151850photo-title a:visited {text-decoration:none;}#yiv4409151850 
div#yiv4409151850ygrp-mlmsg #yiv4409151850ygrp-msg p a 
span.yiv4409151850yshortcuts 
{font-family:Verdana;font-size:10px;font-weight:normal;}#yiv4409151850 
.yiv4409151850green {color:#628c2a;}#yiv4409151850 .yiv4409151850MsoNormal 
{margin:0 0 0 0;}#yiv4409151850 o {font-size:0;}#yiv4409151850 
#yiv4409151850photos div {float:left;width:72px;}#yiv4409151850 
#yiv4409151850photos div div {border:1px solid 
#66;min-height:62px;overflow:hidden;width:62px;}#yiv4409151850 
#yiv4409151850photos div label 
{color:#66;font-size:10px;overflow:hidden;text-align:center;white-space:nowrap;width:64px;}#yiv4409151850
 #yiv4409151850reco-category {font-size