Scenario:
Ecommerce con tabella articoli contenente 150k records
La procedura di caricamento articoli da un db esterno verso il db dell'ecommerce prevede che gli articoli in ecommerce siano messi temporaneamente nello stato "non live" e poi siano riattivati manmano che vengono letti e aggiornati dal db esterno.
Succede che il semplice update della tabella degli articoli per mettere live = 0 a tutti i record vada in timeout.
Ok potrei allungare il timeout di esecuzione degli script nella pagina ma mi interessa qui sapere se esistono strategie diverse per fare la cosa.
Nota importante: il timeout avviene sull'update della tabella prodotti DOPO che ho già effettuato un update su un'altra tabella uguale che contiene altrettanti records .... qui il codice:
codice:
Dim cn = New SqlConnection(ConfigurationManager.ConnectionStrings("Konn").ConnectionString)
Using cn
'metto offline articoli in tabella mirror
cn.Open()
Dim strsql As String = "UPDATE prodottiMirror SET Live = 0"
Dim cmd2 = New SqlCommand(strsql, cn)
cmd2.ExecuteNonQuery()
'metto offline i prodotti
strsql = "UPDATE prodotti SET Live = 0"
cmd2 = New SqlCommand(strsql, cn)
cmd2.ExecuteNonQuery()
....
Va in timeout il secondo update.
Una prova che sto per fare è incapsulare gli update in connessioni separate per vedere se la cosa ha un effetto sui tempi di esecuzione (così suggerivano in altro forum senza però spiegare perchè dovrebbe essere risolutivo) vi faccio sapere, però voi come vi comportate in situazioni simili? Dividete le operazioni su blocchi di dati? Usate stored procedure? ....