metaclass: (Default)
[personal profile] metaclass
Обсуждение одновременного выполнения и чтения двух SQL-запросов в одном коннекте и транзакции (или, упаси Б-г, двух транзакций в одном коннекте) свелось к тому, что НИКТО это не использует. Ну, б-г с ним, что нигде кроме Firebird этого нет, но я всегда считал что операция "ленивым образом перебрать 100500 проводок, параллельно так же ленивым образом вычитывая их детализацию" это самоочевидное действие, такое же как два вложенных цикла, с обработкой списка сущностей в внешнем и списка вложенных сущностей во внутреннем.
Нет, оказывается это не так. Мне предложили все виды извращенной любви с БД - загрузку датасета в память и затем выполнение второго запроса, выполнение джоина и свертку его результатов в граф объектов, и прочая и прочая.
А я тут в святом неведении Олега почитываю на тему fold-like обработки БД и пытаюсь обобщить это на случай доступа к БД из ADO.NET и обработки нескольких вложенных таблиц.

Неудивительно, что NoSQL внезапно оказался настолько популярен. Потому что в умах разработчиков и в большинстве RDBMS аналогов действию "получить сущность и ее подчиненные сущности" просто НЕТ.

Date: 2010-07-02 03:34 pm (UTC)
From: [identity profile] metaclass.livejournal.com
Вот невозможно!
Я и хочу итератор по дереву, авотхуй.

Date: 2010-07-02 03:35 pm (UTC)
From: [identity profile] zamotivator.livejournal.com
Гм.
Вообще есть синтаксис WITH, RECURSIVE - он для того и нужен, чтобы выборки такие делать.

Date: 2010-07-02 03:46 pm (UTC)
From: [identity profile] metaclass.livejournal.com
Результат все равно реляционный, хоть ты раком там развернись :)

Date: 2010-07-02 05:22 pm (UTC)
From: [identity profile] zamotivator.livejournal.com
А зачем тебе нереляцинный?
Приведи use-case

Date: 2010-07-02 05:40 pm (UTC)
From: [identity profile] metaclass.livejournal.com
Загрузить из БД авизовки с детализацией, произвести над ними хитрожопую обработку и сохранить обратно. При этом не всасывая весь датасет в память.
Вообще, конечно, можно обойтись и непересекающимися запросами в большинстве случаев, но как-то это ограничение, после Firebird и дельфи, где таких проблемы не было, выглядит странно.

Date: 2010-07-02 06:19 pm (UTC)
From: [identity profile] zamotivator.livejournal.com
Что такое авизовка?

Date: 2010-07-02 06:25 pm (UTC)
From: [identity profile] metaclass.livejournal.com
В данном случае - документ с несколькими вложенными записями-строками. А вообще это уведомление о том, что один филиал предприятия должен деньги другому.

Date: 2010-07-03 12:02 am (UTC)
From: [identity profile] zamotivator.livejournal.com
Так это же в таблички преобразуется в итоге

Profile

metaclass: (Default)
metaclass

April 2017

S M T W T F S
      1
2345678
9101112 131415
16171819202122
23242526272829
30      

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Sep. 22nd, 2025 01:35 pm
Powered by Dreamwidth Studios