SQL - log inchado! Como limpar?
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???
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
Curtidas 0
Respostas
Karepa
27/05/2003
eu faria um commit a cada inserção.
até melhora a performance.
até melhora a performance.
GOSTEI 0
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
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
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....
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
27/05/2003
qual banco que você está usando.
GOSTEI 0
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
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
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
declara variaveis
declara cursor
fetch
while status... <> -1
begin tran
insert into tabela1
(campos)
values
(variaveis)
commit
GOSTEI 0
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...
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
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.
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
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?
(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
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?
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
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
set nocount on
pra não aparecer o retorno
e ....
funcionou :P :P :P
amo vcs pessoal
GOSTEI 0