¿Alguien sabe cómo configurar el tiempo de espera en un procedimiento almacenado? Encontré algunos ejemplos en el NET, por ejemplo sp_configure 'Query Timeout' remoto, 5, pero esto no funcionó. También encontré algunos comandos "DBPROP_COMMANDTIMEOUT" y "DBPROP_GENERALTIMEOUT", pero no sé si son los adecuados para usar y, en caso afirmativo, cómo usarlos en mi código Transact-SQL.Configuración del tiempo de espera de consulta en un procedimiento almacenado en SQL Server 2005
Respuesta
Nunca he oído hablar de establecer un tiempo de espera para ejecutar un procedimiento almacenado en el lado del servidor. Por lo general, debe especificar el tiempo de espera para el comando que ejecuta el procedimiento en el proveedor de datos que está utilizando, como ADO.NET.
Este article tiene una muy buena explicación sobre los tiempos de espera de consultas y cómo son solo un concepto del lado del cliente. Puede establecer el tiempo de espera de la consulta en el estudio de administración de SQL Server desde el menú Herramientas | Opciones.
Tiene que establecer el tiempo de espera cuando ejecuta el procedimiento almacenado en el cliente. En lo que respecta al servidor SQL, permitirá que el procedimiento almacenado se ejecute para siempre a menos que se le indique que lo cancele.
Como dijo Chris Tybur, no se puede esperar el tiempo de espera de la consulta para un proceso almacenado en el proceso almacenado o en el servidor SQL.
CommandTimeout es un concepto de cliente: el cliente abortará la consulta después de un cierto período de tiempo. No hay un temporizador o mecanismo de un hombre muerto para que un proceso almacenado se aborte a sí mismo/o cualquier consulta). El servidor SQL permitirá que una consulta se ejecute para siempre.
El "Remote Query Timeout" es exactamente eso: tiempo de espera cuando SQL Server realiza una llamada remota, cuando SQL Server es el cliente de otro servidor. Se dice en la descripción:
Este valor se aplica a un conexión saliente iniciada por el motor de base de como una consulta a distancia. Este valor no tiene ningún efecto en las consultas recibidas por Motor de base de datos.
Una pregunta reciente con buena información: - "¿Qué está sucediendo que desea evitar" timeout setting for SQL Server
Espere la verdadera pregunta es, Todos se han centrado en el lado del servidor, del lado del cliente, pero en realidad no sabemos por qué hace esta pregunta (y es importante).
Y otro "por qué": ¿por qué quiere establecer un tiempo de espera en un "procedimiento almacenado"? ¿Por qué no una vista, una función o una consulta? ¿Usó el término "procedimiento almacenado" por una razón en particular o simplemente estaría interesado en aprender cómo establecer un tiempo de espera en T-SQL?
Te lo pregunto porque me pregunto si tienes problemas de bloqueo y quizás SET LOCK_TIMEOUT 1000 o WITH (NOLOCK) sean lo que realmente necesitas. Sin más información, aunque no puedo decirlo. Si puede darnos más comentarios sobre por qué está preguntando, qué está sucediendo y qué es lo que finalmente quiere que suceda si se alcanza su "tiempo de espera", tal vez podamos ayudarlo más.
Conclusión: Sí, puede establecer un tiempo de espera en T-SQL y sí puede detener la ejecución de un procedimiento almacenado con T-SQL. Pero no sé lo suficiente sobre lo que quiere ofrecer consejos sobre dónde buscar o para darle más información. Estoy un poco asustado de que ya haya dicho demasiado :)
- 1. MS SQL Server 2005 - Procedimiento almacenado "Interrupciones espontáneas"
- 2. Cómo configurar el tiempo de espera para un procedimiento almacenado en SQL Server
- 3. tiempo de espera cuando llame a un procedimiento almacenado en SQL Server 2008
- 4. Forzando un tiempo de espera de consulta en SQL Server
- 5. Configuración de tiempo de espera para SQL Server
- 6. SQL Server 2005 replicación
- 7. Ejecutar el paquete SSIS de SQL Server del procedimiento almacenado
- 8. Forma más rápida de identificar la variación más utilizada del Procedimiento almacenado en SQL Server 2005
- 9. ¿Qué es un procedimiento almacenado con un icono de candado en SQL Server 2005?
- 10. Cambiar el nombre de un procedimiento almacenado en SQL Server
- 11. ¿Se debe otorgar el permiso CONTROL en un Procedimiento almacenado en SQL Server 2005?
- 12. SQL Server: transacción de procedimiento almacenado
- 13. nombre de tablas y vistas en procedimiento almacenado en sql server 2005
- 14. ¿Cómo puedo adjuntar y depurar un procedimiento almacenado de SQL Server almacenado?
- 15. Cómo crear un procedimiento almacenado dentro de otro procedimiento almacenado en SQL Server 2008
- 16. SQL Server procedimiento almacenado guía para principiantes
- 17. Fecha de última ejecución en un procedimiento almacenado en SQL Server
- 18. Valor devuelto en el procedimiento almacenado de SQL Server
- 19. Compruebe si una cadena contiene una subcadena en SQL Server 2005, utilizando un procedimiento almacenado
- 20. ¿Cuál es la mejor práctica para FTP de un procedimiento almacenado de SQL Server 2005?
- 21. Microsoft SQL Server - ¿Quién creó un Procedimiento almacenado?
- 22. Valor de retorno en el procedimiento almacenado de SQL Server
- 23. Tiempo de espera del procedimiento almacenado cuando se ejecutó desde el código, pero no desde la herramienta de consulta
- 24. Procedimiento almacenado de depuración en SQL Server 2008
- 25. ¿Cómo guardo un procedimiento almacenado en SQL Server 2008 R2?
- 26. SQL Server: variable opcional en un procedimiento almacenado
- 27. ¿Cómo creo condicionalmente un procedimiento almacenado en SQL Server?
- 28. Parámetros de salida de procedimiento almacenado en SQL Server Profiler
- 29. Tiempo de espera del trabajo de SQL Server
- 30. Configuración de classpath para un procedimiento almacenado Java en Oracle
Sí, es un tiempo de espera del cliente – gbn