Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

PRSolucaoWeb

Banco de dados GRANDEEEEE

Recommended Posts

Boa tarde

Tenho um sistema que grave numeros de séries de produtos.

Em uma única tabela tenho mais de 500.000 registros.

Só que quando vou gravar o formulario que antecede a gravação dos numeros de séries demora para gravar cerca de 2 minutos.

O que pode ser?

Poderiam me ajudar?

 

Obrigado

Compartilhar este post


Link para o post
Compartilhar em outros sites

Estatisticas de banco atualizadas ?

 

Tabelas tem triggers ?

 

Existem controles de transação , lock de tabelas ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom dia Motta

O problema é que sou novo em programação.

E fiz uma tabela normal sem pensar nesses detalhes.

Como que posso fazer para deixar mais rápido utilizando essas funções triggers, controles de transação, lock?

Agradeço a ajuda desde já.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Acho que um passo antes, seria entender como eh feita esta gravacao e a estrutura da tabela.

 

Acontece muitas vezes de nao tem um identity em um determinado campo por exemplo e via programacao ele pega o ultimo valor inserido + 1, calculado mesmo... deste modo demora mto para o SQL ler a tabela toda....

Isso eh soh um exemplo do que eu ja vi.

 

qual a versao do SQL? Q programacao esta em que?

Compartilhar este post


Link para o post
Compartilhar em outros sites

O problema é que podem ser diversas coisasve inclusive fatores concorrentes, difícil martelar um motivo.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Segue a sequencia:

 

'Verificando quantidade de registros
Set os = server.createobject("adodb.recordset")
Set os = db_conn.execute ("SELECT COUNT(*) AS temp FROM TB_PEDIDO_ITENS")

num_rows = os("temp")
os.Close()

for i = 1 to num_rows

id = Request.form("id_"&i)
quant = Request.form("quant_"&i)
equipamento = Request.form("equipamento_"&i)
lote_1 = Request.form("lote_1_"&i)
lote_2 = Request.form("lote_2_"&i)
caixa_1 = Request.form("caixa_1_"&i)
caixa_2 = Request.form("caixa_2_"&i)

usuario_altera = session("usuario_altera")
ip_altera = Request.ServerVariables("REMOTE_ADDR")

set os = db_conn.execute ("select * from TB_PEDIDO_ITENS where id = '"&id&"' order by id DESC")

if not os.eof then

'Atualiza informaçoes no INTERBASE 'TB_GERAR_OF_CAD_ITENS'
db_conn.execute ("update TB_PEDIDO_ITENS Set num_pedido = '"&num_pedido&"', situacao_pedido = '"&situacao_pedido&"', equipamento = '"&equipamento&"', quant = '"&quant&"', observacoes = '"&observacoes&"', lote_1 = '"&lote_1&"', lote_2 = '"&lote_2&"', caixa_1 = '"&caixa_1&"', caixa_2 = '"&caixa_2&"' WHERE id = " & cdbl(id))

'Atualiza informaçoes no INTERBASE 'TB_GERAR_OF_CAD'
db_conn.execute ("update TB_PEDIDO Set num_pedido = '"&num_pedido&"', situacao_pedido = '"&situacao_pedido&"' WHERE no_os = "&Request.QueryString("no_os"))

else
end if
next
set os = nothing

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.