Автор | Сообщение |
|
| |
Пост N: 3
Зарегистрирован: 04.12.07
|
|
Отправлено: 09.01.08 13:05. Заголовок: Работает заметно медленне с данными
Привет всем. Хочу спросить у знающих людей: есть прога на Clipper-e, которая благополучно работает уже 10 лет, примерно 10 пользователей постоянно работающих с БД, база данных с индексами 500-700 Мб. Перевел её на xHarbour и вижу, что сама прога работает немного быстрее, но выборки и вывод данных заметно замедлились. Это нормально?
|
|
|
Ответов - 24
, стр:
1
2
All
[только новые]
|
|
|
| постоянный участник
|
Пост N: 390
Зарегистрирован: 12.09.06
|
|
Отправлено: 09.01.08 13:28. Заголовок: Да, это нормально. О..
Да, это нормально. Особенно медленно работает SET FILTER TO ..... так как в хХарборе нет оптимизации фильтра, а в Клипере 5.3 был. Я переделывал логику программы, очень помогает условная индексация.
|
|
|
|
| |
Пост N: 4
Зарегистрирован: 04.12.07
|
|
Отправлено: 10.01.08 12:59. Заголовок: Я SET FILTER TO не и..
Я SET FILTER TO не использую вообще, всё выбираю по индексу и условию WHILE, но всё равно xHarbour заметно тормознее. А не экспериментировал ли ты, Андрей, с другими типами индексов и ADS, а может и ADO доступ? Где же Харбор даёт преимущество? И, я читал, что локальный АДС ещё медленнее работает, чем родные RDD. А насколько медленнее, на глаз заметно? Читал в темах, что ты активный приверженец текстового режима. Так ли это и не изменил ли ты по какой-либо причине своего мнения? Дело в том, что я тоже не считаю обязательным наличие "рюшечек" и прочего украшательства, к тому же можно сохранить кроссплатформенность.
|
|
|
|
| постоянный участник
|
Пост 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), защиту легко ставить на задачу и т.д.
|
|
|
|
| постоянный участник
|
Пост N: 85
Зарегистрирован: 13.10.05
|
|
Отправлено: 16.01.08 07:55. Заголовок: А какая операционка ..
А какая операционка на рабочих станциях? Я тестировал Клиппер и Харбор. Харбор ничуть не медленее(базы до 200 000), но при работе в сети наWin98 притормаживает заметно.
|
|
|
|
| постоянный участник
|
Пост N: 402
Зарегистрирован: 12.09.06
|
|
Отправлено: 16.01.08 08:38. Заголовок: Vlad04 пишет: А как..
Vlad04 пишет: цитата: | А какая операционка на рабочих станциях? |
| Везде где можно избавляюсь от Win98, на 2000 или ХР. Просто 98 хуже работает в сети, но если нет возможностей поменять его из-за компа, то нехай работает
|
|
|
|
| |
Пост N: 156
Зарегистрирован: 08.04.06
|
|
Отправлено: 17.01.08 19:59. Заголовок: Re: Andrey
Andrey пишет: цитата: | Везде где можно избавляюсь от Win98, на 2000 или ХР. |
| А никто не пробовал на 98-м оставить Clipper'ную программу, на XP поставить xHarbour'ную, и заставить их работать с одной базой? Ведь если сработает, телодвижений гораздо меньше получится! Я, например, завтра собираюсь этот эксперимент поставить...
|
|
|
|
| постоянный участник
|
Пост N: 403
Зарегистрирован: 12.09.06
|
|
Отправлено: 18.01.08 00:05. Заголовок: Лукашевский пишет: ..
Лукашевский пишет: цитата: | и заставить их работать с одной базой? |
| У меня так это работало в течении полугода ! Без проблем. Даже на 98 запускали задачу на Клипере и хХарборе вместе и работало !!!
|
|
|
|
| |
Пост N: 162
Зарегистрирован: 08.04.06
|
|
Отправлено: 25.01.08 15:23. Заголовок: Re: Andrey
Andrey пишет: По-моему, она как раз появилась! (см. тему "Взаимодействие WinXP с Win98")
|
|
|
|
| moderator
|
Пост N: 23
Зарегистрирован: 06.07.06
|
|
Отправлено: 26.01.08 15:37. Заголовок: Andrey пишет: Хотя ..
Andrey пишет: цитата: | Хотя сейчас встала остро проблема работы с 10-15 станциями (когда больше 5 раб.станций начинаются "тормоза"). Нужно делать клиент-сервер для таких задач. Варианты с ADS не пройдут по одной простой причине - его нужно покупать, а заказчики не хотят тратить деньги (ну тупые они). |
| Я как раз начал недавно писать такой сервер и RDD к нему. Некоторые мои довольно большие задачи ( например, "Кадры и зарплата", "Себестоимость" ) вроде бы работают на нем. Скоро выложу как отдельный проект на Sourceforge.
|
|
|
|
| постоянный участник
|
Пост N: 379
Зарегистрирован: 09.10.06
|
|
Отправлено: 26.01.08 18:33. Заголовок: alkresin пишет: Ско..
alkresin пишет: цитата: | Скоро выложу как отдельный проект на Sourceforge |
| И когда мы увидим 'Leto db server'? Идея c названием мне понравилась: лето - summer , с подтекстом так сказать.
|
|
|
|
| moderator
|
Пост N: 24
Зарегистрирован: 06.07.06
|
|
Отправлено: 26.01.08 23:04. Заголовок: Петр пишет: И когда..
Петр пишет: цитата: | И когда мы увидим 'Leto db server'? |
| Может, на следующей неделе, а может и не успею... Надо исправить пару ошибок, сделать, чтоб он как демон работал и под Линуксом и под виндами ( сейчас - просто консольная программа ),переименовать все функции, продумать структуру каталогов на Sourceforge и пр. цитата: | Идея c названием мне понравилась: лето - summer [Image] , с подтекстом так сказать. |
| Хорошо, что хоть кому-то понравилась :). Мне самому не очень, но на лучшее фантазии не хватило.
|
|
|
|
|
| постоянный участник
|
Пост N: 426
Зарегистрирован: 12.09.06
|
|
Отправлено: 27.01.08 14:58. Заголовок: alkresin пишет: Я ..
alkresin пишет: цитата: | Я как раз начал недавно писать такой сервер и RDD к нему |
| А какой он будет из себя ? Хотелось бы как в Делфи ! На клиентском месте один ЕХЕ-ник запускается, по выбранному порту поднимает на сервере СЕРВЕР-ную часть программы и обменивается данными через TCP/IP. И чтоб настроек для пользователя было минимум, т.к. задачи отсылаешь в другие города, а там сопровождать бывает некому.
|
|
|
|
| Администратор
|
Пост N: 730
Зарегистрирован: 23.05.05
|
|
Отправлено: 28.01.08 09:20. Заголовок: Александр, очень инт..
Александр, очень интересно !
|
|
|
|
| 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/ - и вперед.
|
|
|
|
| постоянный участник
|
Пост N: 429
Зарегистрирован: 12.09.06
|
|
Отправлено: 28.01.08 23:26. Заголовок: С нетерпением жду ан..
С нетерпением жду анонса !!! Может какой-нибудь тестовый пример будет ? Если надо помочь сделать его, то согласен. Очень хочется проверить его на скорость ! А может еще и просто для Файл-Сервера тест сделать ? Какие будут идеи по поводу теста ?
|
|
|
|
| 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
|
|
|
|
| Администратор
|
Пост N: 733
Зарегистрирован: 23.05.05
|
|
Отправлено: 29.01.08 13:21. Заголовок: Отлично Александр, а..
Отлично Александр, а как построен rdd ? Как наследник dbfcdx, или отдельным подулем, типа bmdbfcdx ? PS Не думали о транзакциях и Select-запросах ?
|
|
|
|
| moderator
|
Пост N: 27
Зарегистрирован: 06.07.06
|
|
Отправлено: 29.01.08 15:02. Заголовок: Не знаю как bmdbfcdx..
Не знаю как bmdbfcdx, а мой наследует только от корневого слоя ( workarea.c ), как rddads. Транзакции и sql запросы надо будет делать, но думать еще рано :). Пока главное - реализация базовых методов ( я, например, не делал еще relations и scopes - просто плтому что не использую их в своих программах и их отсутствие не мешает тестированию ), проверка стабильности и производительности в реальной работе с многими пользователями. Сейчас сервер работает по самой примитивной схеме - последовательная обработка поступающих запросов одним процессом. Чтобы минимизировать задержки ( пока, например, кто-то индексирует большую таблицу ), надо запустить еще несколько процессов и передавать им запросы, требующие времени ( индексация, skip по фильтрованной базе, ... ) на обработку.
|
|
|
|
| Администратор
|
Пост N: 734
Зарегистрирован: 23.05.05
|
|
Отправлено: 29.01.08 16:56. Заголовок: Если нужна помощь - ..
Если нужна помощь - скажите, готов поучавствовать Может быть, каждый запрос в отдельном потоке лучше сделать ?
|
|
|
|
| moderator
|
Пост N: 28
Зарегистрирован: 06.07.06
|
|
Отправлено: 29.01.08 21:44. Заголовок: Если нужна помощь - ..
цитата: | Если нужна помощь - скажите, готов поучавствовать |
| Ну на то ж оно и open source ... Всякая помощь приветствуется. цитата: | Может быть, каждый запрос в отдельном потоке лучше сделать ? |
| Может, но в Harbour нет пока потоков, а делать специально под xHarbour не хочется, надо чтоб работало в обеих ветках. Надеюсь, и с процессами нормально получится. ADS, например, сначала использовал процессы - и, вроде, нормально было. Будем экспериментировать.
|
|
|
|
| Администратор
|
Пост N: 735
Зарегистрирован: 23.05.05
|
|
Отправлено: 30.01.08 09:38. Заголовок: Понятно А как вы дел..
Понятно А как вы делаете сам сервер ? Доступна ли будет vm-машина харбора ? Я к чему это спрашиваю. По характеристикам получается сервер БД, аналогичный Ads. И транзакции, и SQL-запросы в Ads имеются Конечно, будет замечательно, что для харбора будет подобный сервер, но хорошо бы, чтобы были и другие возможности. Например, выполнение харбор-кода на сервере по запросу с клиента Это было бы что-то вроде Stored Procedure, но язык побогаче, чем SQL
|
|
|
|
|
| moderator
|
Пост N: 29
Зарегистрирован: 06.07.06
|
|
Отправлено: 30.01.08 13:16. Заголовок: Доступна ли будет vm..
цитата: | Доступна ли будет vm-машина харбора ? |
| Да, конечно. Сервер-то пишется на Harbour, только некоторые фрагменты для повышения скорости - на С. цитата: | Конечно, будет замечательно, что для харбора будет подобный сервер, но хорошо бы, чтобы были и другие возможности. Например, выполнение харбор-кода на сервере по запросу с клиента |
| Обязательно сделаем. Раз сервер пишется на Harbour, то это напрашивается само собой. Много можно интересных вещей сделать...
|
|
|
|
| постоянный участник
|
Пост N: 437
Зарегистрирован: 12.09.06
|
|
Отправлено: 30.01.08 13:36. Заголовок: alkresin пишет: Мно..
alkresin пишет: цитата: | Много можно интересных вещей сделать... |
| Например ?
|
|
|
|
| moderator
|
Пост N: 30
Зарегистрирован: 06.07.06
|
|
Отправлено: 30.01.08 16:20. Заголовок: Пофантазируй :) Ну, ..
Пофантазируй :) Ну, например, email администратору отправлять, если пользователь не закрыл программу на время обеда :).
|
|
|
Ответов - 24
, стр:
1
2
All
[только новые]
|
|