SQL vs версионность-иммутабельность

топ 100 блогов metaclass14.06.2012 А вот что бывает когда реляционные БД ставят в несвойственную им позу и нет моральных ограничений (потому что кодогенерация):
...
FROM REPLTRANS
  join ChangeLog 
   left join TransactsLog tlog on tlog.TRANSACTS_CHL_ID=CHL_ID
   left join TransactsLink tlnk 
     join Transacts tr on tr.TR_ID_BASEID=tlnk.TR_ID_BASEID and
                          tr.TR_ID_LOCALID=tlnk.TR_ID_LOCALID
     left join Transacts tr_old on tr_old.TR_ID_BASEID=tr.TR_ID_BASEID_PV and
                                   tr_old.TR_ID_LOCALID=tr.TR_ID_LOCALID_PV
    on tlnk.TRANSACTS_CHL_ID=CHL_ID
   left join FillingsLog filllog 
    join Customers cst1 on cst1.Cst_ID=filllog.FILL_Customer
   on filllog.FILLINGS_CHL_ID=CHL_ID 
   left join FillingsLink filllnk 
    join Fillings fill 
      join Customers cst2 on cst2.Cst_ID=fill.FILL_Customer
     on fill.FILL_ID_BASEID=filllnk.FILL_ID_BASEID and
        fill.FILL_ID_LOCALID=filllnk.FILL_ID_LOCALID
    on filllnk.FILLINGS_CHL_ID=CHL_ID  
  on (CHL_TRANS=REPLTR_BEGID+0)
  join ReplTables on REPLTBL_ID=CHL_TABLE_ID
...


кусок запроса "получить информацию об последних изменениях в БД, поддерживающей хранение всей истории изменений".

Ситуация вообще в следующем:
1) Фактически я храню в БД персистентный граф, но морально отказаться от RDBMS/SQL и переписывать все с нуля я не готов. За вопросами - к  SQL vs версионность-иммутабельность [info]plumqqz, он вам расскажет, что думает за неосиливших СУБД.
2) N+1 запрос вообще и для Firebird в частности (сетевой протокол, лаги) - печаль. А то я бы всю сложность выкинул на клиента и там на F# собрал бы все что нужно. Впрочем, сервер и клиент (сервис-считалка) стоят рядом, ничего страшного, по идее, быть не должно.
3) В Firebird пока нет возможности сунуть код на произвольном языке в БД (как это есть у Postgres например)


PS: выяснил, чего сервер раком становится от таких запросов. Там дальше сортировка, не сводимая к чтению по индексам. Поэтому он начинает дичайше писать в временные файлы результат запроса и далее его читать. И файл размером 2 гига, внезапно, со скоростью 100 мег в секунду это таки 20 секунд на запись и потом хз сколько еще на фетч.

Оставить комментарий

Предыдущие записи блогера :
Архив записей в блогах:
Я попросил товарищ orenstranger , который на SAPе нахапал на турфирму в Оренбурге ;), подобрать наиболее дешевые варианты отдыха в августе для семьи с двумя детьми. Для сравнения попросил Грецию, Турцию, Сочи и (естественно) Крым. (фотку из Магнитогорска подкинул divfy ...
В эту среду принцесса сначала побывала в Лиссабоне на Веб-саммите 2018 в качестве приглашённого докладчика. Беатрис посещала саммит как вице-президент по партнерству и стратегии американской компании Afiniti. А вечером она ...
Друг нашего сообщества тов. Нолдо Эктчелион тиснул текст со ссылкой на журнал "Корея": В 1992-1994 казалось, что КНДР вот-вот склеит ласты, объединится с Югом под его эгидой, либо народные массы свергнут любимого руководителя. Всё пошло абсолютно не так, показав, что упрощенные ...
В этом посте, мы предлагаем всем, задать свои вопросы по уходу за руками и ногтями, а также вопросы по базам, топам, сушкам и другим вспомогательным средствам (например, ремувеам). В теме комментария укажите самое главное. Если речь про сравнение ...
Форбс вчера сообщил , что число российских миллиардеров в 2018 году уменьшилось с 106 человек до 98 человек. Негласный клуб миллиардеров покинул ряд фигур, таких, как, например, Шамалов Кирилл: Данный молодой человек считается зятем Путина. Или бывшим зятем и миллиардером. И теперь ...