On-line: гостей 4. Всего: 4 [подробнее..]
АвторСообщение
постоянный участник




Пост N: 2517
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 26.12.12 14:01. Заголовок: Как сделать многопотоковую проверку Базы ?


Есть ряд задач (переодически возникающих) на которые тратиться много времени.
Может быть я и не прав.

Вот например:
база 20 тыс.записей, каждую запись нужно пройти и проверить заполнение полей, если не заполнено - ошибку в тхт-файл.

Все (наверно) делают последовательную обработку, т.е. проверяем базу с 1 по N-запись..
А можно же через потоки сделать ?

Подскажите как примерно это можно сделать для хХарбора ?
Заранее спасибо..




Спасибо: 0 
ПрофильЦитата Ответить
Ответов - 78 , стр: 1 2 3 4 All [только новые]


администратор




Пост N: 2627
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 15.02.13 18:53. Заголовок: Andrey пишет: Резул..


Andrey пишет:

 цитата:
Результат классный !!!



The third example of measuring the speed of processing database for [x]Harbour
Copyright 2013 Verchenko Andrey <verchenkoag@gmail.com> Russia, Dmitrov
---------------------------------------------------------------------------
CPU: Intel(R) Pentium(R) 4 CPU 3.00GHz [~3011 MHz]
Free RAM: 578 452
OS: Windows XP Professional 5.01.2600 Service Pack 2
Development: xHarbour build 1.0.0 Intl. (SimpLex) - Borland C++ 5.5.1
Multi Thread: No
---------------------------------------------------------------------------
Create/Open Test.dbf - 00 hour 00 minute 46 seconds ( Recno: 2525/127500 )
Write test base - 00 hour 01 minute 09 seconds

The total test time ---> 00 hour 01 minute 56 seconds


Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 2671
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 15.02.13 19:32. Заголовок: Dima пишет: CPU: In..


Dima пишет:

 цитата:
CPU: Intel(R) Pentium(R) 4 CPU 3.00GHz [~3011 MHz]
Free RAM: 578 452
OS: Windows XP Professional 5.01.2600 Service Pack 2


Значит у моих юзеров тоже будет летать ...
Спасибо Дима !

Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 2628
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 15.02.13 22:22. Заголовок: Andrey пишет: Жалко..


Andrey пишет:

 цитата:
Жалко только опять примера нет на МНОГОПОТОКОВУЮ обработку базы....



ты сам ответил ;)

Andrey пишет:

 цитата:
Это то что нужно... Главное понимать что и когда делать..



Просто надо сделать оптимальный алгоритм. Она , многопоточность тут скорее всего и не нужна.

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 2692
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 20.02.13 12:38. Заголовок: Dima пишет: Просто ..


Dima пишет:

 цитата:
Просто надо сделать оптимальный алгоритм.



Исправил (убрал DBCOMMIT) у себя в расчетах, вынес в конец обработки.
Перерасчет всех абонентов при 70000 абонентов вместо 1ч 20мин. стал занимать 17 минут....
А у других базы еще меньше...
Спасибо БОЛЬШОЕ ВСЕМ за помощь !

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 2726
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 04.03.13 23:19. Заголовок: PSP пишет: Не спеши..


PSP пишет:

 цитата:
Не спеши... ))) Я там подправил сообщение. Проверь функцию.

update: Проверил в Харборе WIN_OSVersionInfo(). Нормально работает. WIN_OSVersionInfo()[ 2 ] на 7-ке выдало "1".



Беру winos.prg из хХарбора 1.2.3 SVN, вставляю в свой проект на 1.2.1,
запрашиваю OS_ISWIN8() и получаю .F. (на своей Win8)
Как бы им туда сообщить....

Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 2672
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 05.03.13 00:02. Заголовок: Andrey пишет: Беру ..


Andrey пишет:

 цитата:
Беру winos.prg из хХарбора 1.2.3 SVN, вставляю в свой проект на 1.2.1,
запрашиваю OS_ISWIN8() и получаю .F. (на своей Win8)


Я бы пересобрал проект под 1.2.3 в этом случае если очень надо.
Голый номер брать исходники из новых версий и вставлять в старые версии как правило.
Хотя конечно что брать и куда вставлять ...смотреть надо

Andrey пишет:

 цитата:
Беру winos.prg из хХарбора 1.2.3 SVN, вставляю в свой проект на 1.2.1


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

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник


Пост N: 842
Зарегистрирован: 27.01.07
ссылка на сообщение  Отправлено: 05.03.13 08:47. Заголовок: Не знаю, как в хэХар..


Не знаю, как в хэХарборе, а в просто Харборе эти функции описаны в \contrib\hbwin\win_os.c
К примеру,
HB_FUNC( WIN_OSIS8 ) 
{
OSVERSIONINFO osvi;

getwinver( &osvi );
hb_retl( osvi.dwMajorVersion == 6 && osvi.dwMinorVersion == 2 );
}


Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 2727
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 05.03.13 10:50. Заголовок: Dima да бесполезно п..


Dima да бесполезно пересобирать... смотри что там в исходнике написано:

PSP пишет:

 цитата:
Не знаю, как в хэХарборе


Там в исходнике winos.prg написано:

#pragma BEGINDUMP
#if defined(HB_OS_WIN) && (!defined(__RSXNT__)) && (!defined(__CYGWIN__))
...............
HB_FUNC( OS_ISWIN8 )
{
OSVERSIONINFO osvi;
getwinver( &osvi );
hb_retl( osvi.dwMajorVersion == 6 && osvi.dwMinorVersion == 2 );
}
#else
.............
HB_FUNC( OS_ISWIN8 )
{
hb_retl( 0 ) ;
}
#endif




Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 3228
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 04.02.14 18:58. Заголовок: Вот пример по делу, ..


Вот пример по делу, мультипотоковая индексация БД для Харбора (под хХарбор не делал).
Тема примера: возврат значений (переменные cResultError и nResultIndexFile) после выполнения потока.
Большое СПАСИБО alkresin !
Без него бы не сделал ! Может кому и пригодиться.
Скрытый текст


Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 139
Зарегистрирован: 19.05.05
ссылка на сообщение  Отправлено: 06.02.14 09:21. Заголовок: Спасибо за пример Ан..


Спасибо за пример Андрей! Но в программе вкралась ошибка. По Невнимательности собрал программу без -mt и программа вылетела с ошибкой нет переменной CRLF. У тебя в программе определена
#define CLRF, и при правильной работе именно она используется, а при неправильной сборке задействована CRLF для формирования сообщения.

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 3229
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 06.02.14 16:33. Заголовок: nick_mi пишет: У те..


nick_mi пишет:

 цитата:
У тебя в программе определена
#define CLRF, и при правильной работе именно она используется,


Ну уж не досмотрел....

Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 140
Зарегистрирован: 19.05.05
ссылка на сообщение  Отправлено: 06.02.14 19:34. Заголовок: Бывает! ..


Бывает!

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 4324
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 30.06.15 14:28. Заголовок: Возвращаюсь опять к ..


Возвращаюсь опять к потокам.
Где считается база быстрей (или одинаково) в потоке или в основной программе ?
Т.е. создаю отдельный поток для расчёта по базе, а основную программу оставляю в ожидание окончания потока.
По времени как будет ? Одинаково или нет ?

И еще вопрос: можно ли в отдельном потоке создавать окна (МиниГуи), а после выполнения потока просто оставить не убитым.
Что будет ?

Спасибо: 0 
ПрофильЦитата Ответить





Пост N: 5
Зарегистрирован: 18.06.15
ссылка на сообщение  Отправлено: 01.07.15 08:28. Заголовок: Andrey пишет: Исхо..


Andrey пишет:

 цитата:

Исходник и сама программа здесь - http://files.mail.ru/5A8E598290604D31955459BEFBDF3FD3



Ошибка 404

... не могу скачать




Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 4335
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 01.07.15 09:16. Заголовок: Alex_Cher пишет: ....


Alex_Cher пишет:

 цитата:
.. не могу скачать


А какую программу скачиваете ? Я может убил её давно...

Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 5006
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 01.07.15 13:35. Заголовок: Andrey пишет: Я мож..


Andrey пишет:

 цитата:
Я может убил её давно...


Так объем облака 100 Гб ....экономишь ?

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 4338
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 01.07.15 13:53. Заголовок: Dima пишет: Так объ..


Dima пишет:

 цитата:
Так объем облака 100 Гб ....экономишь ?


Старые примеры иногда переделываю...

Спасибо: 0 
ПрофильЦитата Ответить





Пост N: 6
Зарегистрирован: 18.06.15
ссылка на сообщение  Отправлено: 02.07.15 07:54. Заголовок: Dima пишет: Так объ..


Dima пишет:

 цитата:
Так объем облака 100 Гб ....экономишь ?



Нет мужики это я лохонулся ... тема интересная а сроки выкладки сообщения не посмотрел ...

Спасибо: 0 
ПрофильЦитата Ответить
Ответов - 78 , стр: 1 2 3 4 All [только новые]
Ответ:
1 2 3 4 5 6 7 8 9
большой шрифт малый шрифт надстрочный подстрочный заголовок большой заголовок видео с youtube.com картинка из интернета картинка с компьютера ссылка файл с компьютера русская клавиатура транслитератор  цитата  кавычки моноширинный шрифт моноширинный шрифт горизонтальная линия отступ точка LI бегущая строка оффтопик свернутый текст

показывать это сообщение только модераторам
не делать ссылки активными
Имя, пароль:      зарегистрироваться    
Тему читают:
- участник сейчас на форуме
- участник вне форума
Все даты в формате GMT  3 час. Хитов сегодня: 43
Права: смайлы да, картинки да, шрифты да, голосования нет
аватары да, автозамена ссылок вкл, премодерация откл, правка нет