Logo Море(!) аналитической информации!
IT-консалтинг Software Engineering Программирование СУБД Безопасность Internet Сети Операционные системы Hardware
Архив форумов ЦИТФорума
Море(!) вопросов - Море(!) ответов
 
 FAQFAQ   ПоискПоиск   ПользователиПользователи   ГруппыГруппы   РегистрацияРегистрация 
 ПрофильПрофиль   Войти и проверить личные сообщенияВойти и проверить личные сообщения   ВходВход 
Как правильно задавать вопросы

вывод SQL запроса частями

 
Перейти:  
Этот форум закрыт, вы не можете писать новые сообщения и редактировать старые.   Эта тема закрыта, вы не можете писать ответы и редактировать сообщения.    Список форумов Архив форумов ЦИТФорума -> Базы данных
Предыдущая тема :: Следующая тема  
Автор Сообщение
lifeissuxx



Зарегистрирован: 27.02.2006
Сообщения: 6
Откуда: Новосибирск

СообщениеДобавлено: Пн Фев 27 2006 10:11    Заголовок сообщения: вывод SQL запроса частями Ответить с цитатой

Нужна помощь! делаю веб-интерфейс БД. требуется вывод огромного количества информации (порядка 10000 строк). так вот мало того, что "Maximum execution time of 30 seconds exceeded" и более 5000 строк он не успевает обработать, так еще и для глаз неудобно пролистывать по 5 минут в поисках ныжного фрагмента. Хочу сделать постраничный вывод, но средствами SQL (опять же из-за "Maximum execution time"). Не могу разобраться с LIMIT'ом в SELECT'е. точнее ограничить могу, а вот чтобы остальное он выводил... (чтоб выводил допустим 1000 строк, второй кусок запроса выводил с 1001 по 2000 строку...) База постоянно пополняется и данные набираются оттуда не попорядку, поэтому выборка по "порядковому номеру" не спасает Sad помогите кто чем может! заранее спасибо!
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
kolobok0



Зарегистрирован: 22.04.2005
Сообщения: 253
Откуда: Мсква

СообщениеДобавлено: Пн Фев 27 2006 13:59    Заголовок сообщения: Re: вывод SQL запроса частями Ответить с цитатой

lifeissuxx писал(а):
...Не могу разобраться с LIMIT'ом в SELECT'е. точнее ограничить могу, а вот чтобы остальное он выводил... (чтоб выводил допустим 1000 строк, второй кусок запроса выводил с 1001 по 2000 строку...) База постоянно пополняется и данные набираются оттуда не попорядку, поэтому выборка по "порядковому номеру" не спасает Sad помогите кто чем может! заранее спасибо!



Делал такое. В двух проектах. Один даже на америкосовский рынок. Более того это не то, что бы "делается" а именно ГРАМОТНЫЙ подход к данной проблеме...

как решить...
очень просто:
1) Вам нужно иметь на клиенте данные по сортируемым полям
2) Вам нужно иметь поле с уникальными данными в одном поле...

смысл следующий...
Вы ВСЕГДА можете задать сиквол запрос типа "а теперь БД дай всё что далее этой записи (указываете поля сортировки с учётом направления сортировки и правил сортировки, и с права дополняете уникальным полем) и кол-вом столько то". И будет Вам счастье. Уникальное поле - думаю Вы поняли для чего - для навигации в случае полного совпадения данных из полей сортировки.

Плюсы...
1) Клиент ВСЕГДА видит свежие данные..
2) По сети гоняеться только НЕОБХОДИМЫЕ для обработки данные.
3) Простота алгоритма.
Минусы...
1) Если нет индексов по полям сортировки - то ожидайте тормозов (замечу: Оракл кстати справляеться на ура)
2) Избегайте уникальности данных - конструкции вида distinct

с уважением
(круглый)
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
C37



Зарегистрирован: 09.03.2005
Сообщения: 311

СообщениеДобавлено: Пн Фев 27 2006 17:36    Заголовок сообщения: Ответить с цитатой

Создаем курсор, затем читаем n записей, потом еще n записей, потом остаток.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
dipsy



Зарегистрирован: 26.01.2005
Сообщения: 424
Откуда: Н. Новгород

СообщениеДобавлено: Вт Фев 28 2006 13:41    Заголовок сообщения: Ответить с цитатой

по-моему, что-то такое делается:
после SQL запроса просто пишем LIMIT 1001, 2000
что означает, - выводить результат с 1001 строки по 2000.

а сами величины 1001 и 2000 берем из запускающего запрос приложения.

Пишите на PHP?
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
kolobok0



Зарегистрирован: 22.04.2005
Сообщения: 253
Откуда: Мсква

СообщениеДобавлено: Вт Фев 28 2006 19:14    Заголовок сообщения: Ответить с цитатой

C37 писал(а):
Создаем курсор, затем читаем n записей, потом еще n записей, потом остаток.


круто всё работает...до той поры, пока Вася пупкин между 3 и 4 Вашем сканирование грохнул первые n записей...Ваши действия ???
пользователь будет рад опять увидеть "верхнии" записи которые он пролистал...

ну прям детский сад...
Laughing

удачи Вам
(круглый)
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Показать сообщения:   
Этот форум закрыт, вы не можете писать новые сообщения и редактировать старые.   Эта тема закрыта, вы не можете писать ответы и редактировать сообщения.    Список форумов Архив форумов ЦИТФорума -> Базы данных Часовой пояс: GMT + 3
Страница 1 из 1

 
Перейти:  
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах


Powered by phpBB © 2001, 2002 phpBB Group
Русская поддержка phpBB

 

IT-консалтинг Software Engineering Программирование СУБД Безопасность Internet Сети Операционные системы Hardware

Информация для рекламодателей PR-акции, размещение рекламы — adv@citforum.ru,
тел. +7 495 6608306, ICQ 232284597
Пресс-релизы — pr@citforum.ru
Послать комментарий
Информация для авторов
This Web server launched on February 24, 1997
Copyright © 1997-2000 CIT, © 2001-2006 CIT Forum
Внимание! Любой из материалов, опубликованных на этом сервере, не может быть воспроизведен в какой бы то ни было форме и какими бы то ни было средствами без письменного разрешения владельцев авторских прав. Подробнее...