none
Estimativa de custo RRS feed

  • Pergunta

  • Pessoal,

    Outro dia me pediram se existe uma maneira de estimar o "custo" de uma pesquisa no SQL. Por exemplo, num site, o usuário define os parâmetros da pesquisa, que são submetidos ao banco, e este então, baseado numa estimativa de custo usando esse parâmetros, define se vai executar a consulta ou não.

    A idéia seria mostrar uma mensagem pro usuário "Resultado da consulta muito grande, redefina usa consulta", ou algo parecido com isso...

    Alguém tem alguma idéia se dá pra fazer isso? Eu, sinceramente nunca vi como fazer isso.

    Abrs.

    quinta-feira, 30 de novembro de 2006 12:16

Respostas

  • Bem,

    Acabei testando a opção "set query_governor_cost_limit" e esta vai atenter muito bem minhas necessidades. Ele cancela a execução antes dela começar. É uma boa alternativa.

    Mesmo assim, obrigado Marcelo.

    Abrs.

    quinta-feira, 30 de novembro de 2006 17:32

Todas as Respostas

  • tambem nao vejo como a menos que vc. parametrize a consulta, por exemplo, a soma do total de bytes de uma linha * pela quantidade de linhas que ela vai trazer e x e vc. estabelce que x-1  seu limite. ( e so uma ideia )

     

    Abs;

    quinta-feira, 30 de novembro de 2006 12:22
  • É... tinha pensado em fazer algo como executar a consulta mas trazendo apenas um COUNT, e sobre essa informação estimar quanto que isso representa de dados...

    Eu acho que vi em algum site (não lembro qual) algo sobre estimativas de custo, mas creio que era sobre Oracle.

    Bem, vlw a força.

     

    Abrs.

    quinta-feira, 30 de novembro de 2006 12:32
  •  

    Marcelo,

    Aquilo que eu disse que tinha lido, é sobre Oracle mesmo... Nele tem como criar um Profile, neste você pode dizer quanto de recurso pode consumir, quantas conexões simultâneas, numero de leituras lógicas, e mais algumas coisas... Esse Profile, você vincula a um usuário que terá essas limitações. E isso é aplicado a nível de kernel...

    No SQL eu sinceramente nunca ouvi nada nesse sentido... Mas estou bem tentado a desenvolver algo nesse sentido... Algo bem simples, mas que funcione bem...

     

    Abrs.

    quinta-feira, 30 de novembro de 2006 13:55
  • Bem,

    Acabei testando a opção "set query_governor_cost_limit" e esta vai atenter muito bem minhas necessidades. Ele cancela a execução antes dela começar. É uma boa alternativa.

    Mesmo assim, obrigado Marcelo.

    Abrs.

    quinta-feira, 30 de novembro de 2006 17:32