Você pode mapear sua lista para uma tabela de dados e usar SqlBulkCopy para inserir todas as linhas de uma vez.
Preencher JFreechart TimeSeriesCollection do MySQL DB?
Erro de conversão de dados de carregamento em massa (tipo incompatível ou caractere inválido para a página de código especificada) para a linha 1, coluna 4 (ano)
Como detectar e evitar o crescimento inesperado do banco de dados SQL Server TempDB
Lidando com um vazamento de recursos GDI