› Fóruns › Banco de dados Oracle › Problema – FTS ao invés de indices › Problema – FTS ao invés de indices
OK – eu particularmente reputo como mais trabalhoso do que complexo, mas ao menos vc já conseguiu isolar o SQL e identificou o índice que se usado comprovadamente dá melhor performance, isso já é meio caminho andado…. Siga as indicações que te dei, dando ESPECIAL ATENÇÃO, como havia dito, à questão de avaliação de qualidade das estatísticas (comparando A-ROWS com E-ROWS no plano de execução REAL e EXTENDIDO), mas ** principalmente ** investigue a questão dos HISTOGRAMAS, Principalmente se a aplicação envia SQLs se referenciando a valores ao invés de BIND VARIABLES : histogramas até podem ser usados quando se tem BINDs (principalmente com a funcionalidade de BIND PEEKING) mas quando se compara colunas da tabela diretamente com valores é aí que a informação de quantas linhas um determinado valor-chavce retorna (ie, o HISTOGRAMA) é quase líquida e certa de ser usada… Dá uma BOA lida, estude direitinho os artigos da série http://allthingsoracle.com/histograms-part-1-why/ , que eles vão te ajudar Imensamente a compreender esse importante conceito, para então poder avaliar a viabilidade de passar a fazer um sample com mais linhas (talvez na tabela toda), e o Tamanho de amostragem para os histogramas….
Um outro conselho que te dou é tentar fazer a sua análise inicialmente FORA da aplicação, ie, executando numa tool cliente o SQL que vc isolou (sq*plus, Oracle SQL developer, TOAD, PL/SQL developer, aquela que vc tiver/quiser/gostar) e aí apenas nessa sessão , numa hora em que NÂO haja outros usuários/concorrência, testar os efeitos de histogramas maiores, de sample size maior/completo, de ALTER SESSION mudando parâmetros OPTIMIZER_xxx …..
[]s
Chiappa