我正在监视Jpg文件的文件夹,需要处理传入的文件。 我解码文件名以获取我想要的所有信息并插入表中,然后将文件移动到另一个文件夹。
文件名已包含我想要的所有信息。例如。
2011--8-27_13:20:45_MyLocation_User1.jpg.
现在我正在使用Insert
声明
Private Function InsertToDB(ByVal SourceFile As String, ByVal Date_Time As DateTime, ByVal Loc As String, ByVal User As String) As Boolean
Dim conn As SqlConnection = New SqlConnection(My.Settings.ConString)
Dim sSQL As String = "INSERT INTO StageTbl ...."
Dim cmd As SqlComman
cmd = New SqlCommand(sSQL, conn)
....Parameters Set ...
conn.Open()
cmd.ExecuteNonQuery()
conn.Close()
conn = Nothing
cmd = Nothing
End Function
将为找到的每个文件调用该函数。
这是最有效的方式吗?看起来很慢。我需要处理大约20~50个文件/秒。可能是一个存储过程?
我需要尽快做到这一点。我认为批量插入不适用于此。
请帮忙。
答案 0 :(得分:1)
批量插入可能适用于此 - 您是否需要它们立即在数据库中,或者您是否可以在内存中构建记录然后将它们分批推送到数据库中?
您是否也是多线程的 - 否则您的端到端流程可能会落后。
另一个解决方案是使用消息队列 - 在每个文件的队列中弹出一条消息,然后有一个进程(在不同的线程上)不断读取队列并添加到数据库中。
答案 1 :(得分:1)
您可以采取以下措施来优化此过程的速度: