Error de conexion con SQL server

10/11/2006 - 09:53 por Rubén Castro | Informe spam
Tengo una aplicacion desarrollada con Visual Basic 6. Utilizo ADO para
conectar a la base de datos. El caso es que en un proceso de actualización
necesito recorrer unos 590.000 registros y en función de unos parametros
lanzar un SQL de inserción en otra tabla utilizando el método execute de un
ADODB.connection. En varios sistemas el proceso se realiza sin problemas
(los de desarrollo), pero en el sistema de producción el proceso se detiene
cada 3000 registros, saltando el siguiente error:

Error '-2147467259 (800004005)' en tiempo de ejecución:
[DBNETLIB][ConnectionOpen (Connect()).]No existe el servidor SQL o se ha
denegado el acceso al mismo.

¿Alguien puede darme una pista de lo que está ocurriendo?

Muchas gracias.
Un saludo.

Preguntas similare

Leer las respuestas

#1 Javier Loria
10/11/2006 - 14:17 | Informe spam
Hola Ruben:
Es posible que el proceso sea lo suficientemente pesado como para que el
servidor se quede al 100% del procesador y no este atendiendo las nuevas
conecciones?
Revisa con el Profiler el servidor para ver si esta al 100% de forma
continua durante el proceso.
Saludos,

Javier Loria
Costa Rica-MVP
Solid Quality Learning

"Rubén Castro" wrote in message
news:
Tengo una aplicacion desarrollada con Visual Basic 6. Utilizo ADO para
conectar a la base de datos. El caso es que en un proceso de actualización
necesito recorrer unos 590.000 registros y en función de unos parametros
lanzar un SQL de inserción en otra tabla utilizando el método execute de
un ADODB.connection. En varios sistemas el proceso se realiza sin
problemas (los de desarrollo), pero en el sistema de producción el proceso
se detiene cada 3000 registros, saltando el siguiente error:

Error '-2147467259 (800004005)' en tiempo de ejecución:
[DBNETLIB][ConnectionOpen (Connect()).]No existe el servidor SQL o se ha
denegado el acceso al mismo.

¿Alguien puede darme una pista de lo que está ocurriendo?

Muchas gracias.
Un saludo.

Respuesta Responder a este mensaje
#2 Maxi
11/11/2006 - 16:16 | Informe spam
Hola, yo ademas del procesador tambien veria el consumo de I/O, puede pasar
que este ultimo este por las nubes y el procesador muy bajo y sqlserver no
puede atender las conexiones o hasta realizar otros procesos.
Tambien te recomendaria revisar ese proceso, me parece muy malo hacer de una
la pasada de tantos registros a una tabla de produccion que a su vez la
estan consultando por otros lados, lo recomendado en estos casos es armar
una tabla intermedia sin indices (solo los PK) y cargar primero ahi, luego a
esa tabla hacerle un trigger for delete que pase a la de produccion y lo que
haces por ultimo es ir borrando de a poco (por ej de a 100 registros) de
esta tabla intermedia con lo cual haces que el motor tenga una carga mas
liviana y no se mueran los otros usuarios de tu sistema


Saludos

[Microsoft MVP SQL Server]
www.sqlgurus.org
Buenos Aires - Argentina
"Javier Loria" wrote in message
news:
Hola Ruben:
Es posible que el proceso sea lo suficientemente pesado como para que
el servidor se quede al 100% del procesador y no este atendiendo las
nuevas conecciones?
Revisa con el Profiler el servidor para ver si esta al 100% de forma
continua durante el proceso.
Saludos,

Javier Loria
Costa Rica-MVP
Solid Quality Learning

"Rubén Castro" wrote in message
news:
Tengo una aplicacion desarrollada con Visual Basic 6. Utilizo ADO para
conectar a la base de datos. El caso es que en un proceso de
actualización necesito recorrer unos 590.000 registros y en función de
unos parametros lanzar un SQL de inserción en otra tabla utilizando el
método execute de un ADODB.connection. En varios sistemas el proceso se
realiza sin problemas (los de desarrollo), pero en el sistema de
producción el proceso se detiene cada 3000 registros, saltando el
siguiente error:

Error '-2147467259 (800004005)' en tiempo de ejecución:
[DBNETLIB][ConnectionOpen (Connect()).]No existe el servidor SQL o se ha
denegado el acceso al mismo.

¿Alguien puede darme una pista de lo que está ocurriendo?

Muchas gracias.
Un saludo.





Respuesta Responder a este mensaje
#3 Rubén Castro
13/11/2006 - 10:32 | Informe spam
Muchas gracias por sus respuestas.

Como apuntaban, era problema de que el servidor se quedaba sin recursos. He
optimizado el código, filtrando la consulta principal, con lo que obtenemos
sólo los registros a actualizar y he creado una serie de indices sugeridos
por el analizador de consultas para las subconsultas que lanza el proceso.
Al final no sólo termina sin errores sino que lo hace en la décima parte de
tiempo.

Un saludo.
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida