Ciao a tutti... vi spiego il mio problema.....
ho una pagina in asp contenente un form di inserimento di dati.
Cliccando su Invia i dati... mi esegue l' upload di un file a mia scelta e invia la mail direttamente all'utente a cui si scrive l' indirizzo e mail...inoltre fa altri controlli sull' intero database...
il Dabatase e un Database aziendale e contiene circa 13.000 record..... il fatto e che per eseguire tutto rallenta da far paura....ho notato pero che se cancello la meta dei record e molto molto piu veloce ( ma cosi va bene )...per con tutti i record e una chiavica e succede che la connessione va in timeout....

C'e un sistema per velocizzare il tutto ???? Questa e la pagina che esegue il tutto ....GRAZIE

<head>
<title>INSERISCI DOCUMENTO</title>
<link href="stile.css" rel="stylesheet" type="text/css">
<script type="text/javascript" src="js/jquery.js"></script>
<script type="text/javascript" src="js/interface.js"></script>
<link href="stylemenu.css" rel="stylesheet" type="text/css" />

</head>




<%
Dim oUpload
Dim oFile
Dim sFileName
Dim oFSO
Dim sPath 'percorso del file
Dim sNewData
Dim nLength
Dim bytBinaryData
Dim Tipo 'campo TIPOLOGIA del form
Dim Destinatario
Dim Mittente 'campo PERSONA del form

Const nForReading = 1
Const nForWriting = 2
Const nForAppending = 8

Dim anno, mese, giorno, ore, minuti, secondi
Dim Differenza3
'data = day(date)

' Funzione DataInNum a cui passo una data
' Preleva dalla data l'anno
anno = Year(date)
' Preleva dalla data il mese
mese = Month(date)
' Preleva dalla data il giorno
giorno = Day(date)
' Concatena i valori in un unico numero
solodata = giorno & "/" & mese & "/" & anno

data = giorno & mese & anno

ore = hour(time)
minuti = minute(time)
secondi = second(time)

Orax = ore & minuti & secondi


' grab the uploaded file data
Set oUpload = New clsUpload

Tipo = oUpload.ValueOf(1)' il numero contrassegnato nella parentesi sta a indicare il numero del campo ( in quest caso ) '
Data_ricevimento = oUpload.ValueOf(2)
Mittente = oUpload.ValueOf(3)
Ritirato_da = oUpload.ValueOf(5)
Data_ritiro = oUpload.ValueOf(6)
Destinatario = oUpload.ValueOf(4)
Priorita = oUpload.ValueOf(7)
Mail = oUpload.ValueOf(8)
Note = oUpload.ValueOf(9)
Allegato = oUpload.ValueOf(10)
StatoPosta = oUpload.ValueOf(11)


Set oFile = oUpload("File1")

' parse the file name

sFileName = oFile.FileName
If Not InStr(sFileName, "\") = 0 Then
sFileName = Mid(sFileName, InStrRev(sFileName, "\") + 1)
End If

' Convert the binary data to Ascii
bytBinaryData = oFile.BinaryData
nLength = LenB(bytBinaryData)
For nIndex = 1 To nLength
sNewData = sNewData & Chr(AscB(MidB(bytBinaryData, nIndex, 1)))
Next

' Save the file to the file system
sPath = Server.MapPath("allegati") & "/"
Set oFSO = Server.CreateObject("Scripting.FileSystemObject")
sFileName = data & Orax & "-" & sFileName
sFileName = replace(sFileName, " ", "_")
oFSO.OpenTextFile(sPath & sFileName, nForWriting, True).Write sNewData
Set oFSO = Nothing

Set oFile = Nothing
Set oUpload = Nothing

dataP = Data_ricevimento

dim conn, rs2, rs4, rs5, sql

' --- costruzione stringa di connessione al db ---
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "DRIVER={Microsoft Access Driver (*.mdb)};" &_
"DBQ="& Server.MapPath("Posta.mdb")

' --- preparazione connection e recordset ---


Set cn = Server.CreateObject("Adodb.Connection")
'Set rs3 = Server.CreateObject("Adodb.Recordset")
'Set rs = Server.CreateObject("Adodb.Recordset")


Set rs5 = Server.CreateObject("Adodb.Recordset")


sql5 = "SELECT * FROM T_Diff ORDER BY ID desc"
SET rs5 = conn.execute(sql5)



Do while not rs5.EOF

' Differenza3 = DateDiff("s", Data_ricevimento, Now)

if rs5("StatoPosta") = "NO" then

if rs5("Differenza") > 12 then

if rs5("Sollecito") = "No" then


Set objEmail = CreateObject("CDO.Message")
objEmail.From = "PostaInternaManital@prova.com"
objEmail.To = rs5("Mail")
objEmail.Subject = "Avviso attivazione posta"
objEmail.HTMLbody = "SOLLECITO"
objEmail.AddAttachment server.MapPath("allegati\" & sFileName)
objEmail.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
objEmail.Configuration.Fields.Item _

("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "out.alice.it"
objEmail.Configuration.Fields.Item _

("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25

objEmail.Configuration.Fields.Update
objEmail.Send

rs5.movefirst
sqlupdate = "UPDATE T_Diff SET Sollecito = 'Si'"
conn.execute(sqlupdate)


end if

end if

end if

'response.write( "
" & rs5( "Mail" ) )
rs5.movenext

Loop

'chiusura RecordSet RS5
rs5.Close
set rs5 = Nothing


Set rs2 = Server.CreateObject("Adodb.Recordset")

rs2.Open "T_Posta", conn, 2, 2

' --- aggiunta di un record ---
rs2.addnew
rs2("Mittente") = Mittente
rs2("Tipo") = Tipo
rs2("Data_ricevimento") = Data_ricevimento
rs2("Destinatario") = Destinatario
rs2("Ritirato_da") = Ritirato_da
rs2("Data_ritiro") = Data_ritiro
rs2("Priorita") = Priorita
rs2("Mail") = Mail
rs2("Note") = Note
rs2("Allegato") = sFileName
rs2("StatoPosta") = StatoPosta
rs2.update

sql11 = "SELECT ID FROM T_Posta ORDER BY ID desc"

set rs11 = conn.execute(sql11)


rs11.movefirst
IDPosta = rs11("ID")

rs2.Close
set rs2 = Nothing

'
'rs.Open "T_Documenti", conn, 2, 2

' --- aggiunta di un record ---
'rs.addnew
' rs("Destinatario") = Destinatario
' rs("Data") = solodata
' rs("Mail") = Mail
' rs.update

' rs3.Open "T_MailR", conn, 2, 2

' --- aggiunta di un record ---
' rs3.addnew
' rs3("Mail") = Mail
' rs3("Ora") = Orax
' rs3("Data") = solodata
' rs3("Destinatario") = Destinatario
' rs3.update

Set rs4 = Server.CreateObject("Adodb.Recordset")

rs4.Open "T_Diff", conn, 2, 2

' --- aggiunta di un record ---
rs4.addnew
rs4("Mail") = Mail
rs4("DataCorr") = DataP
rs4("OraInvio") = Orax
rs4("Differenza") = Differenza3
rs4("StatoPosta") = StatoPosta
rs4("Sollecito") = "No"
rs4("IDPosta") = IDPosta
rs4.update

rs4.Close
set rs4 = Nothing

Set rs6 = Server.CreateObject("Adodb.Recordset")

sql6 = "SELECT *, DateDiff('s', Data_ricevimento, 'Now') AS Differenza3 FROM T_Diff,T_Posta"
set rs6 = conn.execute(sql6)

do while not rs6.EOF

'fondamentale perche senno non fa riga per riga
Data_ricevimento = rs6("Datacorr")

Differenza3 = DateDiff("s", Data_ricevimento, Now)

'modifichiamo la differenza e associamo l'ID della posta

sqlupdate1 = "UPDATE T_Diff SET Differenza = " & Differenza3 & " WHERE IDPosta=" & rs6("IDPosta")
conn.execute(sqlupdate1)

rs6.movenext

loop

rs6.Close
set rs6 = Nothing
conn.Close
set conn = nothing



Set objEmail = CreateObject("CDO.Message")
objEmail.From = "PostaInternaManital@prova.com"
objEmail.To = Mail
objEmail.Subject = "Avviso attivazione posta"
objEmail.HTMLbody = "Avviso ricezione posta presso Sede Ivrea"
objEmail.AddAttachment server.MapPath("allegati\" & sFileName)

objEmail.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2

objEmail.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "out.alice.it"

objEmail.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25

objEmail.Configuration.Fields.Update
objEmail.Send



AzioneLog = "Inserita registrazione di tipo " & Tipo & " registrata il " & Data_ricevimento & " da " & Mittente & " per " & Destinatario & " con allegato " & sFileName
%>



<html>


Il file &#232; stato salvato!</p>



Indietro
<%
'response.redirect "visualizza.asp"
%>
</html>