Tak naprawdę nie mam jeszcze doświadczenia z TVP, jednak jest ładna tabela porównawcza wydajności vs. BULK INSERT w MSDN tutaj .
Mówią, że BULK INSERT ma wyższy koszt uruchomienia, ale później jest szybszy. W scenariuszu klienta zdalnego rysują linię na około 1000 wierszy (dla „prostej” logiki serwera). Sądząc po ich opisie, powiedziałbym, że korzystanie z TVP powinno być w porządku. Uderz w wydajność – jeśli w ogóle – jest prawdopodobnie znikomy, a korzyści architektoniczne wydają się bardzo dobre.
Edycja:na marginesie można uniknąć pliku lokalnego na serwerze i nadal używać kopii zbiorczej za pomocą obiektu SqlBulkCopy. Wystarczy wypełnić tabelę DataTable i podać ją do metody „WriteToServer” wystąpienia SqlBulkCopy. Łatwy w użyciu i bardzo szybki.