1. Попробуйте использовать обработку транзакций для обновления базы данных.
Обработка транзакций VB включает в себя несколько инструкций по работе с базой данных, начиная с BeginTrans и заканчивая CommitTrans или Rollback. Помимо обеспечения целостности базы данных, обработка транзакций также может значительно повысить эффективность пакетного обновления базы данных. Это связано с тем, что если операция обновления базы данных не использует обработку транзакций, каждая операция обновления приведет к однократной записи базы данных на диск. После использования обработки транзакций обновления выполняются только в буфере памяти, а все изменения сразу же записываются обратно на диск при выполнении CommitTrans. При использовании обработки транзакций следует учитывать несколько моментов:
(1) Обработка транзакций должна иметь полный механизм проверки ошибок;
(2) Поскольку VB использует блокировки страниц в базе данных до завершения транзакции, в многопользовательской среде, если транзакция приостановлена, другие пользователи не смогут получить доступ к заблокированным данным.
2. Попробуйте использовать декомпозицию кода для операций поиска Select.
Использование Select для операций с базой данных является простым и легким в использовании, но если некоторые операции поиска разложить на эквивалентные коды ручного поиска, скорость поиска в базе данных будет значительно увеличена. Основной метод декомпозиции заключается в индексировании ключевых полей поиска и их использовании. Поиск После того, как метод будет найден, на основе отсортированных характеристик индексированной базы данных, Поиск по строкам. Когда диапазон обхода не очень широк, этот метод позволяет повысить скорость доступа к базе данных в десятки раз. Например: Select*frompersonwherevol='123'andbirth=#11-02-73# разлагается на следующие операции. , скорость доступа может быть значительно улучшена:
Table.Index=volTable.Seek=, 123ifnottable.nomatchthen
whilenottable.eof
iftable(vol)=123тогда
таблица.movelast
elseiftable(Рождение)=#11-02-73#then
'Найти запись
конец
таблица.movenext
Вендендиф
3. Используйте Attach для привязки таблицы базы данных.
При использовании ODBC для подключения к серверам баз данных, таким как MSSQLServer, Oracle и Sysbase, мы можем привязать таблицы на сервере к базе данных MSAcess с помощью функции подключения MSAcess, поскольку база данных MSAcess может кэшировать структуру таблицы на сервере базы данных. Когда мы получаем доступ к источнику данных ODBC, это может повысить производительность доступа к системе.
4. Используйте параметр dbSQLPassThrough.
При подключении к серверам баз данных MSSQLServer, Oracle и Sysbase используйте опцию dbSQLPassThrough для отправки команд непосредственно на сервер базы данных, тем самым сокращая проверку и интерпретацию команд промежуточным программным обеспечением и повышая производительность доступа к базе данных. В следующем примере используется хранимая процедура для создания Dynaset:
dimmydbasdatabasedimmydsasdynasetsetmydb=opendatabase(..........)'Откройте базу данных setmyds=mydb.openrecordset(name, dbOpendynaset, dbSQLPassThrough,...)
Недостаток использования dbSQLPassThrough заключается в том, что возвращаемый набор записей доступен только для чтения.
5. Правильно использовать объект доступа к базе данных Таблица.
Поддерживает команды SEEK и индексы. Комбинация этих двух методов позволяет найти записи быстрее всего. Однажды автор провел тест сравнения скорости, и Table потребовалось 3,5 секунды для получения 100 000 записей, 9 секунд для Dynaset и 10 секунд для Snapshot Supports. операции чтения и записи Нет. Поддерживается СОРТИРОВКА и ФИЛЬТР, которые необходимо заменить индексом. В соответствии с физической таблицей в базе данных добавление, удаление и изменение будут напрямую влиять на таблицу базы данных.
Dynaset. Самый гибкий объект базы данных. Он поддерживает операции чтения и записи и представляет собой динамическое подмножество записей. В ODBC операции записи требуют установки уникального индекса. Он поддерживает СОРТИРОВКУ и ФИЛЬТР. При использовании команды JOIN для связывания нескольких таблиц. можно использовать только Dynaset.
Снимок можно только читать, но нельзя записывать, и он не поддерживает обработку транзакций. Он не поддерживает методы Edit, Addnew и Update.
->