我有一个 Windows 窗体应用程序DataGridView
居住着一个TableAdapter
。我正在使用Fill
循环更新UI数据的方法Async
像这样子。
Private Async Sub updateUI()
Dim sw As New Stopwatch
While True
Await Task.Delay(3000)
sw.Restart()
'myTableAdapter.Fill(getDataWithMySQL())
'myTableAdapter.Fill(myDataSet.myTable)
myTableAdapter.Fill(myDataSet.myStoredProc)
logger.Debug(sw.ElapsedMilliseconds)
End While
End Sub
The getDataWithMySQL
函数如下:
Private Function getDataWithMySQL() As myDataSet.myDataTable
Dim connStr As String = My.Settings.myConnectionString
Dim sql As String = "SELECT ... LEFT JOIN ..."
Dim dt As New myDataSet.myDataTable
Using conn As New MySqlConnection(connStr)
Using cmd As New MySqlCommand()
With cmd
.CommandText = sql
.Connection = conn
End With
Try
conn.Open()
Dim sqladapter As New MySqlDataAdapter(cmd)
sqladapter.Fill(dt)
Catch ex As MySqlException
MsgBox(ex.Message)
End Try
End Using
End Using
Return dt
End Function
myDataSet.myTable
是相同的myDataSet.myStoredProc
除非它是通过在数据集设计器中连接表来创建的。明显地myDataSet.myStoredProc
是源数据库中存储过程中的相同查询。
因此对标Fill
每种方法都使用Stopwatch
我得到以下结果:
所以我的问题是,是什么导致了这里的性能差异?我更喜欢使用myDataSet.myTable
or myDataSet.myStoredProc
但我不知道是否可以以某种方式优化它们以匹配性能getDataWithMySQL()
.
None
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)