As estatística do seu BD estão em dia? Faça um teste escrevendo sem o HINT e outro escrevendo usando o HINT INDEX desta maneira: /*+ INDEX (C I_UNICA_TARJETA) */ , usando o apelido que você deu a tabela Cartoes, e usando somente o INDEX e não INDEX_ASC, pois para que ordenar uma consulta sobre uma tabela que terá somente um registro selecionado? At. Marcelo Alberto Lauschner Tecnologia e Sistemas Auto Pratense Ltda * - Fone: (0XX54) 3242-3615 * - Fax: (0XX54) 3242-3648 * - E-mail: <BLOCKED::mailto:[EMAIL PROTECTED]> [EMAIL PROTECTED] * - WWW: www.autopratense.com.br <BLOCKED::http://www.autopratense.com.br/> _____
De: oracle_br@yahoogrupos.com.br [mailto:[EMAIL PROTECTED] Em nome de rei_do_delphi Enviada em: terça-feira, 11 de setembro de 2007 10:35 Para: oracle_br@yahoogrupos.com.br Assunto: Re: RES: [oracle_br] Utilização de Hints em Query na verdade, especificando o número do cartão, não entendi o porque que o otimizador não utiliza o índice. E o custo maior esta nesta parte mesmo!. Ele deveria utilizar o índice ! --- Em [EMAIL PROTECTED] <mailto:oracle_br%40yahoogrupos.com.br> os.com.br, "Bruno Lorenzini" <[EMAIL PROTECTED]> escreveu > > /* + INDEX_ASC( Cartoes I_UNICA_TARJETA ) */ > > > > Falou o "+". > > > > > > Mas, mesmo assim... porque você ao invés de forçar a utilização do índice > não avalia a necessidade da criação de um ou mais índices pra que o > otimizador possa se virar sozinho? Análise a sua where clause, a sua tabela > e veja se não é possível. > > > > Qlquer coisa é só avisar. > > > > > > Abs, > > > > _____ > > De: [EMAIL PROTECTED] <mailto:oracle_br%40yahoogrupos.com.br> os.com.br [mailto:[EMAIL PROTECTED] <mailto:oracle_br%40yahoogrupos.com.br> os.com.br] Em > nome de rei_do_delphi > Enviada em: terça-feira, 11 de setembro de 2007 09:54 > Para: [EMAIL PROTECTED] <mailto:oracle_br%40yahoogrupos.com.br> os.com.br > Assunto: [oracle_br] Utilização de Hints em Query > > > > Bom dia a todos, > > depois de um longo e tenebroso inverno, consegui convencer o pessoal > da empresa a liberar o yahoogrupos para meu acesso ao fórum, motivo > do bloqueio? apenas por ele estar na lista de bloqueados do squid, > mas enfim, estou de volta e com algumas dúvidas. > > Minha dúvida de hoje é sobre a utilização de um determinado Índice > para execução de uma query. A query é mais ou menos essa aqui: > > SELECT /* INDEX_ASC(Cartoes I_UNICA_TARJETA) > */t.sucursal_emisor,t.producto,t.numero_cuenta,p.nacimiento,t.documen > to,t.ESTADO,e.clase_de_estado > > FROM Cartoes C, Pessoas p, Estados e > WHERE p.documento = c.documento > AND p.tipo_de_documento = c.tipo_de_documento > AND p.sucursal_emisor =c.sucursal_emisor > AND p.emisor = c.emisor > AND e.ESTADO = c.ESTADO > AND e.producto = c.producto > AND e.emisor = c.emisor > AND c.tarjeta = 1111111111111111 ; > > enfim, existe o seguinte índice: > > I_UNICA_TARJETA na tabela cartoes. Porém quando executo o plano de > execução da query acima( pelo SQL Developer) ele me retorna: > > TABLE ACCESS(FULL) BCC.Cartoes ANALYZED 4760 1 48 > > isso quer dizer, esta fazendo TABLE ACCESS FULL !!! Mesmo eu > colocando o Hint: > > /* INDEX_ASC(Cartoes I_UNICA_TARJETA)*/ > > E continua não fazendo este acesso, o que devo fazer para que a > query comece a utilizar o hint acima? > > o cost de ele fazer esse Access FULL Scan é de 4760, é o mais alto > da Query, se ele utilizasse o índice seria bem mais rápido. > Observação, é um índice do tipo normal. > > Abraço a todos e desde já obrigado. > > > > > > > > [As partes desta mensagem que não continham texto foram removidas] > [As partes desta mensagem que não continham texto foram removidas]