|
Как используете Query в классах?
|
|||
---|---|---|---|
#18+
С наступающими! Вот тут увидел про "Например теже Query в классах" и немного задумался. Кто может поделиться, как используете и в чем фича? А то я, может и к собственному стыду, писал их только под сложные запросы, где эти самые Query пишутся в четыре метода - но такие нужны три раза на всю систему. Иногда один ;) А у вас? ... |
|||
:
Нравится:
Не нравится:
|
|||
11.02.2019, 17:10 |
|
Как используете Query в классах?
|
|||
---|---|---|---|
#18+
Query можно писать вместо любых других запросов, любой сложности но плюсы Query еще и в том что они могут быть не только SQL, а и программные. Например в ZEN приложении удобно, когда все через Query. Вплоть для сгенерированных результатов. У меня есть варианты, когда query должен вернуть список классов и он генерируется во время компиляции, и в runtime уже нет никаких вычислений, потому что уже нет необходимости (код меняется только у разработчика, и никогда на продакшене). И так же большим плюсом идет, то что все query сразу становятся функциями, довольно быстро и легко их вызывать. Код: sql 1. 2. 3. 4.
... |
|||
:
Нравится:
Не нравится:
|
|||
11.02.2019, 17:36 |
|
Как используете Query в классах?
|
|||
---|---|---|---|
#18+
Продолжим традицию поиска недостатков в разных способах выполнения запросов. В данном случае недостаток в том, что запросов может быть миллион всяких разных, затрагивающих разные классы, зачастую похожих, но не одинаковых. Со временем вы можете захламить класс. Править их страшно, потому что где, откуда используются (я понимаю, можно поискать, но что даст список из десятков результатов - и что с этим делать?) kolesovгде эти самые Query пишутся в четыре метода - но такие нужны три раза на всю систему. Иногда один ;)Не всем так везет :-) Хотя первый раз все равно самый страшный. DAiMorИ так же большим плюсом идет, то что все query сразу становятся функциями, довольно быстро и легко их вызывать.Прикольно, не знал. Но вспомнил фишку, которые тоже, наверное, не все знают. Что классметоды после добавления признака sqlproc можно использовать в запросах как процедуру, возвращающую значение. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.02.2019, 17:55 |
|
Как используете Query в классах?
|
|||
---|---|---|---|
#18+
Блок А.Н.В данном случае недостаток в том, что запросов может быть миллион всяких разных, затрагивающих разные классы, зачастую похожих, но не одинаковых. Со временем вы можете захламить класс. Править их страшно, потому что где, откуда используются (я понимаю, можно поискать, но что даст список из десятков результатов - и что с этим делать?)Вообще то же справедливо для любых sql запросов, а в некоторых случаях начинается еще и дублирование. И часто запросы даже почти ничем не отличаются, и можно было бы сделать один вместо такого количества ... |
|||
:
Нравится:
Не нравится:
|
|||
11.02.2019, 18:20 |
|
Как используете Query в классах?
|
|||
---|---|---|---|
#18+
DAiMor, Если это ESQL запрос, то он не шарится, по сути используется внутри метода. Если это динамический запрос, то он скорее всего создается в месте использования (т.е. в другом классе), а запросы как элемент класса именно что его в максимальной степени захламляют. Да, захламить можно и методами по той же причине (захотелось - сделал новый метод), но методы при минимальной дисциплине получаются более атомарными, а запросы атомарными не сделаешь. Кстати, запросы как элемент класса - это по своей сути динамические(кэшированные) или ESQL(прекомпилированные) запросы? Как они при изменении структуры класса работают? У меня ощущение, что они динамические. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.02.2019, 18:54 |
|
Как используете Query в классах?
|
|||
---|---|---|---|
#18+
Блок А.Н., Вроде эти запросы преобразуются в создание объекта SQLStatement ... |
|||
:
Нравится:
Не нравится:
|
|||
11.02.2019, 19:57 |
|
Как используете Query в классах?
|
|||
---|---|---|---|
#18+
DAiMor, Хм... как то этот способ прошел мимо меня. Правда предварительные тесты показали существенное замедление супротив обычного Код: c# 1. 2.
Возможно дело в том что у нас принято все данные запроса сразу запихивать в многомерный qHandle от Execute метода, нужно будет еще покапаться. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.02.2019, 19:06 |
|
Как используете Query в классах?
|
|||
---|---|---|---|
#18+
Ptnпоказали существенное замедление супротив обычногоЭто вроде справедливо для старых версий, в новых вроде должно быть лучше. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.02.2019, 21:41 |
|
Как используете Query в классах?
|
|||
---|---|---|---|
#18+
Блок А.Н.Прикольно, не знал. Но вспомнил фишку, которые тоже, наверное, не все знают. Что классметоды после добавления признака sqlproc можно использовать в запросах как процедуру, возвращающую значение. Тут помнится был полезный список автогенерированных методов: https://community.intersystems.com/post/useful-auto-generated-methods ... |
|||
:
Нравится:
Не нравится:
|
|||
22.02.2019, 11:20 |
|
|
start [/forum/topic.php?fid=39&fpage=4&tid=1556212]: |
0ms |
get settings: |
9ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
30ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
52ms |
get tp. blocked users: |
2ms |
others: | 270ms |
total: | 401ms |
0 / 0 |