Tenemos un procedimiento almacenado que se ejecuta cada noche y que a su vez da inicio a una serie de otros procedimientos. Algunos de esos procedimientos podrían lógicamente ejecutarse en paralelo con algunos de los otros.Iniciar procedimientos almacenados secuencialmente o en paralelo
- Como puedo indicar a SQL Server si un procedimiento se debe ejecutar en paralelo o en serie — es decir: arrancó de forma asíncrona o el bloqueo?
- Cuáles serían las implicaciones de ejecutarlos en paralelo, teniendo en cuenta que ya he determinado que los procesos no competirán por el acceso a la tabla o los bloqueos, solo el disco total io y la memoria. En su mayor parte, ni siquiera usan las mismas tablas.
- ¿Importa si algunos de esos procedimientos son el mismo procedimiento , solo con diferentes parámetros?
- Si comienzo un par o procedimientos de forma asincrónica, ¿hay un buen sistema en SQL Server para esperar a que ambos finalicen, o necesito que cada uno de ellos establezca una bandera en algún lugar y compruebe y sondee el indicador periódicamente usando
WAITFOR DELAY
?
Por el momento estamos todavía en SQL Server 2000.
Como nota al margen, esto es importante ya que el procedimiento principal se inició en respuesta a la finalización de un volcado de datos en el servidor de una sistema de mainframe El volcado del mainframe demora aproximadamente 2 horas cada noche y no tenemos control sobre él. Como resultado, estamos constantemente tratando de encontrar maneras de reducir los tiempos de procesamiento.
Un buen enlace en el lado de las cosas de Service Broker. http://rusanu.com/2009/08/05/asynchronous-procedure-execution/ –