powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Посоветуйте по оптимизации
12 сообщений из 12, страница 1 из 1
Посоветуйте по оптимизации
    #34408699
CTAC-KO
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Привет!

Пишу на VFP9 прогу как файл-серверное приложеньце. Все базы являются "свободными" (.dbf). Клиентам просмотры организованы через гриды посредством выборки нужных полей из нужных баз в курсоры с помощью SELECT SQL. Со временем оказалось, что некоторые базы (в корых сохраняются документы типа .doc) растут в размере очень быстро и, поскольку SELECT SQL открывает все указанные в запросе базы локально, все это загружает сеть и замедляет выполнение выборок + открываются нерадужные перспективы на будуНИщее :) .
Что посоветуете в данной ситуювине? К примеру переход на клиент-серверное приложение я не рассматриваю, т.к. знаний в этой сфере 0, хотя предполагаю, что в таком случае выгода такая - клиенту отправляется только результат выборки, соотв. он не нагружается всеми базами, что в ней участвуют. Это, конечно, здорово, если так, но пока что не вариант отчасти потому, что пишу прогу во-первых бесплатно, и во-вторых, заказчик просит не использовать сторонние небесплатные проги. Поэтому вместо M$-Word я планирую юзать OO-Writer, а про SQL-Server как бы вообще не думаю, хотя знаю про существование mysql.
Сам пока что вижу выход только в разбиении быстрорастущих баз на части, например отрузать базу с доками в отдельную.

Спасибо.
...
Рейтинг: 0 / 0
Посоветуйте по оптимизации
    #34408779
-=AlexiS=-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Как вариант хранить документы не в таблицах , а в отдельной папке.
в таблицах же ссылка(т.е. имя или путь+имя).
...
Рейтинг: 0 / 0
Посоветуйте по оптимизации
    #34408783
PaulWist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Обрати внимание на индексы

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
  CLEAR 
  SET DELETED off
  
  CREATE CURSOR test (f1 i, f2 i)
  INDEX ON f1 TAG f1
  
  INSERT INTO test VALUES ( 1 ,  1 )
  INSERT INTO test VALUES ( 2 ,  2 )

? 'Смотрим оптимизацию запроса'
  SYS( 3054 , 11 )  
? ''
? 'Оптимизация с индексом FULL'
? ''
  SELECT * FROM test WHERE f1 =  1  INTO ARRAY arr
    
? ''
? 'Без индекса NONE'
? ''
  SELECT * FROM test WHERE f2 =  1  INTO ARRAY arr
...
Рейтинг: 0 / 0
Посоветуйте по оптимизации
    #34408799
Sergey Ch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
-=AlexiS=-Как вариант хранить документы не в таблицах , а в отдельной папке.
в таблицах же ссылка(т.е. имя или путь+имя).
+ 1

Именно это рекомендуется и для MS SQL Server...
...
Рейтинг: 0 / 0
Посоветуйте по оптимизации
    #34408887
Фотография Владимир СА
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
-=AlexiS=-Как вариант хранить документы не в таблицах , а в отдельной папке.
в таблицах же ссылка(т.е. имя или путь+имя).+1
Я когда то так под DOS делал. Текстовые файлы хранил.
...
Рейтинг: 0 / 0
Посоветуйте по оптимизации
    #34409614
CTAC-KO
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В принципе меня уже посещала идея выкладки док в отдельную папку. Поскольку есть идентификатор (IAi) то его и можно было бы как имя файла задать конвертив в строку. Но тогда меня смутило ограничение файловой системы на кол-во файлов в одной подпапке... правда не знаю чему оно равно, но оно есть. Само собой 1ну доку перетащить по сети или все сразу ради одной - вроде как выбор ясен...
Кто скажет какое существует ограничение на количество файлов в подпапке для систем FAT32 и NTFS? Под подпапкой имею в виду, что папка не в корне. Дело в специфике работы заказчика, там за год может проходить от 50 до 150 тыс. док.

2PaulWist - Вы советуете, кроме всего прочего индексировать базы хотябы по основным полям? Т.е. это увеличит скорость выполнения запросов, но оно же и увеличит количество передаваемых данных, ведь базы с индексами стануть весить больше, если не в разы...
...
Рейтинг: 0 / 0
Посоветуйте по оптимизации
    #34409651
Sergey Ch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
CTAC-KO Кто скажет какое существует ограничение на количество файлов в подпапке для систем FAT32 и NTFS?
Нет ограничений тынц
...
Рейтинг: 0 / 0
Посоветуйте по оптимизации
    #34409700
CTAC-KO
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ну есть и другие тынцы :)
http://en.wikipedia.org/wiki/NTFS
http://ru.wikipedia.org/wiki/FAT

выходит что можно и в папку, но при условии что сервак будет на NTFS...
...
Рейтинг: 0 / 0
Посоветуйте по оптимизации
    #34409702
CTAC-KO
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
эх, забыл отметить, что ограничения и там и там таки есть.
...
Рейтинг: 0 / 0
Посоветуйте по оптимизации
    #34409805
PaulWist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
CTAC-KO2PaulWist - Вы советуете, кроме всего прочего индексировать базы хотябы по основным полям? Т.е. это увеличит скорость выполнения запросов, но оно же и увеличит количество передаваемых данных, ведь базы с индексами стануть весить больше, если не в разы...

Индексы - это необходимость для оптимизации выборки, причем не по основным полям, а по тем полям которые могут появиться в предложении where, таким образом скорость запросов возрастет на порядки.

Индексы действительно станут "весить" больше, НО произойдёт качественный скачек в скорости обработки, большое заблуждение, что на клиента будет передаваться больше данных, данных будет передаваться столько сколько необходимо для выполнения запроса, конечно если запрос полностью оптимизирован и Фрксу не придется в тупую сканировать все записи таблицы.
...
Рейтинг: 0 / 0
Посоветуйте по оптимизации
    #34412134
CTAC-KO
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
спасибо!
значит надобно обязательно поиндексировать ВСЕ поля, что участвуют в выборках в WHERE и JOIN ON?

PaulWistбольшое заблуждение, что на клиента будет передаваться больше данных, данных будет передаваться столько сколько необходимо для выполнения запроса, конечно если запрос полностью оптимизирован и Фрксу не придется в тупую сканировать все записи таблицы. ну я может и заблуждаюсь, но выполнив выборку, абсолютно все базы, что в ней участвовали, на машине клиента оказываются открытыми. А это значит вместе с индексами, что в свою очередь говорит о том, что эти базы были с потрохами переданы с сервера клиенту. это же не клиент-серверное, а файл-серверное приложение.
Т.е. насколько я понимаю, практически все происходит следующим образом - все участвующие в запросе БД сперва закачиваются на машину полностью, затем из них уже локально происходит выборка. А поскольку индексы оптимизят выборку, то и они приедут в полном составе :) Другое дело что сама выборка проидет быстрее...
...
Рейтинг: 0 / 0
Посоветуйте по оптимизации
    #34412695
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Неправильно понимаете.

То, что таблица "открыта" вовсе не означает, что она целиком скачана на клиента. Вы представляете себе какие были бы при этом тормоза? Кто бы вообще с FoxPro работал при таких условиях?

Сделайте простой тестовый примерчик. Таблица строк этак на пару сотен тысяч с индексом по ключевому полю. Размер такой таблицы вместе с индексом будет в несколько мегабайт минимум. Положите ее на сервере.

А теперь проверьте, сколько времени займет выполнение команды USE или Select-SQL с поиском одной записи по ключевому полю (при наличии индекса) и сравните с тупым копированием файлов с сервера на клиента.

Команда открытия таблицы (USE) копирует на клиента только заголовок и первую отображаемую строку. Т.е. в общем случае - это всего несколько байт.

При Rushmore-оптимизации все происходит довольно хитро. Это вовсе не тупое копирование файла на клиента.
...
Рейтинг: 0 / 0
12 сообщений из 12, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Посоветуйте по оптимизации
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]