SQL - log inchado! Como limpar?

Delphi

27/05/2003

E aí pessoal?

Meu problema agora é:

Tenho uma SP que faz uma migração de uma tabela de 2.500.000 registros.
Essa é mais ou menos assim:

declara variaveis
declara cursor

fetch

while status... <> -1

insert into tabela1
(campos)
values
(variaveis)

fetch
contador = contador + 1
if contador = 500000
begin
commit
contador = 1
end


Só que perto dos 1.000.000 ele diz que a memória já era e trava a máquina

ou seja

queria saber se há alguma forma de, de tempos em tempos eu liberar essa memória.
sei lá, talvez um dump ou outra coisa assim

algém pode me ajudar???


Flavio Sanches

Flavio Sanches

Curtidas 0

Respostas

Karepa

Karepa

27/05/2003

eu faria um commit a cada inserção.
até melhora a performance.


GOSTEI 0
Flavio Sanches

Flavio Sanches

27/05/2003

eu já fiz isso
só que a memória vai se esgotando e acaba travando do mesmo jeito

ou seja

o commit não libera o que está na memória


GOSTEI 0
Carnette

Carnette

27/05/2003

Voce já experimentou passar GELOL para desinchar a tabela ???..


Brincadeirinha.....

Bah meu..Tu só vem com perguntas das boas hein....Esta é mais uma daquelas CABELUDAS.....Vamos a pesquisa di nouvo...


Até parece que tu faz isto de propósito amigo....Só arruma encrenca(no bom sentido é claro)....

Espero que apareça uma solução...

Um abraço....


GOSTEI 0
Karepa

Karepa

27/05/2003

qual banco que você está usando.


GOSTEI 0
Flavio Sanches

Flavio Sanches

27/05/2003

SQL_SERVER 6.5

e...

carnette
vindo de vc,
se vc não dissesse que era brincadeira o tal do gelol eu ia procurar no help mesmo, por que estou tão desesperado que estou tentandoi de tudo

valeu


GOSTEI 0
Karepa

Karepa

27/05/2003

Já deve ter tentado isto, mas se não tentou lá vai.

declara variaveis
declara cursor

fetch

while status... <> -1
begin tran
insert into tabela1
(campos)
values
(variaveis)
commit


GOSTEI 0
Flavio Sanches

Flavio Sanches

27/05/2003

Pois é, meu amigo...

eu faço isso só que a memória não é descarregada e continua inflando até que...
pára
e
trava
e
reinicia máquina
e
recovering database
e
etc...


GOSTEI 0
Ikkisamurai

Ikkisamurai

27/05/2003

Tudo bem Flavio?

Eh... vc encontrou uma bomba bem grande. Não sei se o que vc está trabalhando eh uma aplicação comercial que rodará em diversos clientes ou interna. Eu acredito que esse processo esteja um pouco além dos limites do
´pobre´ SQL-Server que está sofrendo nas suas mãos ( :lol: ).

Não eh possível fracionar esse processo? Faze-lo por etapas?
Tipo... começar o processo do registro 500.000 e encerrar no 1.000.000.

Sei que num eh a alternativa mais adequada... Mas irá resolver temporariamente ateh que apareça uma solução definitiva.


GOSTEI 0
Flavio Sanches

Flavio Sanches

27/05/2003

Conforme ele vai inserindo, registro a registro ele coloca no result um

(uma linha afetada)

ou algo assim

e isso infla a memória tembém

será que posso desabilitar esse retorno?
como faço isso?


GOSTEI 0
Ikkisamurai

Ikkisamurai

27/05/2003

Muito boa essa... de rachar a cuca...

Vou pesquisar sobre o SQL Server... eu costumo trabalhar com o IB/FB. Mas nunca precisei fazer um processo desse tamanho. Qdo tive que fazer um processo similar a este eu usei um programa feito por mim mesmo, para realizar a migração. Será que naum vale a pena?


GOSTEI 0
Flavio Sanches

Flavio Sanches

27/05/2003

O Zanela disse pra eu usar o

set nocount on

pra não aparecer o retorno
e ....

funcionou :P :P :P

amo vcs pessoal


GOSTEI 0
POSTAR