TimeOut de SQL Server desde C#

22/10/2004 - 13:01 por Oriol | Informe spam
Hola a todos,

Tengo una aplicacion en Consola con C# que ataca a una BD en SQL Server.
Tengo una consulta bastante grande y me da timeouts. He modificado el
timeout desde C# pero me sigui dando timeout, y me da el error antes que se
acabe el tiempo que yo le he puesto. Como puedo indicar que espere mas? O
tambien tengo que indicarlo en el SQL Server?

Aqui pongo el codigo en C# para ayudarles:


SqlCommand cmd= new SqlCommand();

cmd.Connection = Connexion;

cmd.CommandTimeout = 600; // Pongo el TimeOut a 10 minutos.

cmd.CommandType = CommandType.StoredProcedure;

cmd.CommandText = "RecuperarDatos";

SqlDataAdapter da = new SqlDataAdapter(cmd);

DataSet ds = new DataSet();

da.Fill(ds,"Datos");

El problema como veis es que le doy 10 minutos de tiempo (estoy haciendo
pruebas) para devolver los datos, que ejecutados desde el Query Analizer me
tarda sobre 1:30 o 2 minutos. Porque sigui dando el problema?

Gracias y saludos.

Oriol.

Preguntas similare

Leer las respuestas

#16 Oriol
02/11/2004 - 17:59 | Informe spam
Hola Juan,

He mirado tus dos replies, y en mi codigo hago exactamente lo que me
comentas, augmentar el TimeOut en cada una de las SQLCommand que me dan
problemas. La primera la subo a 120 y la segunda a 180, que es un tiempo
superior al que me dan dichos storeds ejecutados en el Query Analizer.
Tambien he mirado y efectivamente tengo instalado el MDAC 2.8. Tambien he
cambiado el timeout general del Servidor a 240 por si acaso.

Aun asi, sigue dandome Timeouts cuando ejecuto los Storeds desde mi codigo
en C#.

Alguna idea mas? Ya no se que hacer!

Mil gracias a todos.

Un saludo,
Oriol.

"Juan Astorga M" escribió en el mensaje
news:
SqlCommand cmd = new SqlCommand(Sqlcommand);

cmd.CommandType = CommandType.StoredProcedure;

cmd.CommandTimeout = 120; // Aqui tu le asignas el tiempo de espera



Ojo que al crear una nueva variable SqlCommand u OleDbCommand el tiempo


por
defecto se setea en 30.



Chao





"Oriol" <intranet[arroba]rvsa-itv.com> escribió en el mensaje
news:Oliq$
> Algun consejo?
>
> Gracias.
> Oriol.
>
>
> "Oriol" <intranet[arroba]rvsa-itv.com> escribió en el mensaje
> news:%
> > Hola Gustavo,
> >
> > Ciertamente en el Query Analizer los queries tardan 1:30 y 1:00


minutos
> > aproximadamente cada uno (tengo dos que me dan problemas). Realmente


es
> muy
> > raro porque los lanzo simultaniamente desde codigo y con el
QueryAnalizer
> y
> > pasa lo mismo.
> >
> > El problema es que a veces da timeout y a veces no.
> >
> > Que puede estar pasando? Tengo que tocar algo del servidor? Porque no
hace
> > caso de mi parametro de timeout?
> >
> > Gracias y saludos,
> > Oriol.
> >
> >
> > "Gustavo Larriera [MVP]" escribió en el
mensaje
> > news:OZnn$
> > > Oriol dice que la consulta ejecuta en pocos minutos en el Query
Analyzer
> > (5
> > > veces en menos tiempo, que el tiempo definido como timeout en la
> > > aplicación). Tal vez el timeout sea solamente el síntoma de otro
> problema
> > de
> > > conectividad.
> > >
> > > Gustavo Larriera, MVP
> > > Uruguay LatAm
> > > http://sqljunkies.com/weblog/gux/
> > > Este mensaje se proporciona "COMO ESTA" sin garantias y no otorga
ningun
> > > derecho / This posting is provided "AS IS" with no warranties, and
> confers
> > > no rights.
> > > "Tinoco" wrote in message
> > > news:
> > > > Hola
> > > >
> > > > 1. En el ConnectionString, existe un parametro Timeout, para no
tener
> > > > problemas de desconexión este valor debería de ser cero (0).
> > > >
> > > > 2. cmd.CommandTimeout = 0;
> > > >
> > > > Hermilson T.
> > > > MCDBA, MCSD
> > > > Colombia
> > > >
> > > > "Oriol" wrote:
> > > >
> > > >> Hola a todos,
> > > >>
> > > >> Tengo una aplicacion en Consola con C# que ataca a una BD en SQL
> > Server.
> > > >> Tengo una consulta bastante grande y me da timeouts. He


modificado
el
> > > >> timeout desde C# pero me sigui dando timeout, y me da el error
antes
> > que
> > > >> se
> > > >> acabe el tiempo que yo le he puesto. Como puedo indicar que


espere
> mas?
> > O
> > > >> tambien tengo que indicarlo en el SQL Server?
> > > >>
> > > >> Aqui pongo el codigo en C# para ayudarles:
> > > >>
> > > >>
> > > >> SqlCommand cmd= new SqlCommand();
> > > >>
> > > >> cmd.Connection = Connexion;
> > > >>
> > > >> cmd.CommandTimeout = 600; // Pongo el TimeOut a 10 minutos.
> > > >>
> > > >> cmd.CommandType = CommandType.StoredProcedure;
> > > >>
> > > >> cmd.CommandText = "RecuperarDatos";
> > > >>
> > > >> SqlDataAdapter da = new SqlDataAdapter(cmd);
> > > >>
> > > >> DataSet ds = new DataSet();
> > > >>
> > > >> da.Fill(ds,"Datos");
> > > >>
> > > >> El problema como veis es que le doy 10 minutos de tiempo (estoy
> > haciendo
> > > >> pruebas) para devolver los datos, que ejecutados desde el Query
> > Analizer
> > > >> me
> > > >> tarda sobre 1:30 o 2 minutos. Porque sigui dando el problema?
> > > >>
> > > >> Gracias y saludos.
> > > >>
> > > >> Oriol.
> > > >>
> > > >>
> > > >>
> > > >>
> > > >>
> > >
> > >
> >
> >
>
>


Respuesta Responder a este mensaje
#17 Juan Astorga
03/11/2004 - 13:51 | Informe spam
Oriel :

Otras ideas
- Revisar versión de MDAC del servidor SQL
- Para mi problema subi el TimeOut a 600 (exagerado no) sin embargo como es
un servidor de producción no soy el único que realiza Querys y como el
servidor a veces se encuentra un poco saturado ...
- Otra opción es revisar la conectividad de redes
- Si trabajas en modo local revisa la documentación del protocolo de red de
memoria compartida (solo para local) esto se logra colocando lpc en el
string de conexion : ej
DatabaseºSEDEDATOS;Server=lpc:EQUIPO_SERVER;Integrated Security=true, con
lpc trabaja bastante rapido, el problema es que solo funciona localmente.

No se me ocurre nada mas !!!!
Avisame si lo solucionas y como?

Juan

"Oriol" <intranet[arroba]rvsa-itv.com> escribió en el mensaje
news:%
Hola Juan,

He mirado tus dos replies, y en mi codigo hago exactamente lo que me
comentas, augmentar el TimeOut en cada una de las SQLCommand que me dan
problemas. La primera la subo a 120 y la segunda a 180, que es un tiempo
superior al que me dan dichos storeds ejecutados en el Query Analizer.
Tambien he mirado y efectivamente tengo instalado el MDAC 2.8. Tambien he
cambiado el timeout general del Servidor a 240 por si acaso.

Aun asi, sigue dandome Timeouts cuando ejecuto los Storeds desde mi codigo
en C#.

Alguna idea mas? Ya no se que hacer!

Mil gracias a todos.

Un saludo,
Oriol.

"Juan Astorga M" escribió en el mensaje
news:
> SqlCommand cmd = new SqlCommand(Sqlcommand);
>
> cmd.CommandType = CommandType.StoredProcedure;
>
> cmd.CommandTimeout = 120; // Aqui tu le asignas el tiempo de espera
>
>
>
> Ojo que al crear una nueva variable SqlCommand u OleDbCommand el tiempo
por
> defecto se setea en 30.
>
>
>
> Chao
>
>
>
>
>
> "Oriol" <intranet[arroba]rvsa-itv.com> escribió en el mensaje
> news:Oliq$
> > Algun consejo?
> >
> > Gracias.
> > Oriol.
> >
> >
> > "Oriol" <intranet[arroba]rvsa-itv.com> escribió en el mensaje
> > news:%
> > > Hola Gustavo,
> > >
> > > Ciertamente en el Query Analizer los queries tardan 1:30 y 1:00
minutos
> > > aproximadamente cada uno (tengo dos que me dan problemas). Realmente
es
> > muy
> > > raro porque los lanzo simultaniamente desde codigo y con el
> QueryAnalizer
> > y
> > > pasa lo mismo.
> > >
> > > El problema es que a veces da timeout y a veces no.
> > >
> > > Que puede estar pasando? Tengo que tocar algo del servidor? Porque


no
> hace
> > > caso de mi parametro de timeout?
> > >
> > > Gracias y saludos,
> > > Oriol.
> > >
> > >
> > > "Gustavo Larriera [MVP]" escribió en el
> mensaje
> > > news:OZnn$
> > > > Oriol dice que la consulta ejecuta en pocos minutos en el Query
> Analyzer
> > > (5
> > > > veces en menos tiempo, que el tiempo definido como timeout en la
> > > > aplicación). Tal vez el timeout sea solamente el síntoma de otro
> > problema
> > > de
> > > > conectividad.
> > > >
> > > > Gustavo Larriera, MVP
> > > > Uruguay LatAm
> > > > http://sqljunkies.com/weblog/gux/
> > > > Este mensaje se proporciona "COMO ESTA" sin garantias y no otorga
> ningun
> > > > derecho / This posting is provided "AS IS" with no warranties, and
> > confers
> > > > no rights.
> > > > "Tinoco" wrote in message
> > > > news:
> > > > > Hola
> > > > >
> > > > > 1. En el ConnectionString, existe un parametro Timeout, para no
> tener
> > > > > problemas de desconexión este valor debería de ser cero (0).
> > > > >
> > > > > 2. cmd.CommandTimeout = 0;
> > > > >
> > > > > Hermilson T.
> > > > > MCDBA, MCSD
> > > > > Colombia
> > > > >
> > > > > "Oriol" wrote:
> > > > >
> > > > >> Hola a todos,
> > > > >>
> > > > >> Tengo una aplicacion en Consola con C# que ataca a una BD en


SQL
> > > Server.
> > > > >> Tengo una consulta bastante grande y me da timeouts. He
modificado
> el
> > > > >> timeout desde C# pero me sigui dando timeout, y me da el error
> antes
> > > que
> > > > >> se
> > > > >> acabe el tiempo que yo le he puesto. Como puedo indicar que
espere
> > mas?
> > > O
> > > > >> tambien tengo que indicarlo en el SQL Server?
> > > > >>
> > > > >> Aqui pongo el codigo en C# para ayudarles:
> > > > >>
> > > > >>
> > > > >> SqlCommand cmd= new SqlCommand();
> > > > >>
> > > > >> cmd.Connection = Connexion;
> > > > >>
> > > > >> cmd.CommandTimeout = 600; // Pongo el TimeOut a 10 minutos.
> > > > >>
> > > > >> cmd.CommandType = CommandType.StoredProcedure;
> > > > >>
> > > > >> cmd.CommandText = "RecuperarDatos";
> > > > >>
> > > > >> SqlDataAdapter da = new SqlDataAdapter(cmd);
> > > > >>
> > > > >> DataSet ds = new DataSet();
> > > > >>
> > > > >> da.Fill(ds,"Datos");
> > > > >>
> > > > >> El problema como veis es que le doy 10 minutos de tiempo (estoy
> > > haciendo
> > > > >> pruebas) para devolver los datos, que ejecutados desde el Query
> > > Analizer
> > > > >> me
> > > > >> tarda sobre 1:30 o 2 minutos. Porque sigui dando el problema?
> > > > >>
> > > > >> Gracias y saludos.
> > > > >>
> > > > >> Oriol.
> > > > >>
> > > > >>
> > > > >>
> > > > >>
> > > > >>
> > > >
> > > >
> > >
> > >
> >
> >
>
>


Respuesta Responder a este mensaje
#18 Pedro Luna Montalvo, MVP
03/11/2004 - 16:44 | Informe spam
Otras ideas
- Revisar versión de MDAC del servidor SQL
- Para mi problema subi el TimeOut a 600 (exagerado no) sin embargo como
es
un servidor de producción no soy el único que realiza Querys y como el
servidor a veces se encuentra un poco saturado ...
- Otra opción es revisar la conectividad de redes
- Si trabajas en modo local revisa la documentación del protocolo de red
de
memoria compartida (solo para local) esto se logra colocando lpc en el
string de conexion : ej
DatabaseºSEDEDATOS;Server=lpc:EQUIPO_SERVER;Integrated Security=true,
con
lpc trabaja bastante rapido, el problema es que solo funciona localmente.

No se me ocurre nada mas !!!!



Saludos,

Para mi el problema se debe al Query y no al cliente.
¿Usas algun ciclo en tu query?
¿Estas seguro de que los parametros del Query estan recibiendo los valores
que tu esperas?

Pedro Luna, [MVP VB.NET]
Gye, Ecu
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una pregunta AnteriorRespuesta Tengo una respuesta
Search Busqueda sugerida