Страница: 1 |
Вопрос: как ускорить выполнение программы | Добавлено: 19.08.04 12:16 |
Автор вопроса: ![]() |
Подскажите пожалуста, а как ускорить выполнение программы написанной на VBA (ACCESS, в обработчике событий), мой SQL запрос(запускаемый из VBA) работает слишком долго(очень большая таблица), но он необходим. Возможно ли сначала наложить фильтр на таблицу, а потом по выбранным данным сделать запрос? |
Ответы | Всего ответов: 2 |
Номер ответа: 1 Автор ответа: ![]() ![]() ![]() ICQ: 308-534-060 Вопросов: 20 Ответов: 1860 |
Web-сайт: Профиль | Цитата | #1 | Добавлено: 19.08.04 12:47 |
О производительности SQL-запросов. В одной книжке - э... не помню, хоть постянно ей пользовался.. - по VB сказано, что долго выполняются сложные SQL запросы, по возможности надо разбить на несколько более простых. Ещё если в условии WHERE что-то отбирается по числовому значению, можно сделать индекс по этому полю и это возможно ускорит процесс. Разбивать на части следует что-то типа SELECT ... [INNER] JOIN ... Универсальных советов нет, надо экспериментировать, пробовать, сравнивать время на операции. Ты напиши хоть текст своего запроса, где и как его используешь, сколько записей в таблице? |
Номер ответа: 2 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Вопросов: 15 Ответов: 7 |
Профиль | Цитата | #2 | Добавлено: 19.08.04 13:23 |
Dim strSQL As String
strSQL = "SELECT * FROM Rebuild_m3d WHERE V_A IN (SELECT DISTINCT n2.V_A FROM Rebuild_m3d n1 LEFT JOIN Rebuild_m3d n2 ON n1.MODEL = n2.MODEL AND n1.V_A <> n2.V_A) AND MODEL IN (SELECT DISTINCT n2.MODEL FROM Rebuild_m3d n1 LEFT JOIN Rebuild_m3d n2 ON n1.MODEL = n2.MODEL AND n1.V_A <> n2.V_A) ORDER BY id;" ![]() Me.RecordSource = strSQL он используется в обработчике событий, это весь код, в таблице около 2600 записей |
Страница: 1 |
|