Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Web программирование > SQL, базы данных
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 25.11.2014, 13:50   #1
acteralex
Форумчанин
 
Регистрация: 19.05.2011
Сообщений: 189
Восклицание Пагинация (постраничная навигация) - скорость

Здравствуйте, уважаемые форумчане
В общем вопрос из известных:
Постраничная навигация в MySQL заключается в операторе LIMIT x,y
в MSSQL такого нет (хотя есть нечто похожее, но, увы, только в MSSQL Server 2012). У меня версия MSSQL Server 2008.

Пагинация реализована
Код:
SELECT *
FROM 
	(SELECT ROW_NUMBER() OVER (ORDER BY column_name) AS RowNum, * 
	FROM table_name
	--WHERE
	) AS RowConstrainedResult
--WHERE RowNum >=800 AND RowNum < 819
--WHERE RowNum BETWEEN 800 AND 819
ORDER BY RowNum
ВОПРОС ВОЗНИКАЕТ В СЛЕДУЮЩЕМ:

ЧТО БЫСТРЕЕ это:
WHERE RowNum >=800 AND RowNum < 819

или это:
WHERE RowNum BETWEEN 800 AND 819

Спасибо большое заранее.
acteralex вне форума Ответить с цитированием
Старый 25.11.2014, 13:55   #2
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 19,042
По умолчанию

Ну вообще-то BETWEEN быстрей, но не думаю, что в таком запросе это как-то скажется. И RowNum >=800 AND RowNum < 819 и BETWEEN 800 AND 819 немного разное, во втором случае и 819 в результат попадет. Тестируй и выбери то, что оптимальней
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 25.11.2014, 14:03   #3
acteralex
Форумчанин
 
Регистрация: 19.05.2011
Сообщений: 189
По умолчанию

ну то, что попадет во втором случае не велика беда - исправим

я сейчас только проектирую структуру БД и архитектуру проекта в целом. Заменить в будущем код не составит труда, но все же хотелось бы знать что быстрее.

Может у вас есть какие-то результаты тестов или ссылки на такие результаты. Где наглядно будет видно различие?
acteralex вне форума Ответить с цитированием
Старый 25.11.2014, 14:51   #4
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 19,042
По умолчанию

Какие тесты? Для каждого запроса, состояния базы, загруженности свои результаты. Один и тот же запрос разное время дает
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 25.11.2014, 15:00   #5
acteralex
Форумчанин
 
Регистрация: 19.05.2011
Сообщений: 189
По умолчанию

понятно... нецелесообразный вопрос был.
В общем буду юзать BETWEEN. а там посмотрим.

Аватар, спасибо большое!
acteralex вне форума Ответить с цитированием
Старый 26.11.2014, 01:34   #6
Vapaamies
Ваш К. О.
Участник клуба
 
Аватар для Vapaamies
 
Регистрация: 26.12.2012
Сообщений: 1,755
По умолчанию

Правильный ответ на "Что быстрее?" -- "Нужно план смотреть". Что план показывает?
Vapaamies вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Постраничная навигация kostya67 PHP 3 05.10.2014 14:06
Постраничная навигация в кохан kuba1981 WordPress и другие CMS 0 14.10.2013 19:54
Постраничная навигация Devolarium PHP 2 09.04.2013 15:08
Протестируйте. Постраничная навигация.. mar4elo PHP 3 12.12.2010 19:46
постраничная навигация с MySQL ilma55 PHP 12 10.03.2010 11:12