我正在开发一个在网络上运行的应用程序。它需要经常联系到数据库(访问数据库),它存储在服务器中。大约30台客户端计算机几乎每2-3秒就与数据库联系。我需要知道应用程序中是否存在潜在的明显问题?
如果一个客户端正在更新数据库,同时其他客户端与之联系,那么会出现问题吗?
非常感谢。最诚挚的问候, Furqan
答案 0 :(得分:3)
MS Access与大约5到10个并发连接的性能不佳。
改为使用SQL Server Express Edition。
SQL Server Express Edition Overview
查看MS Access to SQL Server 2008中的SQL Server Migration Assistent
答案 1 :(得分:0)
当然,这取决于您的应用程序中的编码。我有类似的应用程序在工作中运行,并没有遇到问题。您唯一需要注意的是需要读取数据库的函数。所以一些提示可能很方便。
首先,尝试限制数据库连接打开的时间(正如Mitch指出的那样)。
其次,尝试在读取和保存查询之间避免大块可执行代码。不要从数据库中读取最大ID,然后运行需要0.5秒以上的代码来执行,然后保存需要数据库中最大ID的记录。如果另一个用户同时插入了一个新项目,则可能会出错。
答案 2 :(得分:0)
要连接到SQL Express,请使用这样的块:
Dim conn As SqlClient.SqlConnection = New Data.SqlClient.SqlConnection("Server=" & servername & ";Database=" & databasename & ";User ID=" & userid & ";Password=" & password & ";Trusted_Connection=False;")
Dim sqlstatement As String = "INSERT INTO " & table & " (ATime,AStringWithLimitedLength,AnInteger,AString)"
sqlstatement &= " VALUES (@dates,@chars,@ints,@string)"
Dim comm As New SqlClient.SqlCommand(sqlstatement, conn)
With comm.Parameters
.Add("@dates", SqlDbType.DateTime).Value = Me.Timestamp
.Add("@chars", SqlDbType.VarChar).Value = Me.Type
.Add("@ints", SqlDbType.Int).Value = Me.UserID
.Add("@string", SqlDbType.Text).Value = Me.SQL
End With
conn.Open()
comm.ExecuteNonQuery()
conn.Close()
总之与MSAccess非常相似,只是你不使用OleDB而是使用SqlClient。您可能希望下载(免费)“SQL Server Management Studio Express”以WYSIWYG方式修改数据库。