On-line: гостей 1. Всего: 1 [подробнее..]
АвторСообщение



Пост N: 3
Зарегистрирован: 04.12.07
ссылка на сообщение  Отправлено: 09.01.08 13:05. Заголовок: Работает заметно медленне с данными


Привет всем.

Хочу спросить у знающих людей: есть прога на Clipper-e, которая благополучно работает уже 10 лет, примерно 10 пользователей постоянно работающих с БД, база данных с индексами 500-700 Мб. Перевел её на xHarbour и вижу, что сама прога работает немного быстрее, но выборки и вывод данных заметно замедлились. Это нормально?

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


постоянный участник




Пост N: 390
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 09.01.08 13:28. Заголовок: Да, это нормально. О..


Да, это нормально.
Особенно медленно работает SET FILTER TO .....
так как в хХарборе нет оптимизации фильтра, а в Клипере 5.3 был.

Я переделывал логику программы, очень помогает условная индексация.


Спасибо: 0 
Профиль



Пост N: 4
Зарегистрирован: 04.12.07
ссылка на сообщение  Отправлено: 10.01.08 12:59. Заголовок: Я SET FILTER TO не и..


Я SET FILTER TO не использую вообще, всё выбираю по индексу и условию WHILE, но всё равно xHarbour заметно тормознее. А не экспериментировал ли ты, Андрей, с другими типами индексов и ADS, а может и ADO доступ? Где же Харбор даёт преимущество? И, я читал, что локальный АДС ещё медленнее работает, чем родные RDD. А насколько медленнее, на глаз заметно?
Читал в темах, что ты активный приверженец текстового режима. Так ли это и не изменил ли ты по какой-либо причине своего мнения? Дело в том, что я тоже не считаю обязательным наличие "рюшечек" и прочего украшательства, к тому же можно сохранить кроссплатформенность.

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




Пост N: 391
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 10.01.08 14:42. Заголовок: КСС пишет: А не экс..


КСС пишет:

 цитата:
А не экспериментировал ли ты, с другими типами индексов и ADS, а может и ADO доступ?



Нет не эксперементировал, времени не хватает. Использую пока только RDD CDX !
Хотя сейчас встала остро проблема работы с 10-15 станциями (когда больше 5 раб.станций начинаются "тормоза"). Нужно делать клиент-сервер для таких задач. Варианты с ADS не пройдут по одной простой причине - его нужно покупать, а заказчики не хотят тратить деньги (ну тупые они). Даже если купят, то нужно мне 2-3 лицензии на один город и кто туда поедет его устанавливать. Если брать ломанный, то сейчас стоит вопрос о пиратстве !!! Я понимаю что кому нужны мои программы, но под "раздачу" попадать не хочется.

КСС пишет:

 цитата:
что ты активный приверженец текстового режима. Так ли это и не изменил ли ты по какой-либо причине своего мнения?


Я не приверженец текстового режима, просто у меня есть старые пользователи программ на Клипере, так они просто ВЫЛИ когда я переделывал на хХарбор, то цвета им не нравится, то шрифт, то медленней работает чем раньше и т.д. (ну как обычно, все пользователи одинаковы....)
И эти пользователи просто не хотят когда я предложил сделать программы в стиле 1С ...????
Так что я оставил пока эти потуги.

КСС пишет:

 цитата:
Где же Харбор даёт преимущество?


В сопровождении задач дает, пропала проблема с Win98, не вылетает как Клипер 5.3 (мышкой провел и вылетел из задачи - это для Clipper 5.3b под WinXP SP1), защиту легко ставить на задачу и т.д.



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


Пост N: 85
Зарегистрирован: 13.10.05
ссылка на сообщение  Отправлено: 16.01.08 07:55. Заголовок: А какая операционка ..


А какая операционка на рабочих станциях? Я тестировал Клиппер и Харбор. Харбор ничуть не медленее(базы до 200 000), но при работе в сети наWin98 притормаживает заметно.

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




Пост N: 402
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 16.01.08 08:38. Заголовок: Vlad04 пишет: А как..


Vlad04 пишет:

 цитата:
А какая операционка на рабочих станциях?



Везде где можно избавляюсь от Win98, на 2000 или ХР.
Просто 98 хуже работает в сети, но если нет возможностей поменять его из-за компа, то нехай работает

Спасибо: 0 
Профиль





Пост N: 156
Зарегистрирован: 08.04.06
ссылка на сообщение  Отправлено: 17.01.08 19:59. Заголовок: Re: Andrey


Andrey пишет:

 цитата:
Везде где можно избавляюсь от Win98, на 2000 или ХР.


А никто не пробовал на 98-м оставить Clipper'ную программу, на XP поставить xHarbour'ную, и заставить их работать с одной базой? Ведь если сработает, телодвижений гораздо меньше получится! Я, например, завтра собираюсь этот эксперимент поставить...

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




Пост N: 403
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 18.01.08 00:05. Заголовок: Лукашевский пишет: ..


Лукашевский пишет:

 цитата:
и заставить их работать с одной базой?



У меня так это работало в течении полугода ! Без проблем. Даже на 98 запускали задачу на Клипере и хХарборе
вместе и работало !!!

Спасибо: 0 
Профиль





Пост N: 162
Зарегистрирован: 08.04.06
ссылка на сообщение  Отправлено: 25.01.08 15:23. Заголовок: Re: Andrey


Andrey пишет:

 цитата:
пропала проблема с Win98


По-моему, она как раз появилась! (см. тему "Взаимодействие WinXP с Win98")

Спасибо: 0 
Профиль
moderator


Пост N: 23
Зарегистрирован: 06.07.06
ссылка на сообщение  Отправлено: 26.01.08 15:37. Заголовок: Andrey пишет: Хотя ..


Andrey пишет:

 цитата:
Хотя сейчас встала остро проблема работы с 10-15 станциями (когда больше 5 раб.станций начинаются "тормоза"). Нужно делать клиент-сервер для таких задач. Варианты с ADS не пройдут по одной простой причине - его нужно покупать, а заказчики не хотят тратить деньги (ну тупые они).


Я как раз начал недавно писать такой сервер и RDD к нему. Некоторые мои довольно большие задачи ( например, "Кадры и зарплата", "Себестоимость" ) вроде бы работают на нем.
Скоро выложу как отдельный проект на Sourceforge.

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


Пост N: 379
Зарегистрирован: 09.10.06
ссылка на сообщение  Отправлено: 26.01.08 18:33. Заголовок: alkresin пишет: Ско..


alkresin пишет:

 цитата:
Скоро выложу как отдельный проект на Sourceforge



И когда мы увидим 'Leto db server'?
Идея c названием мне понравилась: лето - summer , с подтекстом так сказать.




Спасибо: 0 
Профиль
moderator


Пост N: 24
Зарегистрирован: 06.07.06
ссылка на сообщение  Отправлено: 26.01.08 23:04. Заголовок: Петр пишет: И когда..


Петр пишет:

 цитата:
И когда мы увидим 'Leto db server'?


Может, на следующей неделе, а может и не успею... Надо исправить пару ошибок, сделать, чтоб он как демон работал и под Линуксом и под виндами ( сейчас - просто консольная программа ),переименовать все функции, продумать структуру каталогов на Sourceforge и пр.


 цитата:
Идея c названием мне понравилась: лето - summer [Image] , с подтекстом так сказать.


Хорошо, что хоть кому-то понравилась :). Мне самому не очень, но на лучшее фантазии не хватило.

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




Пост N: 426
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 27.01.08 14:58. Заголовок: alkresin пишет: Я ..


alkresin пишет:

 цитата:

Я как раз начал недавно писать такой сервер и RDD к нему



А какой он будет из себя ? Хотелось бы как в Делфи !
На клиентском месте один ЕХЕ-ник запускается, по выбранному порту поднимает на сервере СЕРВЕР-ную часть программы и обменивается данными через TCP/IP.
И чтоб настроек для пользователя было минимум, т.к. задачи отсылаешь в другие города, а там сопровождать бывает некому.

Спасибо: 0 
Профиль
Администратор




Пост N: 730
Зарегистрирован: 23.05.05
ссылка на сообщение  Отправлено: 28.01.08 09:20. Заголовок: Александр, очень инт..


Александр, очень интересно !

Спасибо: 0 
Профиль
moderator


Пост N: 25
Зарегистрирован: 06.07.06
ссылка на сообщение  Отправлено: 28.01.08 13:29. Заголовок: Andrey пишет: А как..


Andrey пишет:

 цитата:
А какой он будет из себя ? Хотелось бы как в Делфи !
На клиентском месте один ЕХЕ-ник запускается, по выбранному порту поднимает на сервере СЕРВЕР-ную часть программы и обменивается данными через TCP/IP.


Не знаю, как в Дельфи - наверное, там это по-разному бывает, в зависимости от db сервера. А здесь это именно так. Указывается в SET PATH TO или непосредственно в пути к открываемому файлу //xxx.xxx.xxx.xxx:port/data/ - и вперед.

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




Пост N: 429
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 28.01.08 23:26. Заголовок: С нетерпением жду ан..


С нетерпением жду анонса !!!
Может какой-нибудь тестовый пример будет ?
Если надо помочь сделать его, то согласен. Очень хочется проверить его на скорость !
А может еще и просто для Файл-Сервера тест сделать ?
Какие будут идеи по поводу теста ?


Спасибо: 0 
Профиль
moderator


Пост N: 26
Зарегистрирован: 06.07.06
ссылка на сообщение  Отправлено: 29.01.08 11:49. Заголовок: Если сделаешь хороши..


Если сделаешь хороший тест, проверяющий разные режимы работы - отлично.
Я сравнивал c ADS с помощью вот такого:

 
Function Main
Local cTable, arr
Local i, n1, nSec

#ifdef RDD_ADS
#include "/harbour/contrib/hbrddads/ads.ch"
REQUEST ADS
RDDSETDEFAULT( "ADS" )
AdsSetFileType(2)
adsSetServerType( 6 )
adsrightscheck( .F. )
SET AXS LOCKING ON
cTable := "//199.10.11.5:6262/data/test1.dbf"
#else
REQUEST RMT // Это временное название RDD
RDDSETDEFAULT( "RMT" )
cTable := "//199.10.11.5:2812/test1.dbf"
#endif

SET(_SET_FILECASE,1)
SET(_SET_DIRCASE,1)
set exclusive on

arr := { { "FirstName", "C", 20, 0 }, ;
{ "LastName", "C", 20, 0 }, ;
{ "Age", "N", 3, 0 }, ;
{ "Date", "D", 8, 0 }, ;
{ "Rate", "N", 6, 2 }, ;
{ "Student", "L", 1, 0 } }

dbCreate( cTable, arr )
use (cTable) new
? "Test 1 "
nSec := Seconds()
for i := 1 to 1000
append blank
replace FirstName with "A"+Padl(i,10,'0'), ;
LastName with "B"+Padl(i,12,'0'), ;
Age with Int( Seconds()*100+i ) % 1000, ;
Date with Date() + field->Age, ;
Rate with 11.5, ;
Student with ( (field->Age % 2) == 1 )
next
?? "Finished in "+Ltrim(Str(Seconds()-nSec))+" seconds"

index on Age tag Age
use

use (cTable) new
go top
? "Test 2 "
nSec := Seconds()
do while !Eof()
skip
enddo
?? "Finished in "+Ltrim(Str(Seconds()-nSec))+" seconds"
use

use (cTable) new
set order to 1
go top
? "Test 3 "
nSec := Seconds()
do while !Eof()
skip
enddo
?? "Finished in "+Ltrim(Str(Seconds()-nSec))+" seconds"
use

?

Return Nil


Результаты:
 
------------------------------------- ADS Новый сервер
Тест1 Добавление 1000 записей 0.75 0.64
Тест2 Skip 1000 записей без индекса 0.06 0.08
Тест3 Skip 1000 записей с индексом 0.06 0.08


Сервер - Pentium 4, 3.00GHz

Спасибо: 0 
Профиль
Администратор




Пост N: 733
Зарегистрирован: 23.05.05
ссылка на сообщение  Отправлено: 29.01.08 13:21. Заголовок: Отлично Александр, а..


Отлично
Александр, а как построен rdd ?
Как наследник dbfcdx, или отдельным подулем, типа bmdbfcdx ?

PS Не думали о транзакциях и Select-запросах ?

Спасибо: 0 
Профиль
moderator


Пост N: 27
Зарегистрирован: 06.07.06
ссылка на сообщение  Отправлено: 29.01.08 15:02. Заголовок: Не знаю как bmdbfcdx..


Не знаю как bmdbfcdx, а мой наследует только от корневого слоя ( workarea.c ), как rddads.

Транзакции и sql запросы надо будет делать, но думать еще рано :).
Пока главное - реализация базовых методов ( я, например, не делал еще relations и scopes - просто плтому что не использую их в своих программах и их отсутствие не мешает тестированию ), проверка стабильности и производительности в реальной работе с многими пользователями.
Сейчас сервер работает по самой примитивной схеме - последовательная обработка поступающих запросов одним процессом. Чтобы минимизировать задержки ( пока, например, кто-то индексирует большую таблицу ), надо запустить еще несколько процессов и передавать им запросы, требующие времени ( индексация, skip по фильтрованной базе, ... ) на обработку.


Спасибо: 0 
Профиль
Администратор




Пост N: 734
Зарегистрирован: 23.05.05
ссылка на сообщение  Отправлено: 29.01.08 16:56. Заголовок: Если нужна помощь - ..


Если нужна помощь - скажите, готов поучавствовать
Может быть, каждый запрос в отдельном потоке лучше сделать ?


Спасибо: 0 
Профиль
moderator


Пост N: 28
Зарегистрирован: 06.07.06
ссылка на сообщение  Отправлено: 29.01.08 21:44. Заголовок: Если нужна помощь - ..



 цитата:
Если нужна помощь - скажите, готов поучавствовать


Ну на то ж оно и open source ... Всякая помощь приветствуется.

 цитата:
Может быть, каждый запрос в отдельном потоке лучше сделать ?


Может, но в Harbour нет пока потоков, а делать специально под xHarbour не хочется, надо чтоб работало в обеих ветках.
Надеюсь, и с процессами нормально получится. ADS, например, сначала использовал процессы - и, вроде, нормально было.
Будем экспериментировать.

Спасибо: 0 
Профиль
Ответов - 24 , стр: 1 2 All [только новые]
Тему читают:
- участник сейчас на форуме
- участник вне форума
Все даты в формате GMT  3 час. Хитов сегодня: 63
Права: смайлы да, картинки да, шрифты да, голосования нет
аватары да, автозамена ссылок вкл, премодерация откл, правка нет