powered by simpleCommunicator - 2.0.36     © 2025 Programmizd 02
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / Есть причины отказаться от embedded sql?
31 сообщений из 31, показаны все 2 страниц
Есть причины отказаться от embedded sql?
    #39769564
alatalo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DAiMor не так давно упомянул:

DAiMorБлок А.Н.,
Еще одна причина отказаться от embedded sql

20256654

интересно а какие еще причины есть? Пользоваться им порой проще и запрос с ошибками не скомпиляется.
...
Рейтинг: 0 / 0
Есть причины отказаться от embedded sql?
    #39769581
Фотография DAiMor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alatalo,

пришлось гуглить, чтобы найти когда и почему я это писал. Добавил вам в сообщение ссылку на оригинал.

Вообще я сам пользуюсь embedded sql. Но считаю, что им пользоваться нужно довольно аккуратно, как и всеми другими вариантами при которых компилируется SQL не в runtime. Например теже Query в классах.

Основная причина почему, это необходимость перекомпиляции любого такого SQL при изменении в структуре данных таблицы по которой идет запрос.

И еще минус в отношении embedded sql, это громоздскость запросов, когда нужно получить более одной строки. Требуется объявлять курсор, и делать проход по курсору.

Сейчас я бы посовететовал использовать Query в первую очередь, и embedded sql только в пределах того класса с которым он связан. При наличии Query его можно вызывать из любого места в коде и в разных местах.
А если нужно сделать runtime sql, делать его с помощью %SQL.Statement
...
Рейтинг: 0 / 0
Есть причины отказаться от embedded sql?
    #39769661
Блок А.Н.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Еще ESQL не учитывает разрешения на таблицы для пользователя.

>И еще минус в отношении embedded sql, это громоздскость запросов, когда нужно получить более одной строки. Требуется объявлять курсор, и делать проход по курсору.
Я не понял, а в чем принципиальное отличие у %SQL.Statement? Там тоже prepare,execute,fetch. Но ESQL хотя бы компактен в отношении запросов с получением одной строки.
...
Рейтинг: 0 / 0
Есть причины отказаться от embedded sql?
    #39769676
Фотография DAiMor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Блок А.Н.Я не понял, а в чем принципиальное отличие у %SQL.Statement?В том что у него меньше зависимость от изменения структуры данных в запрашиваемой таблице.


Блок А.Н.Но ESQL хотя бы компактен в отношении запросов с получением одной строки.

Код: sql
1.
2.
3.
4.
5.
6.
USER>set rs=##class(%SQL.Statement).%ExecDirect(,"SELECT Count(*) cnt FROM Sample.Person")

USER>w rs.%Next()
1
USER>w rs.cnt
200


Не так уж чтобы прям совсем громоздко
...
Рейтинг: 0 / 0
Есть причины отказаться от embedded sql?
    #39769803
Блок А.Н.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DAiMorБлок А.Н.Я не понял, а в чем принципиальное отличие у %SQL.Statement?В том что у него меньше зависимость от изменения структуры данных в запрашиваемой таблице.Я имею в виду в плане громоздкости прохода по курсору. Про приколы со структурой я в курсе.
...
Рейтинг: 0 / 0
Есть причины отказаться от embedded sql?
    #39769827
alatalo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А вот сейчас глупость спрошу: имеет ли размер значение, в смысле - имеет ли какое-либо реальное значение количество кода в нейспейсе? Мы свой продукт пилим с прошлого века, до недавних пор вообще без классов, по крайней мере, без персистентных классов, и количество кода в продукте все время растет. Теперь, видя какое дикое колво кода порождают персистентные классы, и ESQL в частности, и учитывая, что на продакшене этот код копируется в большое колво неймспейсов, возникает вопрос а есть ли какие-то пределы, которые стоит учитывать. Место на диске понятно не проблема, но легко представить, что, например, нужно памяти больше на сервере.
...
Рейтинг: 0 / 0
Есть причины отказаться от embedded sql?
    #39769851
Блок А.Н.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alatalo,

Раньше было ограничение на количество порожденного байткода в одной программе. Именно при использовании ESQL можно было добиться, чтобы класс не компилировался. Сейчас вроде бы не должно быть такого, по крайней мере, нужно постараться руками написать такой код, чтобы он не вместился в длинную строку (я так понимаю, из-за этого была проблема).

Если у вас будут тысячи классов в одном неймспейсе, то скорее всего будут проблемы с Atelier, потому что вроде как он при инициализации делает локальный репозиторий, и все классы копирует к себе. Не слышал, чтобы такие проблемы были у студии.

В некоторых версиях Каше сталкивался с проблемой зацикливания расчета очередности компиляции. Кстати, в том числе из-за ESQL. Если у вас тысячи (или хотя бы сотни) классов, которые ссылаются друг на друга, например, через ESQL, наследование, ссылки, то компилятор при компиляции строит дерево. И было такое, что с этим были проблемы. Но вроде это тоже давно было.

А так в целом нет - не слышал о каких-то принципиальных ограничениях на количество кода. Скорее, проблема будет в людях, которые могут понять, что там написано.
...
Рейтинг: 0 / 0
Есть причины отказаться от embedded sql?
    #39769852
Фотография DAiMor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я бы не сказал, что это имеет существенное значение. Да, памяти нужно больше, но не сильно много.
...
Рейтинг: 0 / 0
Есть причины отказаться от embedded sql?
    #39769866
alatalo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Зер гут. Тысячи классов не предвидится, тем более, связанных, так что буду спать спокойно
...
Рейтинг: 0 / 0
Есть причины отказаться от embedded sql?
    #39771216
doublefint
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DAiMorБлок А.Н.Я не понял, а в чем принципиальное отличие у %SQL.Statement?В том что у него меньше зависимость от изменения структуры данных в запрашиваемой таблице. Это же хорошо и плохо одновременно :)
При компиляции embedded - почти "анализ типов" даром - мечта сторонников строго типизированных языков.
Вот этот совет DAiMorиспользовать embedded только в пределах того класса с которым он связан - хороший, правильный!
Но есть всякие join, union ... ;) Еще расходы при выполнении чуть меньше, скорость чуть выше (не уверен, тесты наше всё)
А так - низкоуровневый инструмент, использовать с осторожностью, как и всё низкоуровневое.
Точно не помню, ebmedded отображается в статистике запросов? Можно заморозить план запроса?
...
Рейтинг: 0 / 0
Есть причины отказаться от embedded sql?
    #39771243
Фотография DAiMor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
doublefintТочно не помню, ebmedded отображается в статистике запросов? Можно заморозить план запроса?насчет этого не уверен
...
Рейтинг: 0 / 0
Есть причины отказаться от embedded sql?
    #39771378
doublefint
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DAiMordoublefintТочно не помню, ebmedded отображается в статистике запросов? Можно заморозить план запроса?насчет этого не уверен Это для alatalo, вопросы для беспокойного сна :)
...
Рейтинг: 0 / 0
Есть причины отказаться от embedded sql?
    #39772383
Фотография kolesov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alatalo,
Я пользую очень часто. Только нужно в обязательном порядке проверять SQLCODE - иначе такой запрос может вернуть мусор из кеша (ну или как там у ИС называется помойка результатов запросов)
И, конечно, только если нужна одна запись, т.е. чаще всего там TOP 1 в этом запросе - чем возиться в ембедеде с курсором, проще классово непримиримо подойти к!
...
Рейтинг: 0 / 0
Есть причины отказаться от embedded sql?
    #39772438
Блок А.Н.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kolesov,
> иначе такой запрос может вернуть мусор из кеша (ну или как там у ИС называется помойка результатов запросов)
Во время выполнения запроса хост-переменные чем-то заполняются. Иногда после выполнения в них что-то остается, иногда они пустые. Я полагаю, зависит от плана запросов и используемых индексов.
...
Рейтинг: 0 / 0
Есть причины отказаться от embedded sql?
    #39775122
kalin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kolesovalatalo,
Я пользую очень часто. Только нужно в обязательном порядке проверять SQLCODE - иначе такой запрос может вернуть мусор из кеша (ну или как там у ИС называется помойка результатов запросов)
И, конечно, только если нужна одна запись, т.е. чаще всего там TOP 1 в этом запросе - чем возиться в ембедеде с курсором, проще классово непримиримо подойти к!
В ORM https://ru.wikipedia.org/wiki/ORM давно отказались от прямого доступа к данным и SQL непосредственно.
Проще написать:
record=model.search([field='данные',field2>0],order=field)
А потом проверить
if record: данные получены
обработать их
А как там реализовать быстрый доступ к данным, пускай думают разработчики СУБД.
...
Рейтинг: 0 / 0
Есть причины отказаться от embedded sql?
    #39775130
Фотография DAiMor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kalinkolesovalatalo,
Я пользую очень часто. Только нужно в обязательном порядке проверять SQLCODE - иначе такой запрос может вернуть мусор из кеша (ну или как там у ИС называется помойка результатов запросов)
И, конечно, только если нужна одна запись, т.е. чаще всего там TOP 1 в этом запросе - чем возиться в ембедеде с курсором, проще классово непримиримо подойти к!
В ORM https://ru.wikipedia.org/wiki/ORM давно отказались от прямого доступа к данным и SQL непосредственно.
Проще написать:
record=model.search([field='данные',field2>0],order=field)
А потом проверить
if record: данные получены
обработать их
А как там реализовать быстрый доступ к данным, пускай думают разработчики СУБД.Уважаемый kalin, я вас настоятельно прошу, прекратить назвязыватся на бан. Я могу это обеспечить.

Вы бы хоть вникли в терминологию ORM. Это общий термин для фреймворков доступа к реляционным базам данных, и реализаций много разных в том числе разных и под разные СУБД. В продуктах InterSystems тоже можно сказать что есть ORM, правда и немного иначе представлена, если для классических реляционных СУБД ORM идет верхним слоем над реляционными таблицами, то в InterSystems он параллельно над глобалами и SQL уже на его основе.

Кстати зашел я тут по ссылке из вашего профиля, и что я вам могу сказать, в мире уже давно перестатали делать настолько убогие и устаревшие дизайны. Вы же наверно не просто так ссылку там используете, так как ваших работ публичных я больше не вижу, могу оценить только это.
...
Рейтинг: 0 / 0
Есть причины отказаться от embedded sql?
    #39775161
MX-9
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kalin,

по ссылке из Вашего профиля
на систему продажи автобусных билетов по Беларуси
не работает
отзыв

хотел предложить вводить станцию также и латиницей

не у всех туристов есть кириллица на клавиатуре

==================
...
Рейтинг: 0 / 0
Есть причины отказаться от embedded sql?
    #39775641
kalin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MX-9kalin,

по ссылке из Вашего профиля
на систему продажи автобусных билетов по Беларуси
не работает
отзыв

хотел предложить вводить станцию также и латиницей

не у всех туристов есть кириллица на клавиатуре

==================
new.ticketbus.by - вводите хоть на китайском :)
...
Рейтинг: 0 / 0
Есть причины отказаться от embedded sql?
    #39775668
Alexey Maslov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kalinnew.ticketbus.by - вводите хоть на китайском :)Не знаю, как на китайском, но на англійской мове города не ищутся.
...
Рейтинг: 0 / 0
Есть причины отказаться от embedded sql?
    #39775680
Alexey Maslov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kalin,

виноват - исправляюсь: если переключить язык интерфейса на английский, то можно. Почему-то подумалось, что язык ввода должен распознаваться автоматически, но видно многого захотел.
...
Рейтинг: 0 / 0
Есть причины отказаться от embedded sql?
    #39775710
kalin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexey Maslovkalin,

виноват - исправляюсь: если переключить язык интерфейса на английский, то можно. Почему-то подумалось, что язык ввода должен распознаваться автоматически, но видно многого захотел.
Да сделать можно поиск с любого языка, там пару строчек кода. Просто такой задачи не ставилось
...
Рейтинг: 0 / 0
Есть причины отказаться от embedded sql?
    #39775716
kalin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Скоро в Минском национальном аэропорту
...
Рейтинг: 0 / 0
Есть причины отказаться от embedded sql?
    #39775939
MX-9
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexey Maslovkalin,

виноват - исправляюсь: если переключить язык интерфейса на английский, то можно. Почему-то подумалось, что язык ввода должен распознаваться автоматически, но видно многого захотел.


ввод не на английском
а просто латиницей на русском

распознавать язык не надо

Moskva --->> Москва
...
Рейтинг: 0 / 0
Есть причины отказаться от embedded sql?
    #39775941
kalin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MX-9


ввод не на английском
а просто латиницей на русском

распознавать язык не надо

Moskva --->> Москва
Для этого надо вводить поле транслитерации Пока не планировалось. Другой работы завал. Кстати нам на фирму нужны М-щики. Много денег пока не дают.
...
Рейтинг: 0 / 0
Есть причины отказаться от embedded sql?
    #39776417
MX-9
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kalin Кстати нам на фирму нужны М-щики. Много денег пока не дают.


Денег не надо.

Работа давай !
...
Рейтинг: 0 / 0
Есть причины отказаться от embedded sql?
    #39776422
MX-9
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kalin Кстати нам на фирму нужны М-щики. Много денег пока не дают.


Денег не надо.

Работа давай !
...
Рейтинг: 0 / 0
Есть причины отказаться от embedded sql?
    #39776441
kalin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MX-9kalin Кстати нам на фирму нужны М-щики. Много денег пока не дают.


Денег не надо.

Работа давай !
Пишите в личку
...
Рейтинг: 0 / 0
Есть причины отказаться от embedded sql?
    #39776485
Фотография DAiMor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kalinnew.ticketbus.byпосмотрите на то как сделано в RegioJet , я этим перевозчиком одно время пользовался. Не идеально, но намного удобнее чем у вас. Русского интерфейса там конечно нет, потому что это Чехия, но английский есть. У них еще и приложение на телефоне есть.
...
Рейтинг: 0 / 0
Есть причины отказаться от embedded sql?
    #39776584
Valeriu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DAiMor,
Здесь видимо без bootstrap-ом не обошлось.
Я недавно начал его применять, это очень даже
ничего получаются приложения !
...
Рейтинг: 0 / 0
Есть причины отказаться от embedded sql?
    #39804437
kalin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DAiMorkalinnew.ticketbus.byпосмотрите на то как сделано в RegioJet , я этим перевозчиком одно время пользовался. Не идеально, но намного удобнее чем у вас. Русского интерфейса там конечно нет, потому что это Чехия, но английский есть. У них еще и приложение на телефоне есть.
Наши новые хозяева https://infobus.eu/. Могут помочь с работой :)
...
Рейтинг: 0 / 0
Есть причины отказаться от embedded sql?
    #39804702
Фотография kolesov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kalin Наши новые хозяева https://infobus.eu/. Могут помочь с работой :)
Актуально для многих в цеху... Некоторые вон включили тупого и подались в 1С ;)
(это была не злая, а скорбная шутка, полная доброго сарказма)
...
Рейтинг: 0 / 0
31 сообщений из 31, показаны все 2 страниц
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / Есть причины отказаться от embedded sql?
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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