|
|
|
Supreme Being
      
участник
Last Login: 05.08.2008 8:34
Сообщ.: 172,
Visits: 1 811
|
|
| Добрый день ! Может кто подскажет: Есть база в Access. Большая таблица (около 100 000) записей. Задача - вывести все эти записи в веб постранично. Все работает, но оооочень долго. Страница открывается по 1-1,5 минуты. Есть ли выход из данной ситуации ? Может синтаксис какой-нибудь вроде "select * from table записи с 50-ю по 100-ю" ? Как-то ведь это делается ? Буду ОЧЕНЬ признателен за помощь. С уважением, Сергей.
|
|
|
|
|
Supreme Being
модератор
Last Login: 04.05.2008 13:32
Сообщ.: 7 240,
Visits: 65 445
|
|
| В Access есть оператор TOP для выборки только части записей. Смотри способ №1 на этой странице - http://www.sql.ru/faq/faq_topic.aspx?fid=105. Если выборка идет с ORDER BY по ключевому полю или полю с индексом навигация по страницам идет только вперед/назад, то можно запоминать значения этого поля на краях этого диапазона и ограничивать выборку только значенями которы меньше или больше него. Вместе с директивой TOP это позволит Access не просматривать все записи.
|
|
|
|
|
Supreme Being
      
участник
Last Login: 05.08.2008 8:34
Сообщ.: 172,
Visits: 1 811
|
|
| Спасибо. Проблему решил, правда немного другим способом. Поставил счетчик в таблицу и по Request.Page делал нужный select.
|
|
|
|
|
Supreme Being
      
участник
Last Login: 04.05.2007 14:51
Сообщ.: 124,
Visits: 1 270
|
|
| При таких объемах основное время при выполнении SQL уходит на крайне нерациональное включение в результирующий рекордсет данных полей запроса. Если из запроса их убрать, оставив только ID, то время отклика резко возрастет. Основываясь на таком простом факте ускорить процесс выбора страниц дело техники. Много лет использую такой подход. Код привести не могу - слишком много всего завязано - не объяснить.
|
|
|
|