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

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

20256654

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

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

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

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

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

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

>И еще минус в отношении embedded sql, это громоздскость запросов, когда нужно получить более одной строки. Требуется объявлять курсор, и делать проход по курсору.
Я не понял, а в чем принципиальное отличие у %SQL.Statement? Там тоже prepare,execute,fetch. Но ESQL хотя бы компактен в отношении запросов с получением одной строки.
...
Рейтинг: 0 / 0
05.02.2019, 14:40
    #39769676
DAiMor
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Есть причины отказаться от embedded sql?
Блок А.Н.Я не понял, а в чем принципиальное отличие у %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
05.02.2019, 18:27
    #39769803
Блок А.Н.
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Есть причины отказаться от embedded sql?
DAiMorБлок А.Н.Я не понял, а в чем принципиальное отличие у %SQL.Statement?В том что у него меньше зависимость от изменения структуры данных в запрашиваемой таблице.Я имею в виду в плане громоздкости прохода по курсору. Про приколы со структурой я в курсе.
...
Рейтинг: 0 / 0
05.02.2019, 19:05
    #39769827
alatalo
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Есть причины отказаться от embedded sql?
А вот сейчас глупость спрошу: имеет ли размер значение, в смысле - имеет ли какое-либо реальное значение количество кода в нейспейсе? Мы свой продукт пилим с прошлого века, до недавних пор вообще без классов, по крайней мере, без персистентных классов, и количество кода в продукте все время растет. Теперь, видя какое дикое колво кода порождают персистентные классы, и ESQL в частности, и учитывая, что на продакшене этот код копируется в большое колво неймспейсов, возникает вопрос а есть ли какие-то пределы, которые стоит учитывать. Место на диске понятно не проблема, но легко представить, что, например, нужно памяти больше на сервере.
...
Рейтинг: 0 / 0
05.02.2019, 20:30
    #39769851
Блок А.Н.
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Есть причины отказаться от embedded sql?
alatalo,

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

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

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

А так в целом нет - не слышал о каких-то принципиальных ограничениях на количество кода. Скорее, проблема будет в людях, которые могут понять, что там написано.
...
Рейтинг: 0 / 0
05.02.2019, 20:31
    #39769852
DAiMor
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Есть причины отказаться от embedded sql?
Я бы не сказал, что это имеет существенное значение. Да, памяти нужно больше, но не сильно много.
...
Рейтинг: 0 / 0
05.02.2019, 22:31
    #39769866
alatalo
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Есть причины отказаться от embedded sql?
Зер гут. Тысячи классов не предвидится, тем более, связанных, так что буду спать спокойно
...
Рейтинг: 0 / 0
08.02.2019, 16:12
    #39771216
doublefint
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Есть причины отказаться от embedded sql?
DAiMorБлок А.Н.Я не понял, а в чем принципиальное отличие у %SQL.Statement?В том что у него меньше зависимость от изменения структуры данных в запрашиваемой таблице. Это же хорошо и плохо одновременно :)
При компиляции embedded - почти "анализ типов" даром - мечта сторонников строго типизированных языков.
Вот этот совет DAiMorиспользовать embedded только в пределах того класса с которым он связан - хороший, правильный!
Но есть всякие join, union ... ;) Еще расходы при выполнении чуть меньше, скорость чуть выше (не уверен, тесты наше всё)
А так - низкоуровневый инструмент, использовать с осторожностью, как и всё низкоуровневое.
Точно не помню, ebmedded отображается в статистике запросов? Можно заморозить план запроса?
...
Рейтинг: 0 / 0
08.02.2019, 16:35
    #39771243
DAiMor
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Есть причины отказаться от embedded sql?
doublefintТочно не помню, ebmedded отображается в статистике запросов? Можно заморозить план запроса?насчет этого не уверен
...
Рейтинг: 0 / 0
08.02.2019, 20:16
    #39771378
doublefint
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Есть причины отказаться от embedded sql?
DAiMordoublefintТочно не помню, ebmedded отображается в статистике запросов? Можно заморозить план запроса?насчет этого не уверен Это для alatalo, вопросы для беспокойного сна :)
...
Рейтинг: 0 / 0
11.02.2019, 16:51
    #39772383
kolesov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Есть причины отказаться от embedded sql?
alatalo,
Я пользую очень часто. Только нужно в обязательном порядке проверять SQLCODE - иначе такой запрос может вернуть мусор из кеша (ну или как там у ИС называется помойка результатов запросов)
И, конечно, только если нужна одна запись, т.е. чаще всего там TOP 1 в этом запросе - чем возиться в ембедеде с курсором, проще классово непримиримо подойти к!
...
Рейтинг: 0 / 0
11.02.2019, 17:45
    #39772438
Блок А.Н.
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Есть причины отказаться от embedded sql?
kolesov,
> иначе такой запрос может вернуть мусор из кеша (ну или как там у ИС называется помойка результатов запросов)
Во время выполнения запроса хост-переменные чем-то заполняются. Иногда после выполнения в них что-то остается, иногда они пустые. Я полагаю, зависит от плана запросов и используемых индексов.
...
Рейтинг: 0 / 0
17.02.2019, 13:46
    #39775122
kalin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Есть причины отказаться от embedded sql?
kolesovalatalo,
Я пользую очень часто. Только нужно в обязательном порядке проверять SQLCODE - иначе такой запрос может вернуть мусор из кеша (ну или как там у ИС называется помойка результатов запросов)
И, конечно, только если нужна одна запись, т.е. чаще всего там TOP 1 в этом запросе - чем возиться в ембедеде с курсором, проще классово непримиримо подойти к!
В ORM https://ru.wikipedia.org/wiki/ORM давно отказались от прямого доступа к данным и SQL непосредственно.
Проще написать:
record=model.search([field='данные',field2>0],order=field)
А потом проверить
if record: данные получены
обработать их
А как там реализовать быстрый доступ к данным, пускай думают разработчики СУБД.
...
Рейтинг: 0 / 0
17.02.2019, 14:04
    #39775130
DAiMor
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Есть причины отказаться от embedded sql?
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
17.02.2019, 17:26
    #39775161
MX-9
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Есть причины отказаться от embedded sql?
kalin,

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

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

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

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

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

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

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

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

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

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

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


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

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

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


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

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

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


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

Работа давай !
...
Рейтинг: 0 / 0
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / Есть причины отказаться от embedded sql? / 25 сообщений из 31, страница 1 из 2
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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