Имя: Пароль:
1C
Админ
ФС.СуществуетФайл тормозит на большом колве файлов
,
0 Холст
 
30.01.14
12:52
сабж
папка, которая просматривается сетевая \\192.168.0.10\
кол-во файлов в цикле 54тыс
время выполнения ФС.СуществуетФайл по отладчику составило 9500сек (больше 2х часов)

чем можно быстрее проверить наличие файлов по сети ?
может FSO будет быстрей ? или чтото еще ? может есть способ сразу весь список проверить ?
или сетевыми настройками можно ускорить ?
во время работы система то загружала процессор, то проц был свободен (как будто винда или чтото другое останавливали 1Ску "передохнуть")
антивирус не был отключен, но особой активности его не было отмечено
ОС на клиенте WinXP prof, на хранилище ОС Win2008
1 Холст
 
30.01.14
13:04
скорость 54к/9,5к = 5,7файлов/сек маловата даже с поправкой на механический HDD а не SSD, другие клиенты в это время активно не обращались (не рабочее время ночь)
+ необъяснимы мною никак "простои" по примерно 1-2мин о которых писал выше
2 floody
 
30.01.14
13:06
проверять наличие 54000 файлов? может просто вы что-то делаете не нужное?
3 Chai Nic
 
30.01.14
13:08
Я думаю, обращение к такому большому каталогу в любом случае будет небыстрым.. и в общем случае, зависит от драйвера файловой системы, от кэширования и индексирования каталогов.
4 Chai Nic
 
30.01.14
13:09
Да кстати каталоги тоже могут быть сильно фрагментированы
5 Холст
 
30.01.14
13:12
(2) это сертификаты (картинки по 0,1-1мб), в 1С ссылки на путь, проверяем фактическое наличие файлов картинок сертификатов
предлагаешь хранить картинки не в файлах а в MS SQL в отдельной базе ?
6 Junior1s
 
30.01.14
13:13
ну проверять постоянно 54к файлов это явно, что то не то
7 Voronve
 
30.01.14
13:18
(0) Выдать команду на открытие файла обернутую Попытка/Исключение не предлагать ?
8 Chai Nic
 
30.01.14
13:18
(5) Лучше сделай дерево каталогов в несколько уровней.
9 floody
 
30.01.14
13:21
(7) +800
10 Torquader
 
30.01.14
13:22
А не кажется ли желающим проверять 54 тысячи файлов по сети, что это самый наилучший способ - положить сеть.
Как бы, предполагается, что проще прочитать один раз директорию, чтобы потом в ней проверить все эти 54 тысячи.
P.S. в директориях Web-серверов может лежать более 200 тысяч картинок к товарам, но никому в голову не приходит, что наличие всех этих файлов нужно проверять в один момент да и ещё периодически.

Размер файлов какой ?
11 Junior1s
 
30.01.14
13:23
(10) -> (5)
12 Torquader
 
30.01.14
13:30
(11) Ну, тогда точно должны быть в файлах, только проверять наличие файлов я бы стал через получение списка всех файлов, а только потом искал бы в нём, так как это сильно уменьшит количество обращений в сеть, а за время проверки файлы исчезнуть и появиться не смогут.
13 Холст
 
30.01.14
13:55
(12) спасибо за идею
парсить результат батника dir *.jpg /s /TW /O-D  > C:\FilesJPG.txt  или наподобие такого
14 Bigbro
 
30.01.14
14:03
хранить так много файлов в одном каталоге - дурной тон.
15 Холст
 
30.01.14
14:04
(14) в теме не сказано что у меня хранится в одной папке все, там подпапки, в теме указана корневая папка
16 NikVars
 
30.01.14
14:10
(15) А подцепить твою папку как сетевой диск поможет?
17 1Сергей
 
30.01.14
14:11
я бы сделал (13) и не парился
18 Torquader
 
30.01.14
15:00
(16) Она у него итак сетевая - вся проблема в том, что работа идёт по сети.
А если на той машине, где они лежат, написать сценарий, который "собирает" все файлы по директориям наподобие (13) и отправляет вам этот файл по сети - наверное - будет быстрее, так как тот же самый dir по сети с множеством папок - ещё тот тормоз будет.
19 inspam
 
30.01.14
15:17
(8) +0.5
(18)+0.5 делать поиск на сервере и возвращать результаты в 1С
20 NikVars
 
30.01.14
16:15
(18) Понимаю момент кривизны в алготирме решения задачи. А я имею ввиду момент включения индексирования, который доступен по галочке на свойствах диска. Эта фигня как-то влияет на скорость обработки при поиске файлов?!
21 Torquader
 
30.01.14
16:22
(20) Влияет при использовании поиска в системе, так как индексирование обрабатывается в фоне и собирает данные о файлах на диске (если включено) при чтении директории оно никак не влияет.
Закон Брукера: Даже маленькая практика стоит большой теории.