Ho un dubbio.
Ho questa situazione:
Devo inserire in una tabella 1000 record, non posso utilizzare bulkinsert, storedprocedure o altro.
Banalmente ho una funzione che chiamiano Inserisci(ListaDati) che apre una transazione, lancia 1000 volte una query di insert e poi fa commit.
Inserisci ci mette esattamente 5 secondi.
Se invece richiamo la la funzione da un task ci mette esattamente la metà del tempo. PERCHE'???
Se metto più task paralleli a fare insert i tempi rallentano (ma penso sia perchè non inserisco più in ordine i record).codice:Dim wListTask As New List(Of Task) Dim wlastTask = Task.Factory.StartNew(Sub() Inserisci(ListaDati) ) wListTask.Add(wlastTask) Task.WaitAll(wListTask.ToArray())
La domanda è quindi perchè un task sta velocizzando le insert?