|
Есть причины отказаться от embedded sql?
|
|||
---|---|---|---|
#18+
DAiMor не так давно упомянул: DAiMorБлок А.Н., Еще одна причина отказаться от embedded sql 20256654 интересно а какие еще причины есть? Пользоваться им порой проще и запрос с ошибками не скомпиляется. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.02.2019, 11:36 |
|
Есть причины отказаться от embedded sql?
|
|||
---|---|---|---|
#18+
alatalo, пришлось гуглить, чтобы найти когда и почему я это писал. Добавил вам в сообщение ссылку на оригинал. Вообще я сам пользуюсь embedded sql. Но считаю, что им пользоваться нужно довольно аккуратно, как и всеми другими вариантами при которых компилируется SQL не в runtime. Например теже Query в классах. Основная причина почему, это необходимость перекомпиляции любого такого SQL при изменении в структуре данных таблицы по которой идет запрос. И еще минус в отношении embedded sql, это громоздскость запросов, когда нужно получить более одной строки. Требуется объявлять курсор, и делать проход по курсору. Сейчас я бы посовететовал использовать Query в первую очередь, и embedded sql только в пределах того класса с которым он связан. При наличии Query его можно вызывать из любого места в коде и в разных местах. А если нужно сделать runtime sql, делать его с помощью %SQL.Statement ... |
|||
:
Нравится:
Не нравится:
|
|||
05.02.2019, 12:08 |
|
Есть причины отказаться от embedded sql?
|
|||
---|---|---|---|
#18+
Еще ESQL не учитывает разрешения на таблицы для пользователя. >И еще минус в отношении embedded sql, это громоздскость запросов, когда нужно получить более одной строки. Требуется объявлять курсор, и делать проход по курсору. Я не понял, а в чем принципиальное отличие у %SQL.Statement? Там тоже prepare,execute,fetch. Но ESQL хотя бы компактен в отношении запросов с получением одной строки. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.02.2019, 14:13 |
|
Есть причины отказаться от embedded sql?
|
|||
---|---|---|---|
#18+
Блок А.Н.Я не понял, а в чем принципиальное отличие у %SQL.Statement?В том что у него меньше зависимость от изменения структуры данных в запрашиваемой таблице. Блок А.Н.Но ESQL хотя бы компактен в отношении запросов с получением одной строки. Код: sql 1. 2. 3. 4. 5. 6.
Не так уж чтобы прям совсем громоздко ... |
|||
:
Нравится:
Не нравится:
|
|||
05.02.2019, 14:40 |
|
Есть причины отказаться от embedded sql?
|
|||
---|---|---|---|
#18+
DAiMorБлок А.Н.Я не понял, а в чем принципиальное отличие у %SQL.Statement?В том что у него меньше зависимость от изменения структуры данных в запрашиваемой таблице.Я имею в виду в плане громоздкости прохода по курсору. Про приколы со структурой я в курсе. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.02.2019, 18:27 |
|
Есть причины отказаться от embedded sql?
|
|||
---|---|---|---|
#18+
А вот сейчас глупость спрошу: имеет ли размер значение, в смысле - имеет ли какое-либо реальное значение количество кода в нейспейсе? Мы свой продукт пилим с прошлого века, до недавних пор вообще без классов, по крайней мере, без персистентных классов, и количество кода в продукте все время растет. Теперь, видя какое дикое колво кода порождают персистентные классы, и ESQL в частности, и учитывая, что на продакшене этот код копируется в большое колво неймспейсов, возникает вопрос а есть ли какие-то пределы, которые стоит учитывать. Место на диске понятно не проблема, но легко представить, что, например, нужно памяти больше на сервере. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.02.2019, 19:05 |
|
Есть причины отказаться от embedded sql?
|
|||
---|---|---|---|
#18+
alatalo, Раньше было ограничение на количество порожденного байткода в одной программе. Именно при использовании ESQL можно было добиться, чтобы класс не компилировался. Сейчас вроде бы не должно быть такого, по крайней мере, нужно постараться руками написать такой код, чтобы он не вместился в длинную строку (я так понимаю, из-за этого была проблема). Если у вас будут тысячи классов в одном неймспейсе, то скорее всего будут проблемы с Atelier, потому что вроде как он при инициализации делает локальный репозиторий, и все классы копирует к себе. Не слышал, чтобы такие проблемы были у студии. В некоторых версиях Каше сталкивался с проблемой зацикливания расчета очередности компиляции. Кстати, в том числе из-за ESQL. Если у вас тысячи (или хотя бы сотни) классов, которые ссылаются друг на друга, например, через ESQL, наследование, ссылки, то компилятор при компиляции строит дерево. И было такое, что с этим были проблемы. Но вроде это тоже давно было. А так в целом нет - не слышал о каких-то принципиальных ограничениях на количество кода. Скорее, проблема будет в людях, которые могут понять, что там написано. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.02.2019, 20:30 |
|
Есть причины отказаться от embedded sql?
|
|||
---|---|---|---|
#18+
Я бы не сказал, что это имеет существенное значение. Да, памяти нужно больше, но не сильно много. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.02.2019, 20:31 |
|
Есть причины отказаться от embedded sql?
|
|||
---|---|---|---|
#18+
... |
|||
:
Нравится:
Не нравится:
|
|||
05.02.2019, 22:31 |
|
Есть причины отказаться от embedded sql?
|
|||
---|---|---|---|
#18+
DAiMorБлок А.Н.Я не понял, а в чем принципиальное отличие у %SQL.Statement?В том что у него меньше зависимость от изменения структуры данных в запрашиваемой таблице. Это же хорошо и плохо одновременно :) При компиляции embedded - почти "анализ типов" даром - мечта сторонников строго типизированных языков. Вот этот совет DAiMorиспользовать embedded только в пределах того класса с которым он связан - хороший, правильный! Но есть всякие join, union ... ;) Еще расходы при выполнении чуть меньше, скорость чуть выше (не уверен, тесты наше всё) А так - низкоуровневый инструмент, использовать с осторожностью, как и всё низкоуровневое. Точно не помню, ebmedded отображается в статистике запросов? Можно заморозить план запроса? ... |
|||
:
Нравится:
Не нравится:
|
|||
08.02.2019, 16:12 |
|
Есть причины отказаться от embedded sql?
|
|||
---|---|---|---|
#18+
doublefintТочно не помню, ebmedded отображается в статистике запросов? Можно заморозить план запроса?насчет этого не уверен ... |
|||
:
Нравится:
Не нравится:
|
|||
08.02.2019, 16:35 |
|
Есть причины отказаться от embedded sql?
|
|||
---|---|---|---|
#18+
DAiMordoublefintТочно не помню, ebmedded отображается в статистике запросов? Можно заморозить план запроса?насчет этого не уверен Это для alatalo, вопросы для беспокойного сна :) ... |
|||
:
Нравится:
Не нравится:
|
|||
08.02.2019, 20:16 |
|
Есть причины отказаться от embedded sql?
|
|||
---|---|---|---|
#18+
alatalo, Я пользую очень часто. Только нужно в обязательном порядке проверять SQLCODE - иначе такой запрос может вернуть мусор из кеша (ну или как там у ИС называется помойка результатов запросов) И, конечно, только если нужна одна запись, т.е. чаще всего там TOP 1 в этом запросе - чем возиться в ембедеде с курсором, проще классово непримиримо подойти к! ... |
|||
:
Нравится:
Не нравится:
|
|||
11.02.2019, 16:51 |
|
Есть причины отказаться от embedded sql?
|
|||
---|---|---|---|
#18+
kolesov, > иначе такой запрос может вернуть мусор из кеша (ну или как там у ИС называется помойка результатов запросов) Во время выполнения запроса хост-переменные чем-то заполняются. Иногда после выполнения в них что-то остается, иногда они пустые. Я полагаю, зависит от плана запросов и используемых индексов. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.02.2019, 17:45 |
|
Есть причины отказаться от embedded sql?
|
|||
---|---|---|---|
#18+
kolesovalatalo, Я пользую очень часто. Только нужно в обязательном порядке проверять SQLCODE - иначе такой запрос может вернуть мусор из кеша (ну или как там у ИС называется помойка результатов запросов) И, конечно, только если нужна одна запись, т.е. чаще всего там TOP 1 в этом запросе - чем возиться в ембедеде с курсором, проще классово непримиримо подойти к! В ORM https://ru.wikipedia.org/wiki/ORM давно отказались от прямого доступа к данным и SQL непосредственно. Проще написать: record=model.search([field='данные',field2>0],order=field) А потом проверить if record: данные получены обработать их А как там реализовать быстрый доступ к данным, пускай думают разработчики СУБД. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.02.2019, 13:46 |
|
Есть причины отказаться от embedded sql?
|
|||
---|---|---|---|
#18+
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 уже на его основе. Кстати зашел я тут по ссылке из вашего профиля, и что я вам могу сказать, в мире уже давно перестатали делать настолько убогие и устаревшие дизайны. Вы же наверно не просто так ссылку там используете, так как ваших работ публичных я больше не вижу, могу оценить только это. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.02.2019, 14:04 |
|
Есть причины отказаться от embedded sql?
|
|||
---|---|---|---|
#18+
kalin, по ссылке из Вашего профиля на систему продажи автобусных билетов по Беларуси не работает отзыв хотел предложить вводить станцию также и латиницей не у всех туристов есть кириллица на клавиатуре ================== ... |
|||
:
Нравится:
Не нравится:
|
|||
17.02.2019, 17:26 |
|
Есть причины отказаться от embedded sql?
|
|||
---|---|---|---|
#18+
MX-9kalin, по ссылке из Вашего профиля на систему продажи автобусных билетов по Беларуси не работает отзыв хотел предложить вводить станцию также и латиницей не у всех туристов есть кириллица на клавиатуре ================== new.ticketbus.by - вводите хоть на китайском :) ... |
|||
:
Нравится:
Не нравится:
|
|||
18.02.2019, 15:33 |
|
Есть причины отказаться от embedded sql?
|
|||
---|---|---|---|
#18+
kalinnew.ticketbus.by - вводите хоть на китайском :)Не знаю, как на китайском, но на англійской мове города не ищутся. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.02.2019, 15:58 |
|
Есть причины отказаться от embedded sql?
|
|||
---|---|---|---|
#18+
kalin, виноват - исправляюсь: если переключить язык интерфейса на английский, то можно. Почему-то подумалось, что язык ввода должен распознаваться автоматически, но видно многого захотел. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.02.2019, 16:04 |
|
Есть причины отказаться от embedded sql?
|
|||
---|---|---|---|
#18+
Alexey Maslovkalin, виноват - исправляюсь: если переключить язык интерфейса на английский, то можно. Почему-то подумалось, что язык ввода должен распознаваться автоматически, но видно многого захотел. Да сделать можно поиск с любого языка, там пару строчек кода. Просто такой задачи не ставилось ... |
|||
:
Нравится:
Не нравится:
|
|||
18.02.2019, 16:31 |
|
Есть причины отказаться от embedded sql?
|
|||
---|---|---|---|
#18+
Скоро в Минском национальном аэропорту ... |
|||
:
Нравится:
Не нравится:
|
|||
18.02.2019, 16:36 |
|
Есть причины отказаться от embedded sql?
|
|||
---|---|---|---|
#18+
Alexey Maslovkalin, виноват - исправляюсь: если переключить язык интерфейса на английский, то можно. Почему-то подумалось, что язык ввода должен распознаваться автоматически, но видно многого захотел. ввод не на английском а просто латиницей на русском распознавать язык не надо Moskva --->> Москва ... |
|||
:
Нравится:
Не нравится:
|
|||
18.02.2019, 22:29 |
|
Есть причины отказаться от embedded sql?
|
|||
---|---|---|---|
#18+
MX-9 ввод не на английском а просто латиницей на русском распознавать язык не надо Moskva --->> Москва Для этого надо вводить поле транслитерации Пока не планировалось. Другой работы завал. Кстати нам на фирму нужны М-щики. Много денег пока не дают. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.02.2019, 22:54 |
|
|
start [/forum/topic.php?fid=39&msg=39771216&tid=1556194]: |
0ms |
get settings: |
9ms |
get forum list: |
16ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
32ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
55ms |
get tp. blocked users: |
1ms |
others: | 265ms |
total: | 399ms |
0 / 0 |