Автор | Сообщение |
|
| постоянный участник
|
Пост N: 220
Зарегистрирован: 27.07.08
|
|
Отправлено: 30.11.12 13:38. Заголовок: Виснет сервак...
Вроде уже доделал свою программу (30 таблиц и 100 выходных форм), но тут вылез неожиданно глюк. На локальной машине всё работает нормально, а вот если база данных - на сервере, а программа на клиенте - то начинает тормозить, особенно при распечатке отчётов из FastReport. На сервере стоит Windows 2008 Server SP3, на клиенте Windows XP SP3. Важная информация: клиенты у шефа слабые - 2 Гигагерца процы и память всего 1,25 Гига. Скорее всего, тормоза все именно из-за них:( Но с деньгами у шефа сейчас неважно - кризис. Пусть хоть памяти добавит.
|
|
|
Новых ответов нет
[см. все]
|
|
|
| |
Пост N: 653
Зарегистрирован: 11.06.10
|
|
Отправлено: 30.11.12 14:00. Заголовок: Использовать letodb,..
Использовать letodb, терминальный режим.
|
|
|
|
| Администратор
|
Пост N: 2569
Зарегистрирован: 23.05.05
|
|
Отправлено: 30.11.12 14:27. Заголовок: Доступ к совместно о..
Доступ к совместно открытым файлам (с индексами) несколькими клиентами файлам в сетях windows выполняется на порядок (грубо) медленнее, чем доступ к файлу, открытому одним клиентом. Этот вопрос можно решить либо установкой блокировки индекса на чтение (READLOCK), что может привести к другим проблемам, либо использованию клиент-сервера (ads/letodb) Конечно, остается еще путь оптимизации алгоритма. Практика показывает, что резервы оптимизации всегда есть. Если алгоритм выполняется быстро при монопольном доступе, это означает только то, что его выполняет очень производительный компьютер, а не то, что алгоритм оптимальный.
|
|
|
|
| постоянный участник
|
Пост N: 221
Зарегистрирован: 27.07.08
|
|
Отправлено: 30.11.12 15:08. Заголовок: Не-е LetoDB не рулит..
|
|
|
|
| постоянный участник
|
Пост N: 2443
Зарегистрирован: 12.09.06
|
|
Отправлено: 30.11.12 15:10. Заголовок: Dr. Oldwarez пишет: ..
Dr. Oldwarez пишет: цитата: | а программа на клиенте - то начинает тормозить, особенно при распечатке отчётов из FastReport. |
| Я с таким тоже сталкивался (у меня пока ФАЙЛ-СЕРВЕРНАЯ архитектура). Помогло - оптимизация алгоритма. Какие операторы используешь ? Покажи примерную логику выборки. SET FILTER использовать нельзя, он в хХарборе (в отличие от Клипера 5.3) не оптимизирован !
|
|
|
|
| Администратор
|
Пост N: 2570
Зарегистрирован: 23.05.05
|
|
Отправлено: 30.11.12 16:03. Заголовок: Dr. Oldwarez пишет: ..
Dr. Oldwarez пишет: цитата: | Шеф хочет классический DBF. |
| Это вам еще повезло. Шеф мог потребовать программу под ms dos :) Дополню: ads и letodb это и есть классический dbf, только доступ к БД выполняется не через ненадежные и медленные файловые операции, а с помощью надежной и быстрой технологии клиент-сервер. К тому же программу можно написать так, что она будет работать и как файл-сервер (через dbfcdx/dbfntx), и как клиент-сервер.
|
|
|
|
| |
Не зарегистрирован
Зарегистрирован: 01.01.70
|
|
Отправлено: 30.11.12 17:40. Заголовок: Тормоза при отчетах - сделать "Отчет-сервер"
...особенно при распечатке отчётов из FastReport - именно распечатке ? или подготовке отчетов FastReport ? Предложение: Тормозную часть алгоритма можно выполнять не на клиентах, а прямо на сервере(если он производительный), в частности для подготовки отчетов: организуете "Отчет-сервер" - папка запросов клиентов на отчет , сюда клиенты размещают текстовый файл-запрос - папка ответов - готовых отчетов, каждый клиент забирает свой файл. На сервере Windows 2008 - все время выполняется Ваш второй "отчетный" exe, который обнаруживает запросы на отчет, готовит файлы отчетов, выкладывает их в папку ответов. Для подготовки отчетов иногда (в зависимости от размера) проще сделать реплику баз ( копирование базы при открытии без индексов - в реплику для отчетов) и готовить отчет по этой реплике.
|
|
|
|
| постоянный участник
|
Пост N: 222
Зарегистрирован: 27.07.08
|
|
Отправлено: 06.12.12 11:36. Заголовок: Всё, ясно стало. Ока..
Всё, ясно стало. Оказывается, причиной тормозов был конфликт с одной малоизвестной в СНГ программой, которую шеф запускал на клиенте одновременно с моей задачей. Договорились, что больше не будем запускать их одновременно.
|
|
|
|
| |
Пост N: 22
Зарегистрирован: 07.06.08
|
|
Отправлено: 06.12.12 12:16. Заголовок: Одна и та же програм..
Одна и та же программа у меня давно (несколько лет)работает и как Файл сервер и как клиент сервер на leto. При открытии таблицы проверяется наличие в пути сетевого пути (//) if at("//",NewFile)>0 use (NewFile) VIA LETO else use (NewFile) VIA DBFNTX endif Очень удобно для отладки и работы с локальными копиями. Надежность работы с данными на порядок лучше, нет потери данных и разрушения индексов при аварийном снятии клиента. Только если в индексах есть свои функции, необходимо их включить в сервер leto и перекомпилировать, но это несложно.
|
|
|
|