Постоянное соединение со связанными таблицами ODBC в Access 2007 - PullRequest
0 голосов
/ 09 января 2011

Я пытаюсь реализовать и протестировать этот совет по производительности для базы данных MS Access 2007 со связанными таблицами ODBC.

По сути, он создает постоянное соединение со связанной базой данных.В примере используется другой файл Access (.mdb).

В моем случае я использую связанные таблицы из SQL Server с файлом dsn.В то время как я хотел бы использовать DSN пользователя / системы, мне нужно сейчас работать с файловым DSN.У меня возникают проблемы с установлением соединения на основе файлового DSN и метода openDatabase.

Вопрос: Если я просто открою одну из таблиц с помощью набора записей и оставлю ее открытой, будут ли видны те же преимущества?

Код в примере:

Static dbsOpen As DAO.Database
Set dbsOpen(x) = OpenDatabase("H:\folder\Backend1.mdb")

Набор записей на основе CurrentDB:

Static rs As DAO.Recordset
Set rs = CurrentDb.OpenRecordset("tablename")

1 Ответ

1 голос
/ 10 января 2011

Преимущество в производительности, которое можно получить от постоянного соединения в Access, распространяется только на серверную часть Jet / ACE, т.е. MDB / ACCDB, поскольку причина повышения производительности заключается в том, что файл блокировки создается при открытии соединенияи сохраняется до тех пор, пока соединение открыто.Затраты на создание / блокировку файла LDB довольно высоки, и этого вы избегаете, т. Е. Делаете это только один раз, а не повторяете его каждый раз, когда получаете доступ к данным.

Итак, поскольку это база данных- оптимизация, специфичная для конкретной машины, она будет иметь эффект на источник данных ODBC, если только эта база данных не использует блокирующие файлы (например, Jet / ACE).

...