Похожие чаты

Здравствуйте, как можно улучшить данный запрос?

19 ответов

16 просмотров
Mark-Zemlyanskikh Автор вопроса

никто не подскажет?(

Mark Zemlyanskikh
никто не подскажет?(

По каким параметрам улучшаем?

Mark-Zemlyanskikh Автор вопроса
Tishka17
По каким параметрам улучшаем?

а что можете предложить?)

я бы сделал reltation на юзера и соответсвенно select( Service, ).options( joinedload(User), ).where( func.date(Service.reminder)==func.current_date, )

1) для начала не открывать сессию под только один запрос, вынести сам запрос в репозиторий или хотя бы отдельную функцию 2) Почему используется ORM, но абсолютно никак не применяются его фичи? Мне кажется частично join запрос может уйти в relationship. 3) Вообще не очень понятен сам по себе запрос: почему он тянет и пользователя и сервис, почему сервис ссылается на пользователя. Однозначно не самый лучший нейминг. 4) where запрос скорее всего не нужно приводить к дате ни со стороны бд, ни со стороны питона, за нас это сделает алхимия.

я бы еще накинул scalars, чтобы не мучаться с таплами

Mark-Zemlyanskikh Автор вопроса
Ilya Lyapin (Nestyreff)
1) для начала не открывать сессию под только один ...

1) сессия отрабатывается 1 раз в день, а затем умирает. про паттерн «Repo» я знаю, но не очень понимаю как его применять, если у вас есть соответствующие статьи или какие-нибудь материалы. на эту тему, то милости прошу. 2) да, я тоже об этом думал, наверное так и сделаю. 3) в этом и проблема. хотелось бы что-то с этим сделать, я написал этот запрос на SQL и тупо перенес его в код ничего не меняя. 4) отлично, спасибо!

Mark-Zemlyanskikh Автор вопроса

3. даже если рассматривать запрос чисто в sql он очень странный

Mark-Zemlyanskikh Автор вопроса
Ilya Lyapin (Nestyreff)
3. даже если рассматривать запрос чисто в sql он о...

Вы же понимаете, что я выделяю эти колонки, потому что мне нужно получить эти* данные

Mark Zemlyanskikh
Вы же понимаете, что я выделяю эти колонки, потому...

Я понимаю, но я объяснил в чем именно странность запроса

Mark Zemlyanskikh
Вы же понимаете, что я выделяю эти колонки, потому...

нет, не понимаем. Есть ощущение что ты выделяешь эти колонки потому что хочешь сэкономить на поулчении остальных, но не знаешь сколько экономишь

Mark-Zemlyanskikh Автор вопроса
Tishka17
нет, не понимаем. Есть ощущение что ты выделяешь э...

В принципе, можно получать всё, там не так уж и много, но нормальная ли это практика?

Mark-Zemlyanskikh Автор вопроса
Mark Zemlyanskikh
В принципе, можно получать всё, там не так уж и мн...

Я в плане, получать всё, а не что-то конкретное

Mark Zemlyanskikh
В принципе, можно получать всё, там не так уж и мн...

чем более гранулярно ты запрашиваешь данные, тем больше переделывать при их изменениях

Mark Zemlyanskikh
Я в плане, получать всё, а не что-то конкретное

Это вполне разумная практика часто, но обычно это относится к вопросам оптимизации на больших объемах данных

Mark-Zemlyanskikh Автор вопроса
V K
Это вполне разумная практика часто, но обычно это ...

да у меня как таковых больших данных и нет, получается я не нуждаюсь в точечном получении

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

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

Hey everyone! I won’t focus too much on what this person said (it’s clear they don’t understand the scope of what TF and TELOSX are achieving), but I’ll put it simply for thos...
Ana Ojeda
3
Hi did any of you experience a file error when download hex file for Windows?
Valya
17
как правильно удалить сддм? прописал в etc/portage.use/plasma-meta -sddm , но при обновлении юзов мне предлагает поставить lightdm (ещё лучше 😡), добавил туда - display-manage...
REDis
25
Коллеги, я тут для личных нужд пошел ставить MQTT сервер, пощупал mosquitto, но ужаснулся отсутствию такой банальности, как HTTP API для посмотреть список топиков. А тут что,...
Maksim Lapshin
13
How will they work it out?
Max
14
Could the new Norse labs apps have just been called "VPN" instead of DVPN?
HDGVII
14
Всем привет! Имеется функция: function IsValidChar(ch: UTF8Char): Boolean; var i: Integer; ValidChars: AnsiString; begin ValidChars := 'abcdefghijklmnopqrstuvwxyzABCDE...
Евгений
44
Hello team, I have a question regarding next text from an article and if Energyweb is still working on EW-DOS or what the plans are for the future regarding EW-DOS? Can an...
MichelLWD
4
Ready for some fun AND a chance to win TKO Tokens? Join us for exciting minigames in our Telegram group! 🕒 Don’t miss out—games start on today 25 October 2024, at 8 PM! Ge...
Milkyway | Tokocrypto
255
#include <stdio.h> #include <stdlib.h> #include <time.h> void mass_first_generate(int mass[5][7]) {     for (int N = 0; N < 5; N++) {         for (int A = 0; A < 7; A++) {   ...
Чувак
6
Карта сайта