metaclass: (Default)
metaclass ([personal profile] metaclass) wrote2010-07-02 02:43 pm

Я в шоке.

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

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

[identity profile] plumqqz.livejournal.com 2010-07-04 07:46 am (UTC)(link)
Это что, в ADO.NET такое невозможно??! Быть не может.

[identity profile] metaclass.livejournal.com 2010-07-04 07:59 am (UTC)(link)
Возможно через пляски с бубном.
MSSQL - нужно добавить параметр MultipleActiveResultSets=true в строку подключения, проблема, похоже в протоколе сервера. Не рекомендуется в некоторых случаях, по умолчанию выключено.
PostgreSQL - нужно добавить параметр PreloadReader=true в строку подключения, что эффективно убивает весь смысл построчного чтения результатов запросов, т.к. оно при первом обращении высасывает все в память, судя по всему.
Firebird - работает по умолчанию, обычный режим что при доступе через клиентскую либу, что при использовании ADO.NET.

Оракла нету под руками попробовать.

[identity profile] plumqqz.livejournal.com 2010-07-04 08:07 am (UTC)(link)
Что же, остается только сочувствовать.