Модераторы: skyboy

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> [Access] определённое количество записей, выбрать записи с 501-ой по 1000-ую 
V
    Опции темы
Certain
Дата 15.11.2010, 17:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 235
Регистрация: 18.6.2008
Где: Moscow

Репутация: нет
Всего: 4



Возможно ли сделать такую выборку средствами SQL Access? Поиск ничего не дал
--------------------
Работа программиста и шамана имеет много общего - оба боpмочyт непонятные слова, совершают непонятные действия и не могут объяснить, как оно работает.
PM MAIL ICQ   Вверх
aleksh
Дата 15.11.2010, 17:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 609
Регистрация: 8.7.2008

Репутация: нет
Всего: 13



можно в качестве ограничений указать диапазон id
PM MAIL   Вверх
Certain
Дата 15.11.2010, 17:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 235
Регистрация: 18.6.2008
Где: Moscow

Репутация: нет
Всего: 4



К id привязываться не вариант, с 530-й по 610-ую записей может и не быть.
Есть ли в Access системные функции типа Row_number() и т.п.?
--------------------
Работа программиста и шамана имеет много общего - оба боpмочyт непонятные слова, совершают непонятные действия и не могут объяснить, как оно работает.
PM MAIL ICQ   Вверх
aleksh
Дата 15.11.2010, 18:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 609
Регистрация: 8.7.2008

Репутация: нет
Всего: 13



Цитата(Certain @  15.11.2010,  17:48 Найти цитируемый пост)
К id привязываться не вариант, с 530-й по 610-ую записей может и не быть.

но диапазон id ведь все равно будет
PM MAIL   Вверх
Akina
Дата 15.11.2010, 18:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 45
Всего: 454



Цитата(Certain @  15.11.2010,  18:23 Найти цитируемый пост)
выбрать записи с 501-ой по 1000-ую 

По какому признаку? что это за числа, откуда взялись?


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
Certain
Дата 15.11.2010, 18:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 235
Регистрация: 18.6.2008
Где: Moscow

Репутация: нет
Всего: 4



Цитата

но диапазон id ведь все равно будет

да будет.... у 501-й записи id = 4945, а у 1000-й id=7693
как Вам этот вариант?  smile

Добавлено через 2 минуты и 13 секунд
Цитата

По какому признаку? что это за числа, откуда взялись?


Вобщем есть база, которая содержит большой объём данных, находится на сервере, нужно сделать постраничный вывод (1-500, 501-1000 и т.п.)
--------------------
Работа программиста и шамана имеет много общего - оба боpмочyт непонятные слова, совершают непонятные действия и не могут объяснить, как оно работает.
PM MAIL ICQ   Вверх
Akina
Дата 15.11.2010, 18:20 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 45
Всего: 454



Стандартный подход для Аксесса:
Код

SELECT TOP 500 *
FROM
(
  SELECT TOP 1000 *
  FROM UserTable
  ORDER BY SomeField DESC
)
ORDER BY SomeField ASC



--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
Certain
Дата 15.11.2010, 18:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 235
Регистрация: 18.6.2008
Где: Moscow

Репутация: нет
Всего: 4



с TOPом ясно, использовал, это решение было единственным.
Думал, что есть более изящный способ!
Да и сам вариант неочень... 
База событийная, другая программа пишет в неё по ~30 сообщений в секунду

To Akina,
спасибо

Это сообщение отредактировал(а) Certain - 15.11.2010, 18:33
--------------------
Работа программиста и шамана имеет много общего - оба боpмочyт непонятные слова, совершают непонятные действия и не могут объяснить, как оно работает.
PM MAIL ICQ   Вверх
skyboy
Дата 16.11.2010, 03:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


Профиль
Группа: Модератор
Сообщений: 9820
Регистрация: 18.5.2006
Где: Днепропетровск

Репутация: 15
Всего: 260



повод сменить СУБД на более вменяемую smile
PM MAIL   Вверх
Akina
Дата 16.11.2010, 08:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 45
Всего: 454



Согласен... Аксесс в общем-то не предназначен на такое использование.


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
Zloxa
Дата 16.11.2010, 10:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Чо?
****


Профиль
Группа: Завсегдатай
Сообщений: 3473
Регистрация: 12.9.2008

Репутация: 53
Всего: 161



Парни, 30 записей в секунду это 100к записей в час, 2.5млн в сутки.
Какая, "более вменяемая" СУБД сможет обеспечить быструю сортировку этого объема чтобы показать, скажем, сотую страницу?
Не, я понимаю первые 500, тут индекс поможет, но сотые 500 это уже фуллскан - по любому.


--------------------
Достоверно известно, что 89% людей доверяют статистике взятой с потолка smile
PM   Вверх
skyboy
Дата 16.11.2010, 11:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


Профиль
Группа: Модератор
Сообщений: 9820
Регистрация: 18.5.2006
Где: Днепропетровск

Репутация: 15
Всего: 260



Цитата(Zloxa @  16.11.2010,  09:13 Найти цитируемый пост)
но сотые 500 это уже фуллскан - по любому

вопрос демагога: partitioning не даст нужного эффекта?

Добавлено через 2 минуты и 6 секунд
хотя, не прав, универсально это сделать не получится - только под определенное поле заточено будет. захотят сортировки по другим полям - и будет облом.
PM MAIL   Вверх
Akina
Дата 16.11.2010, 11:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 45
Всего: 454



Цитата(Zloxa @  16.11.2010,  11:13 Найти цитируемый пост)
Какая, "более вменяемая" СУБД сможет обеспечить быструю сортировку этого объема чтобы показать, скажем, сотую страницу?

Конечно, никакая. Но среди тех, кто не сможет, Аксесс - в первых рядах.
С другой стороны, мне вообще непонятно, нафига выводить по 500 записей - их при всём желании на экран не положить. И даже беглый просмотр со скроллом съест больше времени, чем нужно для накопления следующей полутысячи записей.
И при этом, оказывается, на той же БД идёт какая-то параллельная обработка, в т.ч. удаляющая записи... 


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
Zloxa
Дата 16.11.2010, 12:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Чо?
****


Профиль
Группа: Завсегдатай
Сообщений: 3473
Регистрация: 12.9.2008

Репутация: 53
Всего: 161



Цитата(skyboy @  16.11.2010,  11:40 Найти цитируемый пост)
вопрос демагога

Имха ты себя не справедливо уничижаешь smile
Цитата(skyboy @  16.11.2010,  11:40 Найти цитируемый пост)
partitioning не даст нужного эффекта? 

Если в маське не придумали чегото, до чего не додумались в оракле, то - нет.
Секционирование может дать существенный прирост только в случае, если уже на этапе разбора запроса можно определить, что запрос обращается к ограниченному количеству секций. Определить порядковый номер записи в определенной последовательности не возможно используя данные только этой записи, соответственно построить ключ секционирования, который нам помог бы определить этот номер - нам удастся только в том случае, если мы номер этой страницы будем сохранять в самой записи.

Мне всегда, кстати, было интересно как, скажем, SQL.ru умудряется обеспечить столь быстрый отклик для "Показываются темы: 105501 - 105550 из 106027", при том что темы он сортирует темы по дате последнего поста в них. Я слышал его движок - MS SQL. Судя по тому, что они не позволяют менять количество тем, отображаемых на странице, я полагаю, они пересчитывают номера страниц, при публикации поста в теме. Но это лишь мои предположения. А реализация апдейта сотни тыщ записей при создании новой темы или поднятии очень старой меня, при таком подходе, таки смущает

Это сообщение отредактировал(а) Zloxa - 16.11.2010, 12:50


--------------------
Достоверно известно, что 89% людей доверяют статистике взятой с потолка smile
PM   Вверх
skyboy
Дата 16.11.2010, 13:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


Профиль
Группа: Модератор
Сообщений: 9820
Регистрация: 18.5.2006
Где: Днепропетровск

Репутация: 15
Всего: 260



Цитата(Zloxa @  16.11.2010,  11:07 Найти цитируемый пост)
Имха ты себя не справедливо уничижаешь

хм, ну, в данном случае я действительно "что-то слышал, где-то смотрел", толком не разобрался.
PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Составление SQL-запросов | Следующая тема »


 




[ Время генерации скрипта: 0.1153 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.