[英]How to query and update faster in VB.net
如何加快此處的速度並更快地更新行? 我知道這不應該這樣,任何人都可以推薦一種更好的做法。
謝謝
Public Sub searchUpdate()
strSQL = "*Large query, including 3 tables"
cmd = New MySqlCommand(strSQL, CONNECTION)
dr = cmd.ExecuteReader()
ListView1.Items.Clear()
Do While dr.Read()
a = (dr.Item("users").ToString())
b = (dr.Item("b1").ToString() & "," & dr.Item("b2").ToString() & "," & dr.Item("b3").ToString() & "," & dr.Item("b4").ToString() & "," & dr.Item("b5").ToString() & "," & dr.Item("b6").ToString())
won = (dr.Item("number").ToString) * (dr.Item("input").ToString())
qt = (dr.Item("input").ToString)
updateForSearch(a, won, qt)
Loop
dr.Close()
cmd.Dispose()
CONNECTION.Close()
TextBox1.Text = Val(TextBox1.Text) + 1
Timer2.Stop()
End Sub`
更新功能:
Public Function updateForSearch(ByVal a As String, ByVal won As Integer, ByVal qt As Integer) As Integer
dr.Close()
strSQL = "UPDATE users SET status=2, qt='" & qt & "', bcvd='" & won & "' WHERE acvd='" & a & "'"
Dim da As New MySqlDataAdapter(strSQL, CONNECTION)
da.Fill(ds)
dr = cmd.ExecuteReader()
End Function
本示例說明了如何甚至不訪問VB.net即可運行更新
UPDATE users u
JOIN tbl1 t1 on u.col1 = t1.col1
JOIN tbl2 c on t1.col2 = t2.col2
-- join more tables
SET
u.col_a = t1.col3, ......
WHERE ....
基本上,如果您可以使用選擇中的大聯接來聯接更新表,則可以在不使數據離開數據庫的情況下做到這一點。 這將極大地提高性能,首先-因為數據沒有傳輸,其次-因為現在這是批處理與一行一行的比較
可能最好的方法是從復雜查詢中創建一個視圖,然后使用該視圖進行更新。 規則只有3:
1-視圖必須返回用於分配“用戶”中字段的字段。
2-您的視圖必須返回用於與“用戶”聯接的字段。
3-您的視圖可能需要聚合,內部聯接中的匹配值不能超過一個
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.