Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Посоветуйте по оптимизации / 12 сообщений из 12, страница 1 из 1
22.03.2007, 13:58
    #34408699
CTAC-KO
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Посоветуйте по оптимизации
Привет!

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

Спасибо.
...
Рейтинг: 0 / 0
22.03.2007, 14:15
    #34408779
-=AlexiS=-
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Посоветуйте по оптимизации
Как вариант хранить документы не в таблицах , а в отдельной папке.
в таблицах же ссылка(т.е. имя или путь+имя).
...
Рейтинг: 0 / 0
22.03.2007, 14:17
    #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
22.03.2007, 14:21
    #34408799
Sergey Ch
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Посоветуйте по оптимизации
-=AlexiS=-Как вариант хранить документы не в таблицах , а в отдельной папке.
в таблицах же ссылка(т.е. имя или путь+имя).
+ 1

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

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

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

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

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

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

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

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

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

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

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


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