sql >> Databáze >  >> RDS >> Sqlserver

tsql - Výkon dávkového vkládání

I když se může zdát, že méně kódu ke zpracování by vám mělo zvýšit výkon, použití první možnosti (sjednocení všech) je špatný nápad. Všechny příkazy select musí být analyzovány a provedeny před vložením dat do tabulky. Zabere to hodně paměti a dokončení může trvat věčnost, i když jde o poměrně malé množství dat. Na druhou stranu samostatné příkazy vložení jsou prováděny "za běhu".

Spusťte jednoduchý test v SSMS, který to prokáže:vytvořte jednoduchou tabulku se 4 poli a zkuste vložit 20 000 řádků. Druhé řešení se spustí během několika sekund, zatímco první... uvidíte :).

Dalším problémem je, že když data nejsou správná v som řádku (například neshoda typu), zobrazí se chyba jako Conversion failed when converting the varchar value 'x' to data type int. , ale nebudete mít žádný náznak, který řádek selhal - budete ho muset najít sami. Ale se samostatnými vložkami budete přesně vědět, která vložka selhala.




  1. MySQL:Vnitřní spojení vs kde

  2. Proč Eclipse navrhuje objekt jako výchozí typ mapování pro datový typ Text?

  3. Vysvětlení výkonu a úrovní služeb Azure SQL Database

  4. Jaký je přesně rozdíl mezi primárním indexem a sekundárním indexem?