72 похожих чатов

Всем привет. Посоветуйте, пожалуйста, как правильно решаются такие задачи. Есть

процедура MS SQL, которая возвращает JSON, массив данных, к примеру клиенты. На вход подаётся offset (с какой записи вернуть), count (сколько записей вернуть) и поле, по которому сортировать. При количестве записей 200к select с order by и offset выполняется около 1.5 минут, когда сортировка идёт по полному имени клиента. Хранятся ФИО отдельно, а выводятся вместе в одном поле. Соответственно и сортировка идёт по сконкатинированному полю. Что можно сделать в данной ситуации, чтобы select быстрее возвращал данные?

7 ответов

11 просмотров

сортировку могут ускорить индексы у колонок

Славик
сортировку могут ускорить индексы у колонок

Индекс не поможет, сортировка идёт по вычисляемому полю

Решается отказом от пейджеров, и заменой их запросами , которые возвращают не 200тыщ ненужных пользователю записей, а 10 нужных ему.

Положыть данные в реляцыонную СУБД с помощью отношэний. И да, тут замечу, что конечно сортировка каких-то жалких 200 тысяч значений -- это первые секунды. В смысле -- дажэ вот если реально нужно каждый раз их сортировать -- то это первые секунды или дажэ менее секунды в типичном сервере СУБД. То, что у вас она длится полторы минуты -- это говорит о том, что ваш сервер просто неумеет хранить и обрабатывать тем методом, которым вы его заставляете. Потому нормальный метод -- прекратить насиловать MS SQL сервер разбором громадной текстовой строки с jsonом, и положыть в него данные нормально. Я, на самом деле, вполне уверен, что и конкретно ваш вариант можно так или иначе оптимизировать -- поскольку по-хорошэму на современном процэ разбор строки в данные и сортировка значений в быстром случае выполняются существенно быстрее, чем указанные минуты. Однако я такжэ подозреваю, что поскольку оптимизировать работу MS SQL сервера вы всё равно неумеете -- то первое что вам стоит сделать -- это переделать своё хранение под то, под которое этот MSSQL рассчитан. Просто чтобы не тратить усилия на изобретение каких-то новых приёмов и обход неожыданных ограничений, а использовать то, но что система рассчитана. И то, подо что написаны примерно все руководства по отптимизацыи mssql сервера.

Mente- Автор вопроса
Ilya Zviagin
Решается отказом от пейджеров, и заменой их запрос...

Запрос 200 тысяч и не возвращал. Возвращает он как раз 10 нужных. Проблема только в том, что для того, чтобы эти 10 нужных найти (согласно фильтрам пользователя на интерфейсе), нужно перебрать все 200 тысяч.

Mente
Запрос 200 тысяч и не возвращал. Возвращает он как...

Нет, ты не понял. Перечитай ещё раз что я написал.

Похожие вопросы

Обсуждают сегодня

Подскажите, а есть vault lite или ченить такое?) А то нужен вольт для похода в вольт, но весит он ~500 мб) как-то многовато для парочки запросов ))
Alexandr Orloff
17
Всем привет, есть небольшая проблема Есть такой скрипт document.addEventListener('DOMContentLoaded', function () { const sliderTabs = document.querySelectorAll('.s...
A da
8
@go1337 @dblackCat Привет. Все ещё дрочусь с fastpanel. Добавил второй домен который должен смотреть в рут того же сайта, но так как это просто домен, а не сайт, я не могу ему...
Ross 🦴
9
До речі, в ево нема можливості чи якого розширення щоб з адмінки з телефона зайти і терміново щось в верстці поправити?
Женя
7
Ну, так - шо, грамодяне-эрленгяне? Все - готовы подписаться под словами "гуру" на счёт трудности применения POSIX threads и про, конкретно, мьютексы, что "... недопоставишь м...
Wlad
21
кто-нибудь пользуется тайм-трекерами во время работы? так много разных нагуглил, может есть что-то популярное
Lencore
8
Пацаны. Я разрабатываю софт для инвайтинга на телетон, и столкнулся с такой проблемой, в один из чатов не могу приглашать никого, не дает добавлять, в то же время через официа...
Kernel Panic
11
Скажите, а кому нужен Currency как отдельный плагин вместо полноценного ecommerce в OctoberCMS? Кто-то использует его уже или планирует в будущем? Может я что-то не понимаю?
Igor
13
Розмовами про Рево мені нагадали часи, коли шаблони правилися прямо в адмінці. Хто в курсі, чому відійшли від цієї практики, так блейд не працює? Доволі зручно ж було (інколи)
Женя
3
привет, как сбилдить свифт прогу статически? делаю -Xswiftc -static-executable - получаю такую ошибку: /lib/aarch64-linux-gnu/libc.a(pthread_join_common.o)(.note.stapsdt+0x14...
🦊 Fox 🌸 🌸
6
Карта сайта