数据库存储在服务器上的潜在问题

时间:2010-11-10 10:12:22

标签: vb.net

我正在开发一个在网络上运行的应用程序。它需要经常联系到数据库(访问数据库),它存储在服务器中。大约30台客户端计算机几乎每2-3秒就与数据库联系。我需要知道应用程序中是否存在潜在的明显问题?

如果一个客户端正在更新数据库,同时其他客户端与之联系,那么会出现问题吗?

非常感谢。最诚挚的问候, Furqan

3 个答案:

答案 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方式修改数据库。