José Carlos, particularmente, eu não recomendo o
uso de sqlimmediate, justamente pelo fato de que o uso dessa função diminui a
velocidade do sistema. O fato é que, em cada chamada do sqlimmediate, é feita
uma conexão com o banco, e só depois o comando sql é executado. Portanto, é
muito mais coerente vc utilizar as funções SqlPrepare, SqlExecute
e SqlPrepareAndExecute, que utilizam handles já conectados. Só para vc ter
um idéia, se vc colocar um sqlimmediate dentro de um while/loop e marcar o tempo
que leva pra sair do while/loop, verá que o tempo é bem menor se vc utilizar o
SqlPrepare antes de entrar no while/loop e dentro do while/loop executar somente
o SqlExecute.
Bem, se de qualquer forma vc ainda precisar
utilizar o sqlimmediate, tenha sempre em mente que logo após deve ser usado um
sqlclearimmediate. Não adianta vc fazer 10 sqlimmediate seguidos e logo
abaixo um sqlclearimmediate, pois o sqlclearimmediate só vai liberar a memória
utilizada pelo último sqlimmediate executado. Note que se vc não usar o
sqlclearimmediate, os handles internos não vão sendo fechados e vão ocupando
memória, até que toda a sua memória RAM esteja totalmente ocupada. A partir
daí, o Windows começa a fazer swap de memória em disco, e é isso que torna o seu
sistema lento após algum tempo.
Espero que essas informações tenham ajudado.
Qualquer dúvida, fique à vontade.
Ricardo.
|
- [sqlwin] Peformance zeca
- RES: [sqlwin] Peformance Marcos_Fregolao
- Re: [sqlwin] Peformance Ricardo Gomes