- Home
- Categorie
- Coding e Sistemistica
- Altri linguaggi per il web
- [SQL] Stored procedure chiamata da ASP
-
Sicuramente va in timeout da codice...
La procedura non è proprio semplicissima come esecuzione, fa anche uso di cursori e se i record sono centinaia di migliaia di sicuro non è veloce. Guarda il tempo che ci mette da query analyzer. Li la esegue perchè non esiste timeout. Può impiegarci anche 5 giorni.
Le cose sono 2. O provi ad ottimizzarla (usa gli indici sui campi where) o la esegui solo da analyzer.
Se il tempo di esecuzione non è esagerato puoi alzarlo un po via codice.server.scriptTimeout=n_secondi (in asp classic)
Page.Server.ScriptTimeout = 60 (in vb.net)
-
Non è il timeout ci mette 4 secondi ad eseguire entrambe le procedure...
Il server però ha molte richieste al giorno, tieni conto che ci sono 150 utenti che lo usano costantemente e fanno decine di richieste al minuto, infatti pare proprio che quando le richieste aumentano vengono inseriti meno record nella tabella e viceversa quando le richieste diminuiscono vengono inseriti + record nella mia tabella.
Che posso fare!?!?!?
Come posso dire alla stored procedure "ESEGUI IL MIO CODICE FINO IN FONDO PRIMA DI USCIRE..." !?!?!?fammi sapere
grazie
ciao
-
Forse è una questione di permessi
Sul query analyzer ti logghi come sa? Prova a loggarti con lo stesso utente col quale ti connetti al database e vedi se ti esegue tutta la procedura
-
Uso lo stesso utente da ambo le parti...
Sembra quasi che mi serva un ROLLBACK o qualche cosa del genere... che ne dite!?!?grazie
ciao
-
-
A sto punto non saprei. E' un po difficile capire senza metterci le mani sopra.
i sintomi sono quelli del timeout ma se mi dici che la stored è veloce non saprei.
Magari è il webserver che è troppo lento a causa delle troppe connessioni
-
Pensate ho provato il ROLLBACK e non inserisce nulla nella tabella
Di seguito il codice che ho inserito come rollback--al'inizio della procedura ho messo BEGIN TRAN --mentre alla fine della procedura ho messo IF (@@ERROR<>0) GOTO on_error COMMIT TRAN RETURN (1) on_error: ROLLBACK TRAN RETURN (-1)
che dite dovrebbe essere giusto!?
non so + che fare... qualche suggerimento!?!?!?!?!?!?!?!?grazie
ciao
-
Io sono convinto che non è un problema di database ma dipende sicuro da qualcosa che sta a monte...
Se la stored funziona nell'analizyer allora il db non c'entra sicuro.
-
Cosa mi consigli di guardare!?
fammi saperegrazie
ciao
-
Crea una tabella di prova con 1 campo testo.
Crea una nuova stored che accetti un parametro nvarchar in ingresso e che inserisca il valore nella nuova tabella creata.
Chiama la stored passandogli il parametro e vedi se inserisce il valore.
Comincia ad escludere almeno se c'è un problema di comunicazione con il database o se è quella stored a non rispondere.
-
@FuSioNmAn said:
Crea una tabella di prova con 1 campo testo.
Crea una nuova stored che accetti un parametro nvarchar in ingresso e che inserisca il valore nella nuova tabella creata.
Chiama la stored passandogli il parametro e vedi se inserisce il valore.
Comincia ad escludere almeno se c'è un problema di comunicazione con il database o se è quella stored a non rispondere.Questo lo fa... anche perchè comunque ci sono centinaia di richieste al giorno... sembra che sia solo quando deve inserire un certo numero di dati in 2 tabelle diverse tramite un ciclo sql...
Comunque abbiamo escluso che sia problema di comunicabilità, cos'altro posso fare!?
confido in te, grazie
ciao
-
Incolla il codice asp della pagina che chiama la stored.
Tutto il codice asp, non solo dove chiama la stored.
-
@FuSioNmAn said:
Incolla il codice asp della pagina che chiama la stored.
Tutto il codice asp, non solo dove chiama la stored.Ecco il codice ASP che mi hai chiesto
<%@ Language=VBScript %> <% Response.buffer = true %> <html> <!-- #INCLUDE FILE="Constants.asp" --> <head> <link rel="STYLESHEET" type="text/css" href="StyleSheets/styleStampa.css"> <meta NAME="GENERATOR" Content="Microsoft Visual Studio 6.0"> <meta HTTP-EQUIV="Cache-Control" CONTENT="no_cache"> <meta HTTP-EQUIV="Pragma" CONTENT="no_cache"> <meta HTTP-EQUIV="Expires" CONTENT="0"> <script language="javascript" src="js/Utility.js"></script> </head> <body> <% dim conn dim rsImportViaggi dim rsImportOperatoriNoSuGiro Response.expires=0 Response.CacheControl="private" Server.ScriptTimeout = 2000 set conn = server.CreateObject("ADODB.Connection") conn.Open Session("Connessione") set rsImportViaggi = server.CreateObject ("ADODB.recordset") set rsImportViaggi = conn.Execute ("Sp_IMPORT_RM5_Viaggi_Rds") %> <br><br><br><br> <center> IMPORT VIAGGI R.D.S. NEL PORTALE<br>AVVENUTO CON SUCCESSO... </center> <% set rsImportOperatoriNoSuGiro = server.CreateObject ("ADODB.recordset") set rsImportOperatoriNoSuGiro = conn.Execute ("Sp_IMPORT_RM5_Operatore_No_Su_Giro") %> <br><br><br><br> <center> IMPORT OPERATORI NO SU GIRO NEL PORTALE<br>AVVENUTO CON SUCCESSO... </center> <% 'Chiude rs e conn rsImportViaggi.close set rsImportViaggi = nothing rsImportOperatoriNoSuGiro.close set rsImportOperatoriNoSuGiro = nothing conn.Close set conn = nothing %> </body> </html>
ciao, ciao
-
Avanti ragazzi, ma proprio + nessuno mi sa aiutare...!?
dai forza e coraggio a me è rimasto il problema inrisolto... non vorrete lasciare un povero ragazzo in alto mare!!AIUTO!!
grazie
ciao