Fórum SQL - log inchado! Como limpar? #162900

27/05/2003

0

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

Responder

Posts

27/05/2003

Karepa

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


Responder

Gostei + 0

27/05/2003

Flavio Sanches

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


Responder

Gostei + 0

27/05/2003

Carnette

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....


Responder

Gostei + 0

27/05/2003

Karepa

qual banco que você está usando.


Responder

Gostei + 0

27/05/2003

Flavio Sanches

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


Responder

Gostei + 0

27/05/2003

Karepa

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


Responder

Gostei + 0

27/05/2003

Flavio Sanches

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...


Responder

Gostei + 0

27/05/2003

Ikkisamurai

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.


Responder

Gostei + 0

27/05/2003

Flavio Sanches

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?


Responder

Gostei + 0

27/05/2003

Ikkisamurai

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?


Responder

Gostei + 0

27/05/2003

Flavio Sanches

O Zanela disse pra eu usar o

set nocount on

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

funcionou :P :P :P

amo vcs pessoal


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar