Это была постоянная проблема на моем рабочем месте. Ранее у нас был студент-программист, который написал нам несколько приложений с использованием C#, которые хорошо работали на его ноутбуке, но как только приложения были запущены для использования на разных компьютерах, соединение с распространенной базой данных стало мучительно медленным.
Теперь я пишу простое приложение VB.net, которое должно запрашивать базу данных Pervasive, и я сталкиваюсь с той же проблемой.
вот мой код:
'PSQL variables
Dim myPsqlConnection As PsqlConnection = New PsqlConnection("ServerName=FILESERVER;ServerDSN=SAGE2")
Dim queryString As String
queryString = "SELECT NAME FROM CUSTOMER"
Dim MyCommand As New PsqlCommand(queryString, myPsqlConnection)
Dim MyReader As PsqlDataReader
Dim tempCustname As String
Try 'open conncetion to Pervasive DB
myPsqlConnection.Open()
Catch ex As Exception
MsgBox("COULD NOT OPEN A CONNECTION TO THE DATABASE" & vbCrLf & ex.Message)
Exit Sub
End Try
Try 'execute Pervasive query
MyReader = MyCommand.ExecuteReader
Catch ex As Exception
MsgBox("QUERY ERROR" & vbCrLf & ex.Message)
Exit Sub
End Try
If MyReader.HasRows = False Then
MsgBox("NO RESULTS FOUND")
Exit Sub
End If
While (MyReader.Read)
tempCustname = MyReader("NAME").ToString()
Customers.Items.Add(tempCustname)
End While
MyReader.Close()
myPsqlConnection.Close()
Я прошел через программу, и мне потребовалось около 30 секунд, чтобы пройти строку, где она открывает соединение.
Что касается характеристик (я сделаю все возможное):
Мой компьютер довольно мощный (16 ГБ или ОЗУ, 6-ядерный процессор AMD с тактовой частотой 3,0 ГГц на ядро, Windows 7 Home, 64-разрядная версия)
Pervasive.Data.SqlClient версии 3.2
Компиляция с помощью Microsoft Visual Basic 2010 Express
В этой сети очень мало компьютеров (около 7), и у меня нет таких проблем с базами данных MS Access. Наш сервер новый 2 года назад, и наша сеть была обновлена до соединения GB. Должен отметить, что я очень мало знаю о базах данных в целом, не говоря уже о подключении к VB. Я не самый лучший человек для этого, но я все еще самый квалифицированный человек в нашей маленькой компании.
PsqlConnection
— это начальный класс для поставщика Pervasive. Таким образом, когда вы используете классPsqlConnection
, это означает, что вы используете управляемую библиотеку поставщика .NET Pervasive для доступа к базе данных Pervasive через ADO. OLEDB аналогичен, но это более старая технология, которая по-прежнему поддерживается в ADO.NET с использованием классаOleDbConnection
. Это не так эффективно, как ADO, который представляет собой прямое соединение. - person Steven Doggart   schedule 06.01.2015Using
, но это относительно незначительно и не имеет ничего общего с производительностью). Могут быть некоторые параметры, которые вы можете добавить в строку подключения, которые могут изменить производительность, но я не уверен, что они будут. - person Steven Doggart   schedule 06.01.2015