Ir para conteúdo

POWERED BY:

Arquivado

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

Thiagojpa

pssa do asp para stored procedure

Recommended Posts

mes = request("mes")

	
	Sql = "SELECT ID, LOCF, CIRC, FMUN, FBAI, FREF, FNUM, DSCR FROM "&mes&";"
	
	Set Rs = dbConn.execute(Sql)
	
	Response.Write("<BR>Hora do Término da consulta: "&now())
	Do While Not Rs.EOF
		
		
		LocfBase = UCase(Rs("LOCF"))
		circ = Rs("CIRC")
		
				
		if Locfbase = ""  then
		
			FREF = Rs("FREF")
			Sql2 = "SELECT * FROM LOCF WHERE LOCF_ERRO = '" & LocfBase & "' AND circ = '" & circ &"' AND FREF ='" & FREF & "';"
			
		else
			Sql2 = "SELECT * FROM LOCF WHERE LOCF_ERRO = '" & LocfBase & "'"
			
		end if
		
		Set Rs2 = dbConn.execute(Sql2)
		
				
		if NOT Rs2.EOF Then
		
			
			response.Write(" - Verdadeiro<br><br><br>")
					
		Else 
		
			
			Sql4 = "INSERT INTO LOCF_ERRO (LOCF_ERRO, CIRC, FMUN, FBAI, FREF, FNUM, DSCR, ID_DBF) VALUES ('" & Rs("LOCF") & "', " & Rs("CIRC") & ",'" & Rs("FMUN") & "', '" & Rs("FBAI") & "', '" & Rs("FREF") & "','" & Rs("FNUM") & "','" & Rs("DSCR") & "', " & Rs("ID") & ");"
			set Rs4 = dbConn.execute(Sql4)	
				
		end if
		
	Rs.MoveNext
	loop
	rs.close

 

com a necessidade de diminuir o tempo da consulta , resolvi colocar as consultas atraves de stored procedure

 

 

minha duvida é. transformo todo esse comando ou apenas as consulta ?

 

 

e se eu colocar apenas as consultas e a inserção

 

Sql2 = "SELECT * FROM LOCF WHERE LOCF_ERRO = '" & LocfBase & "' AND circ = '" & circ &"' AND FREF ='" & FREF & "';"
Sql4 = "INSERT INTO LOCF_ERRO (LOCF_ERRO, CIRC, FMUN, FBAI, FREF, FNUM, DSCR, ID_DBF) VALUES ('" & Rs("LOCF") & "', " & Rs("CIRC") & ",'" & Rs("FMUN") & "', '" & Rs("FBAI") & "', '" & Rs("FREF") & "','" & Rs("FNUM") & "','" & Rs("DSCR") & "', " & Rs("ID") & ");"
Essa que esta deixando meu sistema bem lento, 200 mil linhas

Sql = "SELECT ID, LOCF, CIRC, FMUN, FBAI, FREF, FNUM, DSCR FROM "&mes&";"

 

se eu fizer só as consulta , vou ganhar tempo? ou vai ser a mesma coisa?

Compartilhar este post


Link para o post
Compartilhar em outros sites

pelo código acima, você ja esta criando a string SQL e executando ela atraves da página, pelo metodo execute do obj connection, fora isso não entendi muito bem sua duvida.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Então, minha dúvida é o seguinte. quero fazer minhas consultas diretamente no banco, através da stored procedure.

 

esta muito lento para rodar essa rotina, um banco de 200 mil, esta demorando 3 horas.

 

queria saber se devo passar essa rotina inteira ou apenas as consultas

 

Sql2 = "SELECT * FROM LOCF WHERE LOCF_ERRO = '" & LocfBase & "' AND circ = '" & circ &"' AND FREF ='" & FREF & "';"

Sql4 = "INSERT INTO LOCF_ERRO (LOCF_ERRO, CIRC, FMUN, FBAI, FREF, FNUM, DSCR, ID_DBF) VALUES ('" & Rs("LOCF") & "', " & Rs("CIRC") & ",'" & Rs("FMUN") & "', '" & Rs("FBAI") & "', '" & Rs("FREF") & "','" & Rs("FNUM") & "','" & Rs("DSCR") & "', " & Rs("ID") & ");"

 

eu acho que meu maior probblema é aqui, tem 200 mil liinhas

 

Sql = "SELECT ID, LOCF, CIRC, FMUN, FBAI, FREF, FNUM, DSCR FROM "&mes&";"

Compartilhar este post


Link para o post
Compartilhar em outros sites

você deve passar a string SQL inteira na página para executar normalmente, e olha este linkpara stored procedure

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.