|
|
|
Посоветуйте по оптимизации
|
|||
|---|---|---|---|
|
#18+
Привет! Пишу на VFP9 прогу как файл-серверное приложеньце. Все базы являются "свободными" (.dbf). Клиентам просмотры организованы через гриды посредством выборки нужных полей из нужных баз в курсоры с помощью SELECT SQL. Со временем оказалось, что некоторые базы (в корых сохраняются документы типа .doc) растут в размере очень быстро и, поскольку SELECT SQL открывает все указанные в запросе базы локально, все это загружает сеть и замедляет выполнение выборок + открываются нерадужные перспективы на будуНИщее :) . Что посоветуете в данной ситуювине? К примеру переход на клиент-серверное приложение я не рассматриваю, т.к. знаний в этой сфере 0, хотя предполагаю, что в таком случае выгода такая - клиенту отправляется только результат выборки, соотв. он не нагружается всеми базами, что в ней участвуют. Это, конечно, здорово, если так, но пока что не вариант отчасти потому, что пишу прогу во-первых бесплатно, и во-вторых, заказчик просит не использовать сторонние небесплатные проги. Поэтому вместо M$-Word я планирую юзать OO-Writer, а про SQL-Server как бы вообще не думаю, хотя знаю про существование mysql. Сам пока что вижу выход только в разбиении быстрорастущих баз на части, например отрузать базу с доками в отдельную. Спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.03.2007, 13:58 |
|
||
|
Посоветуйте по оптимизации
|
|||
|---|---|---|---|
|
#18+
Как вариант хранить документы не в таблицах , а в отдельной папке. в таблицах же ссылка(т.е. имя или путь+имя). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.03.2007, 14:15 |
|
||
|
Посоветуйте по оптимизации
|
|||
|---|---|---|---|
|
#18+
Обрати внимание на индексы Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.03.2007, 14:17 |
|
||
|
Посоветуйте по оптимизации
|
|||
|---|---|---|---|
|
#18+
-=AlexiS=-Как вариант хранить документы не в таблицах , а в отдельной папке. в таблицах же ссылка(т.е. имя или путь+имя). + 1 Именно это рекомендуется и для MS SQL Server... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.03.2007, 14:21 |
|
||
|
Посоветуйте по оптимизации
|
|||
|---|---|---|---|
|
#18+
-=AlexiS=-Как вариант хранить документы не в таблицах , а в отдельной папке. в таблицах же ссылка(т.е. имя или путь+имя).+1 Я когда то так под DOS делал. Текстовые файлы хранил. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.03.2007, 14:43 |
|
||
|
Посоветуйте по оптимизации
|
|||
|---|---|---|---|
|
#18+
В принципе меня уже посещала идея выкладки док в отдельную папку. Поскольку есть идентификатор (IAi) то его и можно было бы как имя файла задать конвертив в строку. Но тогда меня смутило ограничение файловой системы на кол-во файлов в одной подпапке... правда не знаю чему оно равно, но оно есть. Само собой 1ну доку перетащить по сети или все сразу ради одной - вроде как выбор ясен... Кто скажет какое существует ограничение на количество файлов в подпапке для систем FAT32 и NTFS? Под подпапкой имею в виду, что папка не в корне. Дело в специфике работы заказчика, там за год может проходить от 50 до 150 тыс. док. 2PaulWist - Вы советуете, кроме всего прочего индексировать базы хотябы по основным полям? Т.е. это увеличит скорость выполнения запросов, но оно же и увеличит количество передаваемых данных, ведь базы с индексами стануть весить больше, если не в разы... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.03.2007, 17:50 |
|
||
|
Посоветуйте по оптимизации
|
|||
|---|---|---|---|
|
#18+
CTAC-KO Кто скажет какое существует ограничение на количество файлов в подпапке для систем FAT32 и NTFS? Нет ограничений тынц ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.03.2007, 17:58 |
|
||
|
Посоветуйте по оптимизации
|
|||
|---|---|---|---|
|
#18+
ну есть и другие тынцы :) http://en.wikipedia.org/wiki/NTFS http://ru.wikipedia.org/wiki/FAT выходит что можно и в папку, но при условии что сервак будет на NTFS... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.03.2007, 18:16 |
|
||
|
Посоветуйте по оптимизации
|
|||
|---|---|---|---|
|
#18+
эх, забыл отметить, что ограничения и там и там таки есть. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.03.2007, 18:17 |
|
||
|
Посоветуйте по оптимизации
|
|||
|---|---|---|---|
|
#18+
CTAC-KO2PaulWist - Вы советуете, кроме всего прочего индексировать базы хотябы по основным полям? Т.е. это увеличит скорость выполнения запросов, но оно же и увеличит количество передаваемых данных, ведь базы с индексами стануть весить больше, если не в разы... Индексы - это необходимость для оптимизации выборки, причем не по основным полям, а по тем полям которые могут появиться в предложении where, таким образом скорость запросов возрастет на порядки. Индексы действительно станут "весить" больше, НО произойдёт качественный скачек в скорости обработки, большое заблуждение, что на клиента будет передаваться больше данных, данных будет передаваться столько сколько необходимо для выполнения запроса, конечно если запрос полностью оптимизирован и Фрксу не придется в тупую сканировать все записи таблицы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.03.2007, 18:58 |
|
||
|
Посоветуйте по оптимизации
|
|||
|---|---|---|---|
|
#18+
спасибо! значит надобно обязательно поиндексировать ВСЕ поля, что участвуют в выборках в WHERE и JOIN ON? PaulWistбольшое заблуждение, что на клиента будет передаваться больше данных, данных будет передаваться столько сколько необходимо для выполнения запроса, конечно если запрос полностью оптимизирован и Фрксу не придется в тупую сканировать все записи таблицы. ну я может и заблуждаюсь, но выполнив выборку, абсолютно все базы, что в ней участвовали, на машине клиента оказываются открытыми. А это значит вместе с индексами, что в свою очередь говорит о том, что эти базы были с потрохами переданы с сервера клиенту. это же не клиент-серверное, а файл-серверное приложение. Т.е. насколько я понимаю, практически все происходит следующим образом - все участвующие в запросе БД сперва закачиваются на машину полностью, затем из них уже локально происходит выборка. А поскольку индексы оптимизят выборку, то и они приедут в полном составе :) Другое дело что сама выборка проидет быстрее... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.03.2007, 15:54 |
|
||
|
Посоветуйте по оптимизации
|
|||
|---|---|---|---|
|
#18+
Неправильно понимаете. То, что таблица "открыта" вовсе не означает, что она целиком скачана на клиента. Вы представляете себе какие были бы при этом тормоза? Кто бы вообще с FoxPro работал при таких условиях? Сделайте простой тестовый примерчик. Таблица строк этак на пару сотен тысяч с индексом по ключевому полю. Размер такой таблицы вместе с индексом будет в несколько мегабайт минимум. Положите ее на сервере. А теперь проверьте, сколько времени займет выполнение команды USE или Select-SQL с поиском одной записи по ключевому полю (при наличии индекса) и сравните с тупым копированием файлов с сервера на клиента. Команда открытия таблицы (USE) копирует на клиента только заголовок и первую отображаемую строку. Т.е. в общем случае - это всего несколько байт. При Rushmore-оптимизации все происходит довольно хитро. Это вовсе не тупое копирование файла на клиента. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.03.2007, 18:38 |
|
||
|
|

start [/forum/topic.php?fid=41&fpage=207&tid=1589669]: |
0ms |
get settings: |
12ms |
get forum list: |
25ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
51ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
58ms |
get tp. blocked users: |
1ms |
| others: | 248ms |
| total: | 417ms |

| 0 / 0 |
