|
|
|
Как ускорить выполнение запроса?
|
|||
|---|---|---|---|
|
#18+
Access XP. mdb Есть приликованный таблицы через ODBC. На одну из них простейший запрос по ключевому полю выполняется минут 5. Количество записей в таблице 150 тыс. Может есть какая-то возможность ускорить этот процесс. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.03.2004, 15:34 |
|
||
|
Как ускорить выполнение запроса?
|
|||
|---|---|---|---|
|
#18+
Pass-Through Query pass-through query: An SQL-specific query you use to send commands directly to an ODBC database server. By using pass-through queries, you work directly with the tables on the server instead of having the Microsoft Jet database engine process the data ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.03.2004, 16:18 |
|
||
|
Как ускорить выполнение запроса?
|
|||
|---|---|---|---|
|
#18+
вариант 2 использование адо ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.03.2004, 16:20 |
|
||
|
Как ускорить выполнение запроса?
|
|||
|---|---|---|---|
|
#18+
ну или ODBCDirect ;) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.03.2004, 16:24 |
|
||
|
Как ускорить выполнение запроса?
|
|||
|---|---|---|---|
|
#18+
присоединяюсь если не надь в итоге получить обновляемого набора в форму, выполните запрос на сервере (Pass-Through Query = "Запрос к серверу"). Если нужна обновляемая выборка для рекордсета - то выполняйте не JEt запрос к прилинкованной таблице, а ODBCDirect. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.03.2004, 16:34 |
|
||
|
Как ускорить выполнение запроса?
|
|||
|---|---|---|---|
|
#18+
Пацаны подскажите лоху (т.е. мне), что такое ODBCDirect. Хотя бы очень коротко (может ссылку подскажете) :-))))) Я согласен, что надо использовать Pass-Through Query, иначе MS Access вытягивает все записи в себя и выполняет запрос сам. На 150.000 записей, 5 минут - это не так уж грусно - могло быть и хуже... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.03.2004, 20:18 |
|
||
|
Как ускорить выполнение запроса?
|
|||
|---|---|---|---|
|
#18+
Всё хорошо, заработало. Спасибо. Но появился новый вопрос: как теперь обращаться к рекордсету через ODBCDirect ? Раньше была прилинкована соответствующая таблица: Reports!квартира_А4!квартира_А4собств.Report.RecordSource = "SELECT Owners.FMOWNER, Owners.NMOWNER, Owners.PTOWNER, Owners.CODEOWN ROM Owners WHERE (" & OwnersTemp & ")" А как теперь быть ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.03.2004, 19:45 |
|
||
|
Как ускорить выполнение запроса?
|
|||
|---|---|---|---|
|
#18+
имелось в виду как обращаться к RecordSource P.S. в запросе опечатка ROM=FROM ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.03.2004, 19:47 |
|
||
|
Как ускорить выполнение запроса?
|
|||
|---|---|---|---|
|
#18+
Возможно, я глючу по части возможной реализцаии этого в Access, но: 1) Проверь, проиндексировано ли поле, по которому делается выборка. 2) Через ADO по этому полю делается выборка. PS. От ODBC стоит отказываться: ему на смену уже есть хорошая альтернатива - провайдер OLE DB, который работает побыстрее и в общем куда менее глючный. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.03.2004, 23:50 |
|
||
|
|

start [/forum/topic.php?fid=45&fpage=1659&tid=1675758]: |
0ms |
get settings: |
8ms |
get forum list: |
10ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
40ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
36ms |
get tp. blocked users: |
1ms |
| others: | 243ms |
| total: | 353ms |

| 0 / 0 |
