Ejecutar SP en segundo plano

14/05/2008 - 23:42 por Francisco | Informe spam
Tenemos una aplicación ASP.Net y Base de Datos SQL Server 2005, en la
cual existe un proceso de cierre creado en un Stored Procedure, el
cual por cada distribuidor se tarda un promedio de 12 minutos.

Quisiera saber si existe una forma de invocar la ejecución de este SP
para que se realice en segundo plano y no detener la aplicación.

Gracias anticipadas por sus sugerencias.

Preguntas similare

Leer las respuestas

#1 Maxi Accotto
15/05/2008 - 01:52 | Informe spam
Hola, usted habla de programacion asincronica, creo que con ASP.NET lo puede
hacer por medio de ADo, el SQLClient de 2005 soporta ejecucion asincronica,
lo que no se es como desde ASP.NEt usted debe programar eso, ya le diria que
pregunte en un foro de ASP, pero le repito, SQLClient soporta ejecucion
asincronica


Microsoft MVP SQLServer
www.sqltotalconsulting.com
-

"Francisco" escribió en el mensaje de
noticias:
Tenemos una aplicación ASP.Net y Base de Datos SQL Server 2005, en la
cual existe un proceso de cierre creado en un Stored Procedure, el
cual por cada distribuidor se tarda un promedio de 12 minutos.

Quisiera saber si existe una forma de invocar la ejecución de este SP
para que se realice en segundo plano y no detener la aplicación.

Gracias anticipadas por sus sugerencias.
Respuesta Responder a este mensaje
#2 Mauro Pasetti
15/05/2008 - 06:13 | Informe spam
A mi me pasaron una vez un ejemplo que funcionaba sobre SQL Server 2000.
Creaba un objeto en SQL y sobre ese objeto ejecutaba la instrucción SQL en
segundo plano... la verdad es que no lo encuentro, pero lo mandé a pedir.
Si me lo pasan, te lo posteo.
Mi amigo lo encontró en internet... fijate... yo busque pero no pude
encontrar nada.

Salu2, Mauro.


"Francisco" escribió en el mensaje
news:
Tenemos una aplicación ASP.Net y Base de Datos SQL Server 2005, en la
cual existe un proceso de cierre creado en un Stored Procedure, el
cual por cada distribuidor se tarda un promedio de 12 minutos.

Quisiera saber si existe una forma de invocar la ejecución de este SP
para que se realice en segundo plano y no detener la aplicación.

Gracias anticipadas por sus sugerencias.
Respuesta Responder a este mensaje
#3 Petercito
15/05/2008 - 21:57 | Informe spam
Hola:

Que tal si le programas una tarea que ejecute el sp que hace el cierre cada
que se cumpla cierta condición.
Pedro Calapi


"Francisco" wrote:

Tenemos una aplicación ASP.Net y Base de Datos SQL Server 2005, en la
cual existe un proceso de cierre creado en un Stored Procedure, el
cual por cada distribuidor se tarda un promedio de 12 minutos.

Quisiera saber si existe una forma de invocar la ejecución de este SP
para que se realice en segundo plano y no detener la aplicación.

Gracias anticipadas por sus sugerencias.

Respuesta Responder a este mensaje
#4 Mauro Pasetti
16/05/2008 - 04:23 | Informe spam
Creo que están mezclado en orden de los SP, pero están todos.

SET QUOTED_IDENTIFIER ON
GO
SET ANSI_NULLS ON
GO

Use Master
Go

/*
Set task priority in MS SQL
Next stored procedure let's you set thread priority in MSSQL.
You can use the function to set some task in idle or another priority.
*/

If (Exists( select * from dbo.sysobjects where name =
N'xp_set_thread_priority' AND type='P'))
drop procedure [dbo].[xp_set_thread_priority]
GO

Create Procedure xp_set_thread_priority(
@Priority int = 0,
@PriorityBoost int = 1) -- with
encryption
/**************************************************************************
* Nombre del proceso: [dbo].[xp_set_thread_priority]
* Descripción: Proceso para ejecutar otros procesos, con
prioridad de trabajo.-
* Autor: Desconocido.
* Fecha de Creación: 12/10/2007
* Base de Datos: Test.-
**************************************************************************/
As
Begin
declare @Thread int,
@OLEResult int,
@Out int

exec @OLEResult = sp_OACreate 'ScriptUtils.Thread', @Thread out

If ( @OLEResult <> 0 )
0x%X', 1, 1, @OLEResult)
exec sp_DisplayOAErrorInfo @Thread, @OLEResult

Else
Begin
exec @OLEResult = sp_OASetProperty @Thread, 'PriorityBoost',
@PriorityBoost
If @OLEResult <> 0
1, 1, @OLEResult)
exec sp_DisplayOAErrorInfo @Thread, @OLEResult

exec @OLEResult = sp_OASetProperty @Thread, 'Priority', @Priority
If @OLEResult <> 0
@OLEResult)
exec sp_DisplayOAErrorInfo @Thread, @OLEResult

exec @OLEResult = sp_OADestroy @Thread
End

Return @OLEResult

End -- Main Begin
GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO

Create Procedure sp_DisplayOAErrorInfo(
@object int,
@hresult int )
As
declare @output varchar(255),
@hrhex char(10),
@hr int,
@source varchar(255),
@description varchar(255)

Print ''
Print '<< OLE Automation Error Information. >>'
Print ''

exec sp_hexadecimal @hresult, @hrhex out

set @output = ' HResult is: ' + @hrhex
Print @output
exec @hr = sp_OAGetErrorInfo @object, @source out, @description out
If (@hr = 0)
Begin
set @output = ' Source: ' + @source
Print ''
Print Replicate('*', 80)
Print ' 1) Error -> ' + @output
set @output = ' Description: ' + @description
Print ' 2) Error -> ' + @output
Print Replicate('*', 80)
Print ''
End
Else
Begin
Print ''
Print Replicate('*', 80)
Print ' sp_OAGetErrorInfo failed.'
Print Replicate('*', 80)
Print ''
Return
End -- If (@hr = 0)
GO

Create Procedure sp_Hexadecimal
@binvalue varbinary(255),
@hexvalue varchar(255) output
As

declare @charvalue varchar(255),
@i int,
@length int,
@hexstring char(16)

set @charvalue = '0x'
set @i = 1
set @length = DataLength(@binvalue)
set @hexstring = '0123456789abcdef'

While (@i <= @length)
Begin
declare @tempint int,
@firstint int,
@secondint int

set @tempint = Convert(int, substring(@binvalue, @i, 1))
set @firstint = floor(@tempint / 16)
set @secondint = @tempint - (@firstint*16)
set @charvalue = @charvalue +
substring(@hexstring, @firstint + 1, 1) +
substring(@hexstring, @secondint + 1, 1)
select @i = @i + 1
End -- While (@i <= @length)

set @hexvalue = @charvalue
GO



/*
Examples

Set task priority in MS SQL
Next stored procedure let's you set thread priority in MSSQL.
You can use the function to set some task in idle or another priority.
*/

exec Test_PNSSRL..xp_set_thread_priority -15, 0


exec sp_helpdb

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