Если вы говорите о файле MDB, то вы должны использовать «хранимую процедуру» для ссылки на сохраненные запросы. Сохраненные запросы могут выполняться быстрее, чем встроенный SQL, потому что план запроса сохраняется вместе с запросом; когда вы выполняете встроенный SQL, SQL должен быть скомпилирован в план запроса.
Если вы запишите запрос в свойство DataSource
элемента управления, Access создаст скрытый сохраненный запрос, поэтому производительность должна быть аналогичной.
В целом, вы задаете этот вопрос, потому что вы или ваши пользователи наблюдали низкую производительность? Если да, то где производительность плохая? Эта информация может помочь нам предложить хорошую возможность для повышения производительности.
Например, предположим, что ваша форма является формой заказа, и у вас есть текстовые поля с именем и адресом клиента. Источник записи формы - таблица [Orders]
. Текстовое поле имени имеет в качестве источника управления
SELECT [CustomerName] FROM [Customers] WHERE [CustomerID] = [CustomerIdTextBox]
Аналогично, источник контроля текстового поля адреса:
SELECT [Address] FROM [Customers] WHERE [CustomerID] = [CustomerIdTextBox]
В этом случае вы значительно улучшите свою производительность, изменив источник записи:
SELECT [Orders].*, [Customers].[CustomerName], [Customers].[Address]
FROM [Orders] INNER JOIN [Customers] ON [Orders].[CustomerID] = [Customers].[ID]
Затем измените источник управления для текстового поля имени на [CustomerName]
и для текстового поля адреса на [Address]
.
Почему это быстрее? В первом варианте у вас было два запроса (или, скорее, запрос для каждого элемента, который вы извлекаете из таблицы [Customers]
). В новом дизайне у вас есть только один запрос.
Если, с другой стороны, вы спрашиваете о производительности из-за теоретической идеи о том, что один подход может быть быстрее другого, тогда вам следует использовать подход, который проще всего поддерживать. Если вы не можете наблюдать разницу в производительности, нет смысла использовать более производительное решение.