Inserimenti multipli con XML vs INSERT ... VALUES ... SELECT ... UNION ALL
-
28-10-2019 - |
Domanda
Per SQL Server 2005, se desidero inserire circa 20 o 30 righe ciascuna con tre colonne, quale approccio è più veloce ed efficiente?L'applicazione chiamante è un'applicazione console .NET in C # 4.0.
a) Passando i valori come XML a un processo memorizzato, analizzandolo ed eseguendo l'inserimento
OPPURE
b) Costruisci un comando SQL con INSERT...VALUES... SELECT() UNION ALL
come suggerito qui: SQL Server2005: inserire più righe con un'unica query ?
Grazie.
Soluzione
Li hai provati?Ad essere onesti, per 20 o 30 righe, sarebbe davvero difficile trovare una differenza.Su una scala più ampia, mi aspetterei che il costo dei dati extra e l'analisi coinvolti con XML per estrarre i dati lo renderebbero la scelta meno efficiente.In SQL Server 2008 è disponibile un costruttore VALUES()
più efficiente che non richiede UNION ALL
ed è inoltre disponibile un nuovo approccio denominato parametri con valori di tabella.