Horsun Vlad пишет:
"Serge Buzadzhy" ...

    Почему не ограничить кол-во кешированных блобов ?
Память экономить? За счет возможного повторного перечитывания из базы.
    Да. Если кто-то намеренно их перечитывает - он в состоянии
скешировать сам только то, что ему нужно
Хрен его знает. Смотрел я, например, в код DOA. Они тож о такой экономии
памяти не заботятся.

    И это им совершенно не плюс

А им много че не плюс. :) Но это их дела. Нехай сами со своими бедами разбираются.

    Другое - ссылка на TIBlobStream вполне может оставаться, но буфер
стрима можно спокойно удалять, есс-но помечая стрим как 'непрочитанный'
блоб. Имхо, логика TIBlobStream'а сильно не усложнится
Да. Это легко. Можно еще буфер по жаланию предварительно вообще на винт
сбросить. Чтоб уж точно за ним потом не обращаться к серваку.

    Про диск я только что хотел вдогонку написать, но не успел :)
Единственное - нужно с временными файлами аккуратно работать, но
это дело техники.

    Кстати, кое-чей OLEDB-провайдер вроде делает нечто подобное ? :)

Да, собственно, нечто подобное и я делаю. Для решения правда совсем другой задачи. Не экономии памяти, а минимизации траффика. Т.е. блобы могут сохраняться на локальном диске между сеансами. Привязываюсь по блоб-ид... Который слетает после бэкап-рестор. :) Так что после бэкап-ресторе весь дисковый кэш приходится вычищать нафиг.

В общем прицепить туда же и очистку памяти нетрудно.





Ответить