Конференция "Базы" » Out of memory в результате фетча большого числа записей. [D7, FB 2.1]
 
  • Игорь Шевченко © (11.08.09 13:26) [20]
    Вот, кстати, ветка с моими поисками решения

    http://delphimaster.net/view.php?folder=18&file=1-1160361442
  • Anatoly Podgoretsky © (11.08.09 13:41) [21]
    Кстати по сути одноправленен только dbexpress, остальные многовекторны.

    По проблеме, можно еще повозиться с сервными курсорами.
  • Дмитрий Белькевич (11.08.09 14:13) [22]
    Пока не ясно, где именно датасет отжирает память, что бы знать, куда дальше двигаться. Где-то же он это делает.

    IBAlloc вызывается только при старте запроса.

    В модуле IBCustomDataSet GetMem/SetLength вызывается несколько раз при старте запроса и больше не дёргается.

    В TDataSet FBuffers тоже вроде бы никто не трогает.

    Никто случаем не знает, где данные хранятся, которые отжирают память?

    Замечено еще одно. UniDirectional есть непосредственно в TIBCustomDataSet и в предке, TDataSet - FIsUniDirectional. Так вот. В самом TIBCustomDataSet UniDirectional действительно устанавливается в True, в предке же FIsUniDirectional остаётся False.
  • Дмитрий Белькевич (11.08.09 14:19) [23]

    > Как насчет компонентов UIB ? http://www.progdigy.com/?page_id=5


    Под 2009-й вроде бы не работают. По крайней мере, их почему-то в поставке jedi нету.


    > Кстати по сути одноправленен только dbexpress, остальные
    > многовекторны.


    Может быть в самом деле dbexpress'овские компоненты попробовать...
  • MsGuns © (11.08.09 14:34) [24]
    Все-таки так и не понял какого лешего это "переливание" выполнять на клиенте. Или при обработке могут возникать ситуации, требующие вмешательство человека ?
  • Дмитрий Белькевич (11.08.09 14:38) [25]

    > Все-таки так и не понял какого лешего это "переливание"
    > выполнять на клиенте. Или при обработке могут возникать
    > ситуации, требующие вмешательство человека ?


    Объясняю. В таблице лежат линки на файлы (и еще некоторая информация). Файлы расположены локально (или на присоединённых шарах). Нужно пробежаться по всем записям, и у несуществующих файлов, но имеющихся в базе, проставить пометки (в отдельном поле), что их нет.
  • Игорь Шевченко © (11.08.09 14:39) [26]

    > Может быть в самом деле dbexpress'овские компоненты попробовать.
    > ..


    Мне помогли, об чем в ветке из [20] и написано, пост № 45
  • Ega23 © (12.08.09 07:18) [27]

    > Файлы расположены локально (или на присоединённых шарах).


    Локально на сервере или на клиенте?
  • Виталий Панасенко (12.08.09 09:41) [28]
    А сами IBX обновлялись?
  • Виталий Панасенко (12.08.09 09:49) [29]
    И еще: а если использовать TIBSQL, вместо TIBDataSet?
  • Дмитрий Белькевич (02.10.09 18:26) [30]
    Возвращаясь...

    >Локально на сервере или на клиенте?

    Локально на сервере, или на расшаренных папках в сети.

    >А сами IBX обновлялись?

    Да.

    >TIBSQL

    И как же мне в нём все записи перебрать? Делать миллионы запросов?

    >dbexpress'овские

    Неудобны тем, что еще одну дллку таскать нужно. Стараюсь количество файлов в проекте держать минимально возможножным.

    Пока остановился на UIB. Всё отлично работает, только под 2009 пока UIB'а нет в поставке JEDI...
  • turbouser © (02.10.09 20:30) [31]

    > Дмитрий Белькевич   (02.10.09 18:26) [30]


    > ока остановился на UIB. Всё отлично работает, только под
    > 2009 пока UIB'а нет в поставке JEDI...

    Есть отдельно:
    http://rapidshare.com/files/172766840/UIB20081212.rar
  • turbouser © (02.10.09 20:31) [32]

    > turbouser ©   (02.10.09 20:30) [31]

    + или тут :)
    http://rapidshare.com/files/171425897/UIB.rar

  • > Дмитрий Белькевич   (02.10.09 18:26) [30]


    > >TIBSQL
    >
    > И как же мне в нём все записи перебрать? Делать миллионы
    > запросов?

    ты гонишь! ОДИН!!!! точно такой же как у TIBdataSet!
  • Дмитрий Белькевич (05.10.09 11:50) [34]
    >И еще: а если использовать TIBSQL, вместо TIBDataSet?

    Посмотрел. И что бы ви таки думали? Таки да :) Eof есть, Next есть. Попробовал - всё работает... Спасибо, опять всё переписывать :)

    Я-то почему-то думал, что у IBSQL eof/next нету...
  • Виталий Панасенко (05.10.09 12:07) [35]
    Таки пожалуйста...:-)
 
Конференция "Базы" » Out of memory в результате фетча большого числа записей. [D7, FB 2.1]
Есть новые Нет новых   [134435   +33][b:0][p:0.001]