Модераторы: korob2001, ginnie
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> вопрос по DBM (DB_File) 
V
    Опции темы
DooZ
Дата 5.7.2007, 19:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 206
Регистрация: 25.11.2005

Репутация: нет
Всего: 1



есть скрипт
читает данные из неких файлов
и записывает в один единственный DBM файл
НО по мере заполнения этого самого DBM файла, данные записывают все медленнее и медленее
можно как-то решить эту проблему?

вот код:
Код

#!/usr/bin/perl -w

use strict;
use DB_File;

my @FILES=<*>;
my %CHECKED;

tie(%CHECKED, 'DB_File', "CHECKED");

    foreach my $file (@FILES)
    {
    open(CHECKED, $file);

        while (my $data=<CHECKED>)
        {
                  $CHECKED{$data}++;
        }

    close(CHECKED);
    }

untie(%CHECKED);


устал бороться
данных порядка 6-10 миллионов
PM MAIL   Вверх
Nab
Дата 5.7.2007, 20:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 582
Регистрация: 25.3.2006
Где: Kiev

Репутация: 26
Всего: 37



Цитата(DooZ @  5.7.2007,  19:18 Найти цитируемый пост)
данных порядка 6-10 миллионов

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


--------------------
 Чтобы правильно задать вопрос нужно знать больше половины ответа...
Perl Community 
FREESCO in Ukraine 
PM MAIL   Вверх
DooZ
Дата 5.7.2007, 20:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 206
Регистрация: 25.11.2005

Репутация: нет
Всего: 1



уже разобрался
другим способом заюзал

базу данных не хочу... хочу без подключения вообще каких либо баз, только текстовые файлы
PM MAIL   Вверх
nitr
Дата 5.7.2007, 21:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 2543
Регистрация: 10.2.2006
Где: Россия :)

Репутация: 37
Всего: 84



Цитата(DooZ @  5.7.2007,  20:48 Найти цитируемый пост)
базу данных не хочу... хочу без подключения вообще каких либо баз, только текстовые файлы

если это только оправдывается чем-то, к примеру - никому ненужна производительность ;)

Добавлено через 55 секунд
DooZ, да и ещё - может предоставите свой вариант ответа? Вдруг кто-то над этим мучается, а вы ему поможете...


--------------------
PM   Вверх
DooZ
Дата 5.7.2007, 23:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 206
Регистрация: 25.11.2005

Репутация: нет
Всего: 1



вариант ответа не получится дать, он просто не из этой оперы, там не понятно будет
расскажу просто на словах

сначала у меня затея была, собрать в один большой DBM хеш все данные что меня интерисуют (их много) и потом открывая второй файл проверять if (exists $hash{$data}) то что-то делать, другими словами если новые данные присутствуют в глобальном хеше, идем дальше...

я поступил иначе
я загружаю в память (в хеш) НОВЫЕ данные которые надо проверять
а старые данные (те что сначала загружались в хеш), я проверяю читая построчно сверяя с новым хешем

вот такой каламбур, на деле все немного сложнее (больше циклов), но скорость проверки в десятки раз быстрее

вообщем то что мне надо =)

но и на это я забил и сделал для сеья совсем по другому, но это уже совсем друга история =))


З.Ы. сорри за каламбур smile
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Perl"
korob2001
sharq
  • В этом разделе обсуждаются общие вопросы по языку Perl
  • Если ваш вопрос относится к системному программированию, задавайте его здесь
  • Если ваш вопрос относится к CGI программированию, задавайте его здесь
  • Интерпретатор Perl можно скачать здесь ActiveState, O'REILLY, The source for Perl
  • Справочное руководство "Установка perl-модулей", можно скачать здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, korob2001, sharq.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Perl: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0471 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.