Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - VBA

Страница: 1 |

 

  Вопрос: как ускорить выполнение программы Добавлено: 19.08.04 12:16  

Автор вопроса:  Boksy
Подскажите пожалуста, а как ускорить выполнение программы написанной на VBA (ACCESS, в обработчике событий), мой SQL запрос(запускаемый из VBA) работает слишком долго(очень большая таблица), но он необходим. Возможно ли сначала наложить фильтр на таблицу, а потом по выбранным данным сделать запрос?

Ответить

  Ответы Всего ответов: 2  

Номер ответа: 1
Автор ответа:
 mc-black



ICQ: 308-534-060 

Вопросов: 20
Ответов: 1860
 Web-сайт: mc-black.narod.ru/dzp.htm
 Профиль | | #1
Добавлено: 19.08.04 12:47
О производительности SQL-запросов. В одной книжке - э... не помню, хоть постянно ей пользовался.. - по VB сказано, что долго выполняются сложные SQL запросы, по возможности надо разбить на несколько более простых. Ещё если в условии WHERE что-то отбирается по числовому значению, можно сделать индекс по этому полю и это возможно ускорит процесс. Разбивать на части следует что-то типа SELECT ... [INNER] JOIN ... Универсальных советов нет, надо экспериментировать, пробовать, сравнивать время на операции. Ты напиши хоть текст своего запроса, где и как его используешь, сколько записей в таблице?

Ответить

Номер ответа: 2
Автор ответа:
 Boksy



Вопросов: 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;"
    ;Debug.Print strSQL
    Me.RecordSource = strSQL

он используется в обработчике событий, это весь код, в таблице около 2600 записей

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам