Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / вернуть много и сразу / 9 сообщений из 9, страница 1 из 1
05.10.2016, 17:17
    #39321239
gri4
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
вернуть много и сразу
Коллеги, такой вопрос.
Заведую тут небольшим API. API предоставляет доступ к папкам и файлам. Точно так как в файловой системе.
В данный момент API возвращает список файлов для конкретний папки с пейджингом. Для хождения по папкам этого достаточно.
Клиенты захотели новый метод на API который вернет все файлы пользователя. Метод будет использоваться для поиска на клиенте (клиент закачает это один раз и будет обновлять по событиям).
Технически это не сложно, запрос к базе, join 3-х табилиц. Но чета меня это напрягает.
Количество файлов и папок может быть любым, к примеру пару сотен тысяч. Соответственно время выполнения запроса непредсказуемо. Размер пересылаемых данных тоже.

Допустимо такое? Какие еще косяки могут вылезти?
...
Рейтинг: 0 / 0
05.10.2016, 17:33
    #39321259
monstrU
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
вернуть много и сразу
gri4,

лучше рассчитывать, что если не запрещено, то может случиться.
выгружать на клиента весьма здоровые данные нужно порциями - поискать примеры download big files - использовать упрощенно Response.Write и Response.Flush - сбросить на клиента.
...
Рейтинг: 0 / 0
05.10.2016, 18:10
    #39321282
ЕвгенийВ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
вернуть много и сразу
gri4,
Все украдено до нас!
Используй WebDav!
...
Рейтинг: 0 / 0
05.10.2016, 18:53
    #39321324
gri4
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
вернуть много и сразу
monstrU,
Плохо написал. Речь идет не о выгрузки контента файлов а о списке файлов.
С выгрузкой на клиента понятно. Я хочу понять в целом, насколько тяжелые с точки зрения производительности запросы допустимы. Много маленьких против одного большого.
Я могу ограничить выборку к примеру 500-ами записями и пусть клиент дергает API последовательно 100500 раз. Но это
вроде как не еффективно. Можно наверное подогонать время исполнения запроса для максимального количества возвращаемых записей под какой-то SLA.
Если нужно больше - следущий запрос.


ЕвгенийВ,

файлы с фолдерами тут для примера. Могут быть любые записи.
...
Рейтинг: 0 / 0
05.10.2016, 19:08
    #39321330
ТиФорс
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
вернуть много и сразу
gri4,

папку проиндексируй. windows index service.
...
Рейтинг: 0 / 0
05.10.2016, 20:57
    #39321413
skyANA
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
вернуть много и сразу
ЕвгенийВgri4,
Все украдено до нас!
Используй WebDav!
+1
...
Рейтинг: 0 / 0
06.10.2016, 09:52
    #39321623
gri4
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
вернуть много и сразу
Черт, криво написал изначально. Забудьте про файлы.

Есть база в ней 3 таблицы. Нужно выбрать записи из этих 3-х таблиц по ключу в одной из таблиц.
Всего записей в таблицах может быть десятки миллионов. Записей для одно ключа - пару сотен тысяч. Это текущее состояние.
Оба числа могут быть и больше, пока трудно предсказать.
В данный момент есть метод который возвращает постранично записи по ключу. 500 за раз.
Хотят все записи сразу.

Вот и вопрос - допустимо ли такое.
...
Рейтинг: 0 / 0
06.10.2016, 09:57
    #39321627
handmadeFromRu
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
вернуть много и сразу
gri4,

а чего не допустимо то если у тебя памяти хватить на серваке. мож сделать эт через вызов твоей текущей функции сколько то раз и складирование в память, а можешь сразу материлизовать. а можешь переделать на то чтоб держало соединение до бд и считывало по 1 запись, манипуляции и куда надо тебе прокидывание и так дальше. минус что соединение держится, зато память не так жрется.
...
Рейтинг: 0 / 0
06.10.2016, 10:13
    #39321647
gri4
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
вернуть много и сразу
Ну напрягает то что я не знаю сколько будет выполняться вызов метода. Непредсказуемость..

Спасибо за идею с промежуточным кешированием. База узкое место, апп серверов можно много поднять.
Если большой запрос будет тормозить/мешать другим, буду разбивать.
...
Рейтинг: 0 / 0
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / вернуть много и сразу / 9 сообщений из 9, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]