Quando você executa a sequência:

Query.Edit;
Query.FieldByName('X').AsString := 'teste';
Query.Post;

... Quem monta o comando Update que será executado no banco de dados para
atualizar o registro corrente é o componente de query que você está
utilizando... Se a query não sabe qual(is) o(s) campo(s) da sua chave
primária, o componente vai montar um Update com um Where contendo TODOS os
campos que foram retornados na consulta... Caso contrário, criaria o comando
fazendo a restrição baseada somente no(s) campo(s) da chave... Isso pode ser
muito relevante para o Otimizador do banco de dados, que é quem faz a tarefa
de escolher o plano de execução dos comandos, como você mencionou, quando
lembramos que o banco de dados pode receber centenas de comandos
similares...
Os banco de dados relacionais guardam em cache os últimos comandos, planos
de execução e registros retornados de modo a evitar a repetição
desnecessária de suas funções, o que é mais um motivo para que um comando
SQL menor seja desejável...

Danilo Valente

----- Original Message -----
From: "Francisco Thiago" <[EMAIL PROTECTED]>
To: <delphi-br@yahoogrupos.com.br>
Sent: Monday, May 29, 2006 3:10 PM
Subject: Re: [delphi-br] Re: Lentidão ao abrir ClientDataSet (dbExpress com
Oracle)


> Mas em que poderia influenciar a questão de índices para
> update/insert/delete, uma vez que (se eu não estiver enganado) bancos como
> o
> Firebird e Interbase decidem o plano internamente?
>
>
>
> Francisco Thiago de Almeida
> Enter & Plug Informática
> Divisão: Desenvolvimento e Banco de dados
> Franca / SP
> msn: [EMAIL PROTECTED]
> http://enterplug.no-ip.com/sistema_ctrc/
>
>
>
> _______________________________________________________
> Abra sua conta no Yahoo! Mail: 1GB de espaço, alertas de e-mail no celular
> e anti-spam realmente eficaz.
> http://mail.yahoo.com.br/
>
>
> --
> <<<<< FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM >>>>>
>
>
>
> Links do Yahoo! Grupos
>
>
>
>
>
>
>
>
>
>






--
<<<<< FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM >>>>>

<*> Para ver as mensagens antigas, acesse:
    http://br.groups.yahoo.com/group/delphi-br/messages

<*> Para falar com o moderador, envie um e-mail para:
    [EMAIL PROTECTED]



Yahoo! Grupos, um serviço oferecido por:
PUBLICIDADE


Links do Yahoo! Grupos

Responder a