Примечание: эта книга довольно старая (опубликована в 2000 году) и имеет отношение к Jet Engine. Я полагаю, что в новых версиях Access, использующих ACE, все может немного отличаться, хотя у меня нет источника, чтобы это подтвердить.
я есть запрос MS Access, который основан на связанной таблице ODBC (Oracle).
Я устраняю проблемы с низкой производительностью запроса здесь:Доступ не правильно переводитTOP
предикат для ODBC / Oracle SQL.
SELECT ri.*
FROM user1_road_insp AS ri
WHERE ri.insp_id = (
select
top 1 ri2.insp_id
from
user1_road_insp ri2
where
ri2.road_id = ri.road_id
and year(insp_date) between [Enter a START year:] and [Enter a END year:]
order by
ri2.insp_date desc,
ri2.length desc,
ri2.insp_id
);
В документации сказано:
Когда вы обнаружите проблему, вы можете попытаться решить ее, изменив локальный запрос. Это часто трудно сделать успешно, но вы можете добавить критерии, которые отправляются на сервер, уменьшая количество строк, извлекаемых для локальной обработки. Во многих случаях вы обнаружите, что, несмотря на все ваши усилия, Office Access по-прежнему извлекает некоторые целые таблицы без необходимости и выполняет окончательную обработку запросов локально.
Однако мне пришло в голову, что я не совсем понимаю, какой SQL я должен писать, чтобы сделать и Access, и ODBC / Oracle счастливыми.
Должен ли я писать какой-тоуниверсальный SQL что Access может понять в локальном запросеА ТАКЖЕ что можно легко перевести на ODBC / Oracle SQL? Является ли универсальный SQL реальной вещью?