ACC2000: Оптимизация производительности клиент/сервер

Переводы статьи Переводы статьи
Код статьи: 208858 - Vizualiza?i produsele pentru care se aplic? acest articol.
Дополнительно: Требуется изложенный взаимодействия и многопользовательской навыков.

Данная статья применима только к базам данных Microsoft Access (MDB)..

Развернуть все | Свернуть все

В этой статье

Аннотация

В данной статье приведены советы по оптимизации производительности источников данных Open Database Connectivity (ODBC) в Microsoft Access.

Примечание.: В данной статье предполагается, что вы знакомы с среде клиент/сервер и архитектуры.

Дополнительная информация

Методы доступа К данным

Для доступа к данных сервера с помощью приложения клиент/сервер, можно использовать один или несколько из следующих способов:

  • Связанные таблицы и представления
  • Запросы к серверу SQL для отправки инструкций SQL непосредственно на сервер
  • Проект Microsoft Access

Связанные таблицы и представления

Наиболее эффективный способ обработки данных на сервере используется для связывания таблиц и представлений с сервера. Microsoft Access сохраняет сведения о поле и индекса для связанных таблиц. Это повышает быстродействие при открытии таблицы.

Примечание.: Если внести изменения в поля или индексы на сервере, необходимо повторно связать удаленных таблиц в Access.

Выполнение запросов к серверу SQL

Во многих приложениях можно создавать запросы Microsoft Access, основанные на удаленные таблицы и также создавать запросы к серверу SQL. Запросов к серверу имеют следующие преимущества:
  • Microsoft Access не компилирует запрос к серверу. Он отправляет запрос серверу ODBC. Это ускоряет процесс приложения.
  • Точно так же, как он был введен доступа отправляет запрос к серверу на сервер. Таким образом дополнительные обработки выполняется на сервере, и меньше данных передаются по сети.
  • Формы, отчеты и запросы Microsoft Access может зависеть от запросов к серверу с помощью ODBC связанных таблиц.
  • Можно использовать SQL Server функции (такие как хранимые процедуры и встроенные функции, на сервере), не имеет эквивалента в коде.
  • Обновление, удаление и Добавление действия к серверу, запросы, намного быстрее, чем действие запросы, основанные на удаленных таблиц, особенно если большое количество записей затронутых.
Запросы к серверу имеют следующие недостатки:
  • Запрос к серверу SQL всегда возвращает моментальный снимок, который не может быть обновлен. Обычно запроса Microsoft Access возвращает динамическим подмножеством данных, отражающий изменения, внесенные другими пользователями и могут быть обновлены.
  • Необходимо ввести команды в окне запрос к серверу с помощью синтаксиса, который требует сервер. Проектирование запросов к серверу в бланке запроса невозможно.
  • Если параметр с помощью запроса к серверу, необходимо выполнить запрос в коде и изменение запросаSQLСвойство.For additional information and an example of how to modify the SQL property, click the article number below to view the article in the Microsoft Knowledge Base:
    232493ACC2000: How to Simulate Parameters in an SQL Pass-Through Query

Request Less Data from the Server

Requesting data from the server costs processing time. To optimize performance, request only those records and fields that you need.

Reduce the number of bound controls, such as text boxes, combo boxes, list boxes, and subforms. When a form is opened, each of these controls sends a separate query to the server.

If the linked ODBC tables have Memo or OLE object fields, you can set theVisibleproperty of the fields toNoand add a toggle button to set theVisibleСвойствоДА.so that users can choose to view it.

Some linked tables do not change frequently. For example, a table containing the names and abbreviations of the 50 states would not change often. You can speed up form loading and reduce server load by storing a local copy of these tables. You can also provide a way to update the local copy with more recent data from the server.

Optimizing Queries

The principal method for optimizing queries (after adding appropriate indexes on the server) is ensuring that processing takes place on the server. You should avoid functionality that is not supported by the server, such as functions specific to Microsoft Access or user-defined functions. For detailed information about what must be processed locally, see the Microsoft Jet Database Engine ODBC Connectivity white paper (for more information about this white paper, see the "Microsoft Jet Database Engine ODBC Connectivity White Paper" section later in this article).

To see the Select statement that is being sent to the server, you can set the TraceSQLMode setting. To set this, follow these steps:
  1. затем –START ::меню и выберите пунктВыполнить.
  2. В диалоговом окнеOPENdialog box, typeRegedit.
  3. Expand the HKEY_LOCAL_MACHINE subtree until you locate the SOFTWARE\Microsoft\Jet\4.0\Engines subkey.
  4. затем –Engines.
  5. ЕслиTraceSQLModevalue does not appear in the right pane, clickСОЗДАТЬ.в менюВ файлеменю и выберите пунктDWORD Value.
  6. Under Name in the right pane, typeTraceSQLModefor the new value.
  7. With the new value still selected, clickModifyв менюВ файлеменю.
  8. Из спискаBase, selectDecimal. В диалоговом окнеЗначениеполе типа1и выберите командуOk..
For more information about the TraceSQLMode setting, click Microsoft Access Help on the Help menu, type "TraceSQLMode" in the Office Assistant or the Answer Wizard, and then click Search to view the topic.

TryJetAuth Setting

надписьюTryJetAuthsetting controls whether Microsoft Access first attempts to log on to your server using the Microsoft Access login ID and password. (By default, the Microsoft Access login ID is "admin" and the password is blank.) If this fails, Microsoft Access prompts you for a logon ID and password. Unless you have set up Microsoft Access to use the same logon ID and password as your ODBC server, add the line "TryJetAuth=0" to the HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Jet\4.0\ODBC\TryJetAuth key of the registry. This prevents Microsoft Access from attempting to log on with the wrong ID. Выполните следующие действия::
  1. затем –START ::и выберите командуВыполнить.
  2. В диалоговом окнеOPENdialog box, typeRegedit.
  3. Locate the HKEY_LOCAL_MACHINE subtree.
  4. Expand the HKEY_LOCAL_MACHINE subtree until you locate the following subkey:
    SOFTWARE\Microsoft\Jet\4.0\ODBC\TryJetAuth
  5. затем –Engines.
  6. ЕслиTryJetAuthvalue is not there, clickСОЗДАТЬ.в менюВ файлеменю и выберите пунктDWORD Value.
  7. Under Name in the right pane, typeTryJetAuthfor the new value.
  8. With the new value still selected, clickModifyв менюВ файлеменю.
  9. Из спискаBase, selectDecimal. В диалоговом окнеЗначениеполе типа1и выберите командуOk..

Timestamps

On servers that support them such as Microsoft SQL Server, timestamp fields make updating records more efficient. Timestamp fields are maintained by the server and are updated every time that the record is updated.

If you have a timestamp field, Microsoft Access needs to check only the unique index and the timestamp field to see whether the record has changed since it was last retrieved from the server. Otherwise, Microsoft Access must check all the fields in the record. If you add a timestamp field to an linked table, relink the table in order to inform Microsoft Access of the new field.

Transactions

Using transactions in Visual Basic for Applications (VBA) when you update or insert records on linked tables can improve performance. Transactions enable the Jet database engine to accumulate multiple updates and write them as a single batch. With Microsoft SQL Server, keep transactions short because they generate locks that prevent other users from reading data affected by the current transaction. Although you can nest transactions with VBA, most servers do not support nested transactions. Microsoft Access sends only the first-level transaction to the server.

Optimizing Recordsets and Code

Сохранить все или часть данных, содержащихся вНабор записейобъекты типа динамический набор в локальной памяти, задавCacheSizeиCacheStartСвойства.

Размер кэша может быть от 5 до 1200 записей. Если размер кэша превышает объем доступной памяти, в файл на диске сбрасывать лишние записи. ПрименениеFillCacheметод заполняет в кэш данных на сервере. Чтобы восстановить кэш-памяти,CacheSizeСвойство 0.

С помощью переменных набора записей реализуйте только те функции. Например, добавлениеdbAppendOnlyпараметр сOpenRecordsetметод, если требуется добавить новые записи в наборе записей. При изменении или обновлении возможности не требуется, создайте свой набор записей на основе SQL запросов к серверу. Самый быстрый метод для добавления и обновления записей является использование запросов к серверу SQL в коде.

Таблица MSysConf

Можно создать таблицу с именем MSysConf на сервере для заполнения фона элемента управления (частота, с которой Microsoft Access считывает записи с сервера во время простоя). С помощью этой таблицы можно задать количество строк данных, получаемых за один раз и количество секунд задержки между каждой извлечения. Если у вас чрезмерное блокировку чтения на сервере, можно настроить параметры таблицы, чтобы увеличить скорость заполнения фона. Если слишком много трафика создается путем заполнения фона, можно настроить параметры, чтобы замедлить ее работу.

Документация по подключения базы данных ядра Microsoft Jet ODBC

Важным источником для получения дополнительных сведений является технический документ «Подключения ODBC ядра Jet базы данных». Этот документ был написан для Jet 3.0; тем не менее, эта информация по-прежнему применяется для Jet 4.0. Этот документ описывает ядро базы данных Microsoft Jet 3.0 и как он использует ODBC. Технический документ можно загрузить с веб-узла корпорации Майкрософт:
http://Download.Microsoft.com/download/access95/whitep5/1/W98/EN-US/Rjwpv3.exe

Проект Microsoft Access

Проект Microsoft Access использует OLEDB для связи с Microsoft SQL Server 6.5 и 7.0. Если все таблицы в базу данных, связанных таблиц в SQL Server, для повышения производительности, вместо этого можно создать проект Microsoft Access. Тем не менее если база данных содержит таблицы Microsoft Access, этот параметр не возможно.

Свойства

Код статьи: 208858 - Последний отзыв: 16 ноября 2010 г. - Revision: 2.0
Информация в данной статье относится к следующим продуктам.
  • Microsoft Access 2000 Standard Edition
Ключевые слова: 
kbdownload kbhowto kbusage kbmt KB208858 KbMtru
Переведено с помощью машинного перевода
ВНИМАНИЕ! Перевод данной статьи был выполнен не человеком, а с помощью программы машинного перевода, разработанной корпорацией Майкрософт. Корпорация Майкрософт предлагает вам статьи, переведенные как людьми, так и средствами машинного перевода, чтобы у вас была возможность ознакомиться со статьями базы знаний KB на родном языке. Однако машинный перевод не всегда идеален. Он может содержать смысловые, синтаксические и грамматические ошибки, подобно тому как иностранец делает ошибки, пытаясь говорить на вашем языке. Корпорация Майкрософт не несет ответственности за неточности, ошибки и возможный ущерб, причиненный в результате неправильного перевода или его использования. Корпорация Майкрософт также часто обновляет средства машинного перевода.
Эта статья на английском языке:208858

Отправить отзыв

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com