Такс. Сейчас я попытаюсь чуть упорядочить:
1. Я так понял, что по сути у вас ЯП, который должно быть быстро писать. В результате под капотом «любая популярная СУБД» и код из LsFusion в конечном итоге превращается все равно в SQL. Правильно?
2. Если первое верно, то для каждой СУБД отдельно SQL адаптируется? Например используются штуки Oracle, которых нет в других СУБД?
3. По большей части вы стараетесь вынести обработку данных в свою систему, и обрабатывать их внутри вашей системы, а не СУБД. Правильно?
Если я все это понял правильно, то вопрос оптимизации запросов никуда не девается. Ведь после того, как ваша система что-то там автоматически сгенерирует, оно все равно пойдет в условный Oracle, который без хинтов ваш запрос не скушает.
4. А какие у вас инструменты для оптимизации этих самых запросов на уровне физического обращения?
Теперь продолжим разбирать пример, т.к. я все еще ничего не понял.
Грубо говоря в insert into col2 select from table t join col1 on t.id=col2.id.
Я что-то не понял. В моем вопросе есть коллекция(в оперативной памяти), есть таблица. У вас тут какая то путаница, вставляется в ту же сущность, из которой идет запрос(col2). Предположу, что это опечатка, и должно быть on t.id=col1.id. Я и в оракле могу написать так же join с коллекцией.
Но это путает меня еще больше. На данный момент БД нет никакой таблицы с названием col1, откуда она возьмется?
Давайте я попробую переформулировать задачу более общим образом:
В оперативной памяти есть массив ID по которым я хочу выбрать что-то из СУБД и поместить снова в оперативную память для дальнейшей обработки.
Комментарием выше я написал псевдокод, которым бы сделал это в Oracle.
Напишите пожалуйста код, который сделает это в вашем продукте, и объясните как оно будет работать на более низком уровне, а то пока выглядит как магия. Для упрощения моего понимания предположим, что вы все еще используете как СУБД Oracle, если у вас нет какого то своего супер решения.
Явно не имеет смысла. Но допустим у вас есть функция уже doSomething(sku). И вам ее нужно вызвать для 10 sku в какой нибудь временной таблице. Вам нужно либо переписывать логику doSomething еще раз с таблицей, или делать FOR table DO doSomething(table.sku) и получать 10 запросов.
lsFusion же умеет это все сам разбирать и компилировать в один запрос.
На вскидку кажется, что задача автоматического разбора и составление одного запроса совершенно не тривиальная вещь. У меня сходу не получилось придумать ничего годного. На примере того же Oracle, вот у нас есть псевдокод: collection1 : коллекция на 2 тысячи элементов не по порядку:
collection2 : коллекция для результатов
for k in collection
loop
select x into d from table t where t.id = k
collection2[k]:= d
end loop
В какой запрос это в результате превратиться?(Повторюсь, элементы в коллекции не по порядку и between написать не получится)
К тому же, в том же оракле зачастую запросы все равно приходится тюнить хинтами, потому что сам оракл не справляется с построениями хороших планов.
То есть не получится ли в результате, что как только запросы которые надо преобразовывать чуть сложнее, то лучше бы вообще их не преобразовывали. И все придется докручивать напильником
То есть если напишите (я не помню какой там конкретно синтаксис)
FOR i = 1 TO 10 DO
SELECT dff FROM a WHERE a.x=i
Вы получите 10 запросов
Написать так конечно можно, но зачем? Можно обойтись одним запросом без цикла и вычитать в коллекцию(BULK COLLECT).
не говоря о том, что в Oracle логики представлений в принципе нет, не говоря уже про классы / наследование / полиморфизм, явную типизацию.
В PLSQL есть классы, есть наследование, есть полиморфизм(в том числе динамический), а что под явной типизацией подразумевается я вообще не понял.
В общем, я запутался еще больше. Меня не покидает ощущение, что мы говорим про разные вещи или я недопонимаю чего-то базового. Я на досуге по подробнее посмотрю возможности вашего продукта, может разберусь.
Было бы очень интересно почитать статью сравнения с основными конкурентами(в том числе с Oracle, так как мы на нем часто строим ERP) на каких нибудь простых синтетических примерах
Может я не до конца погрузился, но я увидел проект LsFusion как попытку соединить в одном месте декларативную обработку данных(аля SQL) и подходы от «обычных» ЯП(процедуры, функции, ООП).
Теперь я смотрю на Oracle и вижу на основе одного оракла:
0. БД в комплекте
1. Возможность работать с данными через SQL
2. Если SQL мало, то есть расширение SQL — PLSQL с функциями, процедурами и ООП(классы, объекты, наследование и вот это вот все)
3. Oraсle APEX для разворачивания Web интерфейса.
То есть Oracle решает все те же задачи, что и LsFusion только лучше(ну как мне пока кажется).
Наверное я все еще что-то не понял. Было бы интересно посомтреть о сравнении чегонибудь с Oracle: В LsFusion так, в Oracle так и примеры задач, которые в Oracle не решаются.
PS
Сравнительную табличку на половину не понял. Возможно ее следует снабдить пояснениями к тому, что подразумевается под каждым из пунктов.
Например пункт «Один язык работы с данными», написано, что у Оракла этого нет. Но вот же SQL — язык для работы с данными.
Я вот прочитал всю эту боль. Одного не понимаю. Почему бы в вакансии и не написать «будем рады почитать более подробное резюме»? И если кандидат заинтересован в вакансии, он вам резюме допишет
Из статьи складывается ощущение, что они чувствуют нечто, недоступное нам и дали этому название.
Но давайте посмотрим на это с другой стороны.
Из статьи не понятно, по какой характеристике запахи получили название.
Возможно «лтпит» это просто второе название для например «кислый». Только про еду принято говорить «кислый», а про запах «лтпит»?
Пробовал полифазный сон. В духе 4 часа ночью, полтора днем.
Голова работает нормально, но спустя некоторое время физически стал уставать намного сильнее и чувствовалась тяжесть в груди. По ощущениям сердце работало тяжелее.
Вывод, лично для меня сокращение сна похоже не подходит.
Я бытность студентом я работал университете лаборантом. Моя ставка была 2 400, однако с учетом премий, надбавок и так далее я получал на руки 7800.
Если не секрет, сколько именно вы получаете на руки в среднем за год?
Поддержу недовольных. Реклама слишком большая и навязчивая. Вызывает раздражение.
И в результате, если времени не много, я зачастую не иду даже читать статью, если вижу, что это блог Dronk.ru
Речь именно о добытых ресурсах, или о самих астероидах?
Если две компании одновременно на одном астероиде будут вести добычу, как они будут делить сам астероид?
Как то не однозначно. В статье речь идет об аккаунте R&C.
Написание поста обозначает перевод аккаунта на другой уровень. То есть аккаунт больше не будет R&C
У R&C-пользователя вместе с возможностью комментирования появляются карма и рейтинг, однако сам он голосовать за публикации, комментарии и карму не может, пока его карма не достигнет необходимого значения;
За карму R&C-пользователя можно голосовать только в минус (к слову, таким же свойством обладает любой аккаунт, получивший приглашение не за публикацию, а просто так);
Не понял, каким образом тогда можно поднять карму и рейтинг до значения, после которого R&C аккаунт сможет голосовать сам за публикации, комментарии и карму
Как я понял, за черными дырами наблюдали с помощью телескопов и зафиксировали их слияние.
То есть в целом способ позволяет детектировать события, приводящие к изменению массы с созданием гравитационных волн?
Еще не понял вот
Чёрные дыры имели массу примерно по 30 масс Солнца каждая и вращались друг вокруг друга с частотой 150 Гц. Масса после слияния оказалась на три солнечные массы меньше, чем сумма масс до слияния: оставшаяся энергия была испущена в форме гравитационных волн.
А куда делась материя? То есть по сути атомы превратились в гравитационную волну, это как?
Сейчас у нас всего два детектора, но даже с ними мы сможем определить массы объектов, а по времени задержки — оценить их примерное положение на небе
Поясните, что подразумевает эта фраза? Я прочитал как «можно определить массу любого объекта в космосе и его примерное место положение. Но это звучит просто как фантастика, и верится с трудом.
Кто в теме, поясните, пожалуйста.
1. Я так понял, что по сути у вас ЯП, который должно быть быстро писать. В результате под капотом «любая популярная СУБД» и код из LsFusion в конечном итоге превращается все равно в SQL. Правильно?
2. Если первое верно, то для каждой СУБД отдельно SQL адаптируется? Например используются штуки Oracle, которых нет в других СУБД?
3. По большей части вы стараетесь вынести обработку данных в свою систему, и обрабатывать их внутри вашей системы, а не СУБД. Правильно?
Если я все это понял правильно, то вопрос оптимизации запросов никуда не девается. Ведь после того, как ваша система что-то там автоматически сгенерирует, оно все равно пойдет в условный Oracle, который без хинтов ваш запрос не скушает.
4. А какие у вас инструменты для оптимизации этих самых запросов на уровне физического обращения?
Теперь продолжим разбирать пример, т.к. я все еще ничего не понял.
Я что-то не понял. В моем вопросе есть коллекция(в оперативной памяти), есть таблица. У вас тут какая то путаница, вставляется в ту же сущность, из которой идет запрос(col2). Предположу, что это опечатка, и должно быть on t.id=col1.id. Я и в оракле могу написать так же join с коллекцией.
Но это путает меня еще больше. На данный момент БД нет никакой таблицы с названием col1, откуда она возьмется?
Давайте я попробую переформулировать задачу более общим образом:
В оперативной памяти есть массив ID по которым я хочу выбрать что-то из СУБД и поместить снова в оперативную память для дальнейшей обработки.
Комментарием выше я написал псевдокод, которым бы сделал это в Oracle.
Напишите пожалуйста код, который сделает это в вашем продукте, и объясните как оно будет работать на более низком уровне, а то пока выглядит как магия. Для упрощения моего понимания предположим, что вы все еще используете как СУБД Oracle, если у вас нет какого то своего супер решения.
PS
Не понимаю, за что вас минусуют.
На вскидку кажется, что задача автоматического разбора и составление одного запроса совершенно не тривиальная вещь. У меня сходу не получилось придумать ничего годного. На примере того же Oracle, вот у нас есть псевдокод:
collection1 : коллекция на 2 тысячи элементов не по порядку:
collection2 : коллекция для результатов
for k in collection
loop
select x into d from table t where t.id = k
collection2[k]:= d
end loop
В какой запрос это в результате превратиться?(Повторюсь, элементы в коллекции не по порядку и between написать не получится)
К тому же, в том же оракле зачастую запросы все равно приходится тюнить хинтами, потому что сам оракл не справляется с построениями хороших планов.
То есть не получится ли в результате, что как только запросы которые надо преобразовывать чуть сложнее, то лучше бы вообще их не преобразовывали. И все придется докручивать напильником
Написать так конечно можно, но зачем? Можно обойтись одним запросом без цикла и вычитать в коллекцию(BULK COLLECT).
В PLSQL есть классы, есть наследование, есть полиморфизм(в том числе динамический), а что под явной типизацией подразумевается я вообще не понял.
В общем, я запутался еще больше. Меня не покидает ощущение, что мы говорим про разные вещи или я недопонимаю чего-то базового. Я на досуге по подробнее посмотрю возможности вашего продукта, может разберусь.
Было бы очень интересно почитать статью сравнения с основными конкурентами(в том числе с Oracle, так как мы на нем часто строим ERP) на каких нибудь простых синтетических примерах
Может я не до конца погрузился, но я увидел проект LsFusion как попытку соединить в одном месте декларативную обработку данных(аля SQL) и подходы от «обычных» ЯП(процедуры, функции, ООП).
Теперь я смотрю на Oracle и вижу на основе одного оракла:
0. БД в комплекте
1. Возможность работать с данными через SQL
2. Если SQL мало, то есть расширение SQL — PLSQL с функциями, процедурами и ООП(классы, объекты, наследование и вот это вот все)
3. Oraсle APEX для разворачивания Web интерфейса.
То есть Oracle решает все те же задачи, что и LsFusion только лучше(ну как мне пока кажется).
Наверное я все еще что-то не понял. Было бы интересно посомтреть о сравнении чегонибудь с Oracle: В LsFusion так, в Oracle так и примеры задач, которые в Oracle не решаются.
PS
Сравнительную табличку на половину не понял. Возможно ее следует снабдить пояснениями к тому, что подразумевается под каждым из пунктов.
Например пункт «Один язык работы с данными», написано, что у Оракла этого нет. Но вот же SQL — язык для работы с данными.
Но давайте посмотрим на это с другой стороны.
Из статьи не понятно, по какой характеристике запахи получили название.
Возможно «лтпит» это просто второе название для например «кислый». Только про еду принято говорить «кислый», а про запах «лтпит»?
Голова работает нормально, но спустя некоторое время физически стал уставать намного сильнее и чувствовалась тяжесть в груди. По ощущениям сердце работало тяжелее.
Вывод, лично для меня сокращение сна похоже не подходит.
Поправки Яровой, ГМО, что еще?
Если не секрет, сколько именно вы получаете на руки в среднем за год?
И в результате, если времени не много, я зачастую не иду даже читать статью, если вижу, что это блог Dronk.ru
Если две компании одновременно на одном астероиде будут вести добычу, как они будут делить сам астероид?
Написание поста обозначает перевод аккаунта на другой уровень. То есть аккаунт больше не будет R&C
За карму R&C-пользователя можно голосовать только в минус (к слову, таким же свойством обладает любой аккаунт, получивший приглашение не за публикацию, а просто так);
Не понял, каким образом тогда можно поднять карму и рейтинг до значения, после которого R&C аккаунт сможет голосовать сам за публикации, комментарии и карму
То есть в целом способ позволяет детектировать события, приводящие к изменению массы с созданием гравитационных волн?
Еще не понял вот
А куда делась материя? То есть по сути атомы превратились в гравитационную волну, это как?
Поясните, что подразумевает эта фраза? Я прочитал как «можно определить массу любого объекта в космосе и его примерное место положение. Но это звучит просто как фантастика, и верится с трудом.
Кто в теме, поясните, пожалуйста.