Non solo non è irragionevole farlo, ma è un dovere nel caso in cui si desidera preservare l'integrità nel caso in cui qualsiasi record fallisce, quindi si ottiene un'importazione "tutto o niente" come si nota. 250000 inserti o aggiornamenti non saranno un problema per SQL da gestire, ma vorrei dare un'occhiata a quelle che sono quelle milioni di query. Se non sono necessari per eseguire la modifica dei dati, li porterei fuori dalla transazione, quindi non rallentano l'intero processo.
È necessario considerare che quando si ha una transazione aperta (indipendentemente dalla dimensione), l'aspetto si verifica nelle tabelle che tocca e transazioni lunghe come la propria potrebbero causare il blocco in altri utenti che stanno cercando di leggerle allo stesso tempo. Se si prevede che l'importazione sia grande e dispendiosa in termini di tempo e il sistema sarà sotto carico, si consiglia di eseguire l'intero processo durante la notte (o eventuali ore non di punta) per mitigare l'effetto.
Informazioni sulla dimensione, non esiste un limite di dimensioni specifiche in SQL Server, possono teoricamente modificare qualsiasi quantità di dati senza problemi. Il limite pratico è in realtà la dimensione del file di registro delle transazioni del database di destinazione. Il motore DB memorizza tutti i dati temporanei e modificati in questo file mentre la transazione è in corso (quindi può essere utilizzata per il rollback, se necessario), quindi questo file aumenterà di dimensioni. Deve disporre di spazio libero sufficiente nelle proprietà del database e di spazio su disco sufficiente per la crescita del file. Inoltre, i blocchi di riga o tabella che il motore inserirà nelle tabelle interessate consuma memoria, quindi il server deve disporre di sufficiente memoria libera per tutti questi impianti idraulici. In ogni caso, 60 MB di dimensioni sono spesso troppo poco per preoccuparsi in generale. 250.000 righe sono considerevoli, ma non troppo, quindi qualsiasi server di dimensioni decenti sarà in grado di gestirlo.