ASP 2.0 e Stored Procedure

lunedì 20 novembre 2006 - 16.06

gmt Profilo | Junior Member

Salve,

come faccio da una pagina asp 2.0 a lanciare una stored procedure (SQL Server 2000) e capire quando questa ha terminato la propria elaborazione (puo' durare alcuni minuti) ?

Grazie in anticipo
Gian Mario

Brainkiller Profilo | Guru

>come faccio da una pagina asp 2.0 a lanciare una stored procedure
>(SQL Server 2000) e capire quando questa ha terminato la propria

Stai parlando di ASP classico o di ASP.NET 2.0 ?

Generalmente il richiamo di Stored Procedure è sincrono quindi l'esecuzione del codice si blocca fino a quando non ritorna la chiamata alla Stored Procedure.

>elaborazione (puo' durare alcuni minuti) ?

Se dura alcuni minuti o c'è qualche problema sulla base dati mal disegnata, o mancano degli indici o le query sono scritte male. Può durare alcuni minuti se ci troviamo di fronte ad una mole dati veramente enorme non so se è il tuo caso.
Magari vale la pena di schedularla piuttosto che lanciarla così da Web.
Ciao

David De Giacomi | Microsoft MVP
http://blogs.dotnethell.it/david/

gmt Profilo | Junior Member

Parlo di ASP Classico, gli indici ci sono.. parliamo di 1.400.000 record e per ogni record deve controllare se esiste una sua storia.. e se vengono rispettati alcuni parametri deve cancellare alcuni record, altrimenti lasciare e passare al successivo.

Comunque potrei pensare di lanciare un job, che lancia una stored procedure, così l'operatore non deve aspettare.. dovrei solo controllare che non ne lanci un secondo.. è possibile controllare se una stored procedure è già in esecuzione?

Grazie in anticipo
Gian Mario

Brainkiller Profilo | Guru

>Comunque potrei pensare di lanciare un job, che lancia una stored
>procedure, così l'operatore non deve aspettare.. dovrei solo
>controllare che non ne lanci un secondo.. è possibile controllare
>se una stored procedure è già in esecuzione?

Potresti fornire ulteriori dettagli sulla natura dei records, e inoltre ogni quanto dev'essere fatta l'operazione. Io ti proponevo l'opportunità di schedularla se dev'essere eseguita in modo non interattivo ossia non mentre l'utente è loggato ma in un secondo momento, tipo di notte o ogni tot ore o minuti.
Ciao

David De Giacomi | Microsoft MVP
http://blogs.dotnethell.it/david/

lbenaglia Profilo | Guru

>Parlo di ASP Classico, gli indici ci sono.. parliamo di 1.400.000
>record e per ogni record deve controllare se esiste una sua storia..

Ciao Gian Mario,

Stai dicendo che nella stored procedure hai un cursore che cicla 1.400.000 righe una alla volta?
Ti prego, dimmi di no

>Comunque potrei pensare di lanciare un job, che lancia una stored
>procedure, così l'operatore non deve aspettare.. dovrei solo
>controllare che non ne lanci un secondo.. è possibile controllare
>se una stored procedure è già in esecuzione?

Puoi controllare che il job non sia già in esecuzione.
Un job lo puoi lanciare con la stored procedure di sistema sp_start_job, ed il suo stato puoi verificarlo con un'altra stored procedure di sistema chiamata sp_help_job. Specificando il parametro @execution_status = 1 (in esecuzione) otterrai l'elenco dei job in esecuzione. Puoi materializzare il risultato in una tabella temporanea ed interrogandola se il job compare nel resultset,
significa che è in esecuzione e quindi non devi cercare di rieseguirlo mediante una nuova sp_start_job.

"sp_start_job (Transact-SQL)"
http://msdn2.microsoft.com/it-it/library/ms186757.aspx

"sp_help_job (Transact-SQL)"
http://msdn2.microsoft.com/it-it/library/ms186722.aspx

>Grazie in anticipo
Prego.

Ciao!
--
Lorenzo Benaglia
Microsoft MVP - SQL Server
http://blogs.dotnethell.it/lorenzo/
http://italy.mvps.org
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5