2009-05-11 12 views

Respuesta

101

Sí. CommandTimeout es cuánto tiempo puede tomar un solo comando para completarse. ConnectionTimeout es cuánto tiempo puede tomar establecer una conexión con el servidor para comenzar.

Por ejemplo, puede estar ejecutando consultas de ejecución relativamente larga; está perfectamente bien que tarden 10 minutos en completarse, pero si se tardó 10 minutos en hacer la conexión para empezar, sabría que algo era muy mal

+0

Por curiosidad: Como el tiempo de espera predeterminado es de 30 segundos, ¿qué sucede si configuro CommandTimeout en 60 segundos pero no modifico ConnectionTimeout del valor predeterminado? – flipdoubt

+2

¿Qué quieres decir? O bien estás configurando CommandTimeout o no estás ... –

+4

Por el bien del argumento, digamos que tengo un! ** & # Q @? consulta que tarda 32 segundos en ejecutarse. Si configuro SqlCommand.CommandTimeout = 40 pero dejo SqlConnection.ConnectionTimeout en su valor predeterminado (probablemente 30), ¿se agotará el tiempo de espera de la conexión? En otras palabras, ¿tengo que establecer ambas propiedades? Parece que dices "no", pero debo haberme olvidado de la propiedad SqlConnection.ConnectionTimeout y empecé a preguntarme si configurar CommandTimeout hace todo lo que necesito. – flipdoubt

23

SqlCommand.CommandTimeout = límite de tiempo de espera para su consulta SQL. Significa, cuánto tiempo puede tomar una consulta (por ejemplo: SELECT, UPDATE) para su ejecución. Si excede SqlCommand.CommandTimeout, detiene la ejecución. Se producirá un error de tiempo de espera de comando.

SqlConnection.ConnectionTimeout = límite de tiempo de espera para su conexión. Significa, cuánto tiempo puede intentar conectar su objeto de conexión. Si excede el tiempo especificado, deja de conectarse. Se producirá un error de tiempo de espera de conexión.

10

ConnectionTimeout especifica la duración de espera antes de que se agote el tiempo de espera al intentar abrir un SqlConnection. Es relevante para el comando Connection.Open().

mientras

SqlCommand.CommandTimeout especifica la duración de un SqlCommand para esperar antes de tiempo de espera. Esto sucede después de que se haya abierto una conexión y se haya llamado a uno de los métodos ExecuteXXX en el objeto Command.

2
select @@LOCK_TIMEOUT //get the TIMEOUT,default is -1 
set LOCK_TIMEOUT = 600//set TIMEOUT with ms 
+1

Este es un tercer tipo de tiempo de espera. Ninguno de los dos pregunta el propietario del tema. Y no responde la pregunta. No lo haré, porque no sé cuál era la pregunta antes de las ediciones. –

6

Información adicional

valor predeterminado de CommandTimeout es de 30 segundos. Cero (0) indica que no hay límite. Puede establecer el valor CommandTimeout solo en Codificación.

El valor predeterminado de ConnectiontTimeout es de 15 segundos. Cero (0) indica que no hay límite también. El valor inferior a cero (valor negativo) obtendrá ArgumentException. Puede establecer el valor ConnectionTimeout tanto en el archivo de configuración como en el de configuración.

Cuestiones relacionadas