Eventuali duplicati:
Multiple INSERT statements vs. single INSERT with multiple VALUESperché è l'inserimento di una singola riga x volte più veloce di inserimento x righe alla volta
sto facendo un po 'di analisi delle prestazioni sulle transazioni per l'elaborazione batch per un post sul blog e ho notato che quando si utilizza un'istruzione di inserimento batch, si comporta molto più lentamente delle singole istruzioni SQL equivalenti.
inserimento di 1000 righe, come di seguito dura circa 3s
INSERT TestEntities (TestDate, TestInt, TestString) VALUES
('2011-1-1', 11, 'dsxcvzdfdfdfsa'),
('2011-1-1', 11, 'dsxcvzdfdfdfsa'),
('2011-1-1', 11, 'dsxcvzdfdfdfsa')
inserimento di 1000 righe, come di seguito prende 130ms
INSERT TestEntities (TestDate, TestInt, TestString) VALUES ('2011-1-1', 11, 'dsxcvzdfdfdfsa')
INSERT TestEntities (TestDate, TestInt, TestString) VALUES ('2011-1-1', 11, 'dsxcvzdfdfdfsa')
INSERT TestEntities (TestDate, TestInt, TestString) VALUES ('2011-1-1', 11, 'dsxcvzdfdfdfsa')
Questo sembra accadere solo la prima volta che si utilizza un inserto in batch sul tavolo ma è riproducibile.
Si noti inoltre i dati im inserimento è casuale (ma lo stesso per entrambe le query)
EDIT:
heres il mio caso Repro con il manichino im dati casuali utilizzando per questo caso: https://gist.github.com/2489133
@MikaelEriksson sì questo è lo stesso problema malato vicino questo –
@blam dare un'occhiata a http: // StackOverflow.com/q/8635818/1070291 spiega il problema in modo molto più approfondito, ha anche piani di query –