Seguinte, o custo ** não ** te serve diretamente como parâmetro único pra se dizer se um SQL é bom ou ruim : ele é uma média ponderada de DIVERSOS fatores (não só do SQL mas das VARIÁVEIS de sessão também - mande um ALTER SESSION e o custo pode subir ou descer), e o algoritmo usado não é documentado pela Oracle, é interno. Então pra que serve ele ? Internamente o banco o usa pra "testar" o quanto vai custar cada possível tipo de acesso, pra nós cá fora só serve pra testar comportamento do CBO SE vc estiver trabalhando sempre com o mesmo SQL , ie : vc tem um dado SQL, não gostou dele, daí aplica um HINT, um ALTER SESSION, re-coleta estatísticas, cria histogramas, e reexecuta O MESMO SQL, deve ter um custo diferente, aí sim vc pode usar o custo (tanto o custo total do SQL quanto o custo de cada paso do plano) como UM dos parâmetros pra se avaliar qualidade do SQL e da config do CBO. O que vc *** NUNCA **, de modo algum, pode fazer, é querer comparar o custo dum SQL x com o custo dum SQL Y, diferentes, pois NÂO é pra isso que o custo serve. Para se comparar SQLs diferentes (tipo, em um vc tem, digamos, uma sub-query correlata e em outro vc tem join), e que OBVIAMENTE tragam o meso resultado!!, o teu parâmetro principal deveria ser LIOs x Linhas Acessadas, ie, quantos blocos tiveram que ser lidos pra acessar cada linha. Otimização de SQLs (não só consultas, embora principalmente consultas) é um tema bem extenso, eu ** DUVIDO ** que vc encontre um simples tutorialzinho que te leve mais longe do que alguns "passos de bebê" nessa caminhada, mas vc acha alguns na net. O que eu recomendo mesmo são os livros : "Expert Oracle Database Architecture: 9i and 10g Programming Techniques and Solutions", de Thomas Kyte "Optimizing Oracle Performance", de Cary Millsap "Oracle SQL High-Performance Tuning (2nd Edition)", de Guy Harrison a idéia do livro do TK é vc conhecer features do banco que podem diminuir seus LIOs (como Analytics, por exemplo), o do CM é vc aprender efetivamente o que são LIOs, como uso tkprof, waits, etc, e o do GH, embora seja antigo e esteja começando a mostra a idade (só fala de banco 8i) ainda é um dos melhores e mais didáticos pra se explicar o que é um join, quais tipos existem, como alterar logicamente SQLs, etc. []s Chiappa --- Em [email protected], Rodrigo Cavalcante <[EMAIL PROTECTED]> escreveu > > Srs. > > Estou fazendo otimização de sql, no banco de dados, gostaria de > saber como o oracle faz o cálculo do parâmetro COST, sei que, se esse > valor for alto a query vai demorar mais e se for baixo será mais rápido, > qual o melhor valor dele, alguém tem um tutorial para fazer otimização > de consultas? > > Att. > > Rodrigo Cavalcante > > > [As partes desta mensagem que não continham texto foram removidas] >
-------------------------------------------------------------------------------------------------------------------------- Atenção! As mensagens deste grupo são de acesso público e de inteira responsabilidade de seus remetentes. Acesse: http://www.mail-archive.com/[email protected]/ --------------------------------------------------------------------------------------------------------------------------__________________________________________________________________ Este Grupo recebe o apoio da SQL Magazine - www.devmedia.com.br/sqlmagazine __________________________________________________________________ O grupo Oracle_br não aceita anexos. Quando oferecer algum arquivo, tenha o link do mesmo para evitar trafego(pedidos) desnecessário. Links do Yahoo! Grupos <*> Para visitar o site do seu grupo na web, acesse: http://br.groups.yahoo.com/group/oracle_br/ <*> Para sair deste grupo, envie um e-mail para: [EMAIL PROTECTED] <*> O uso que você faz do Yahoo! Grupos está sujeito aos: http://br.yahoo.com/info/utos.html
