Получение сложного объекта
От: e.thrash  
Дата: 14.04.22 13:00
Оценка:
Есть форма заказа.
Большая форма, которая в базе размазана на 10 таблиц.
На больших заказах форма открывается по 3 минуты на быстром железе даже.
Как варианты кроме индексов на селекты? хотелось бы иметь готовый объект заказа, может базы умеют делать на базе селекта готовые объекты в базе которые быстро мапятся на классы?
Re: Получение сложного объекта
От: stomsky Россия  
Дата: 14.04.22 13:26
Оценка: +3
Здравствуйте, e.thrash, Вы писали:

ET>Есть форма заказа.

ET>Большая форма, которая в базе размазана на 10 таблиц.
ET>На больших заказах форма открывается по 3 минуты на быстром железе даже.
ET>Как варианты кроме индексов на селекты? хотелось бы иметь готовый объект заказа, может базы умеют делать на базе селекта готовые объекты в базе которые быстро мапятся на классы?
А где причина тормозов? В том, что SELECT-ы в SQL-запросе долго выполняются или в том, что ORM на клиенте из резалтсета долго объект строит?
Структура таблиц какая?
Может у тебя в объекте какие-нибудь фотки или тесты по 10 МБ в каждой строке заказа присутствуют? Тогда, может быть, стоит о частично ленивой загрузке подумать?
Или у тебя база NoSQL?
Красота — наивысшая степень целесообразности. (c) И. Ефремов
Re: Получение сложного объекта
От: kov_serg Россия  
Дата: 14.04.22 13:53
Оценка:
Здравствуйте, e.thrash, Вы писали:

ET>Есть форма заказа.

ET>Большая форма, которая в базе размазана на 10 таблиц.
ET>На больших заказах форма открывается по 3 минуты на быстром железе даже.
ET>Как варианты кроме индексов на селекты?
Cache ?
ET>хотелось бы иметь готовый объект заказа,
ET>может базы умеют делать на базе селекта готовые объекты в базе
базы вообще-то умеют исполнять хранимые процедуры и имеют триггеры, которые могут обновлять зависимости например помечать кэш, как не валидный.
ET>которые быстро мапятся на классы?
php serialize unserialize
Re: Получение сложного объекта
От: scf  
Дата: 14.04.22 14:12
Оценка: +6
Здравствуйте, e.thrash, Вы писали:

ET>Как варианты кроме индексов на селекты? хотелось бы иметь готовый объект заказа, может базы умеют делать на базе селекта готовые объекты в базе которые быстро мапятся на классы?


Для начала, определить, почему оно тормозит.
Re: Получение сложного объекта
От: vaa  
Дата: 15.04.22 02:11
Оценка:
Здравствуйте, e.thrash, Вы писали:

ET>Есть форма заказа.

ET>Большая форма, которая в базе размазана на 10 таблиц.
ET>На больших заказах форма открывается по 3 минуты на быстром железе даже.
Если выполняется много запросов последовательно, то можно попробовать их объединить в один и вычитать
датаридером(если C#).
Если просто много данных, можно увеличить буфер запроса(в ms sql до 64К можно увеличить). в случае если данных много при малом буфере данные отправляются в несколько пакетов.
т.е. если пинг 50 мс, то и данные будут во столько же раз дольше до клиента идти.
☭ ✊ В мире нет ничего, кроме движущейся материи.
Re: Получение сложного объекта
От: Miroff Россия  
Дата: 15.04.22 02:36
Оценка:
Здравствуйте, e.thrash, Вы писали:

ET>Как варианты кроме индексов на селекты? хотелось бы иметь готовый объект заказа, может базы умеют делать на базе селекта готовые объекты в базе которые быстро мапятся на классы?


Объектные БД умеют, реляционные нет. А вообще выше правильно сказали: кэширование вас спасет.
Re: Получение сложного объекта
От: MadHuman Россия  
Дата: 15.04.22 06:20
Оценка:
Здравствуйте, e.thrash, Вы писали:

ET>На больших заказах форма открывается по 3 минуты на быстром железе даже.

ET>Как варианты кроме индексов на селекты?
если тормозит например выборка строк детализации заказа по ид заказа, то кроме построения индекса вариантов нет
Re: Получение сложного объекта
От: binks Россия  
Дата: 15.04.22 06:36
Оценка:
Здравствуйте, e.thrash, Вы писали:

Слишком мало вводных данных.
Re: Получение сложного объекта
От: Слава  
Дата: 15.04.22 08:40
Оценка:
Здравствуйте, e.thrash, Вы писали:

ET>На больших заказах форма открывается по 3 минуты на быстром железе даже.


Так вы померьте, посмотрите что там тормозит.

PS: для любителей экстрима в MS SQL Server есть возможность выборки древовидных данных в виде одного XML (SELECT FOR XML).
Re[2]: Получение сложного объекта
От: e.thrash  
Дата: 15.04.22 10:54
Оценка:
Здравствуйте, Слава, Вы писали:

С>Здравствуйте, e.thrash, Вы писали:


ET>>На больших заказах форма открывается по 3 минуты на быстром железе даже.


С>Так вы померьте, посмотрите что там тормозит.


С>PS: для любителей экстрима в MS SQL Server есть возможность выборки древовидных данных в виде одного XML (SELECT FOR XML).


я видел это и где-то даже юзал. там оверхеда дофига.
я скорее имел ввиду чтобы была возможность иметь бинарносериализованный объект
Re[3]: Получение сложного объекта
От: Слава  
Дата: 15.04.22 12:11
Оценка: +1
Здравствуйте, e.thrash, Вы писали:

С>>PS: для любителей экстрима в MS SQL Server есть возможность выборки древовидных данных в виде одного XML (SELECT FOR XML).


ET>я видел это и где-то даже юзал. там оверхеда дофига.

ET>я скорее имел ввиду чтобы была возможность иметь бинарносериализованный объект

Я вот не понимаю, у вас что, размер ответа в 10 МБ в сериализованном JSON между бэком и фронтом? Откуда тормоза-то, вы например базу профилировали?
Re: Получение сложного объекта
От: Osaka  
Дата: 15.04.22 13:29
Оценка: :)
ET>хотелось бы иметь готовый объект заказа, может базы умеют делать на базе селекта готовые объекты в базе которые быстро мапятся на классы?
Класть в базу 1 большой xml всех данных формы.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.