Страница: 1 |
Страница: 1 |
Вопрос: Долго загружает рекордсет
Добавлено: 21.07.11 11:31
Автор вопроса: fifa36
Есть таблица в базе Access. В ней 62 тыс. записей. Три из 4 полей индексированы, индексирована также как уникальная комбинация этих полей.
Запрос выбирает около 400 записей из этой таблицы.
Операция
rstQuotes.MoveLast()
занимает 25 минут. Потом цикл быстро обрабатывает мгновенно.
Если не двигаться к последней записи, то цикл будет отрабатываться примерно те же 25 минут.
Вообщем если какой- то другой способ, более быстрый? а то это очень долго
rstQuotes.Open(sql, connObject, ADODB.CursorTypeEnum.adOpenDynamic) '= connRISKAPP.Execute(sql)
rstQuotes.MoveLast()
rstQuotes.MoveFirst()
Do Until rstQuotes.EOF
Console.WriteLine(rstQuotes.Fields("PROD").Value)
rstQuotes.MoveNext
Loop
Ответы
Всего ответов: 3
Номер ответа: 1
Автор ответа:
fifa36
Вопросов: 33
Ответов: 116
Профиль | | #1
Добавлено: 21.07.11 11:34
Дело еще в том что запрос написан не оптимально, но это предмет отдельной дискуссии, интересно можно ли кроме правки запроса что- то сделать!
Номер ответа: 2
Автор ответа:
Ким Чен Ир
Вопросов: 0
Ответов: 140
Профиль | | #2
Добавлено: 22.07.11 02:13
Самый шустрый рекордсет ForwardOnly, но в твоем случае что-то все-таки с самим запросом. Выкладывай.
Номер ответа: 3
Автор ответа:
fifa36
Вопросов: 33
Ответов: 116
Профиль | | #3
Добавлено: 22.07.11 09:26
Запрос уже поправил!) Увеличился в 4 раза по объему но зато стал отрабатывать за секунды. На счет ForwardOnly понял спасибо!