Все още нямам опит с TVP, но има хубава диаграма за сравнение на ефективността спрямо BULK INSERT в MSDN тук .
Те казват, че BULK INSERT има по-високи разходи за стартиране, но е по-бърз след това. В сценария на отдалечен клиент те теглят границата на около 1000 реда (за "проста" сървърна логика). Съдейки по описанието им, бих казал, че трябва да се справите добре с използването на TVP. Ударът в производителността - ако има такъв - вероятно е незначителен и архитектурните предимства изглеждат много добри.
Редактиране:Като странична бележка можете да избегнете сървърния локален файл и все още да използвате масово копиране, като използвате обекта SqlBulkCopy. Просто попълнете DataTable и го подайте в метода "WriteToServer" на екземпляр на SqlBulkCopy. Лесен за използване и много бърз.