ФС.СуществуетФайл тормозит на большом колве файлов #696722


#0 by Холст
сабж папка, которая просматривается сетевая \192.168.0.10 кол-во файлов в цикле 54тыс время выполнения ФС.СуществуетФайл по отладчику составило 9500сек (больше 2х часов) чем можно быстрее проверить наличие файлов по сети ? может FSO будет быстрей ? или чтото еще ? может есть способ сразу весь список проверить ? или сетевыми настройками можно ускорить ? во время работы система то загружала процессор, то проц был свободен (как будто винда или чтото другое останавливали 1Ску "передохнуть") антивирус не был отключен, но особой активности его не было отмечено ОС на клиенте WinXP prof, на хранилище ОС Win2008
#1 by Холст
скорость 54к/9,5к = 5,7файлов/сек маловата даже с поправкой на механический HDD а не SSD, другие клиенты в это время активно не обращались (не рабочее время ночь) + необъяснимы мною никак "простои" по примерно 1-2мин о которых писал выше
#2 by floody
проверять наличие 54000 файлов? может просто вы что-то делаете не нужное?
#3 by Chai Nic
Я думаю, обращение к такому большому каталогу в любом случае будет небыстрым.. и в общем случае, зависит от драйвера файловой системы, от кэширования и индексирования каталогов.
#4 by Chai Nic
Да кстати каталоги тоже могут быть сильно фрагментированы
#5 by Холст
это сертификаты (картинки по 0,1-1мб), в 1С ссылки на путь, проверяем фактическое наличие файлов картинок сертификатов предлагаешь хранить картинки не в файлах а в MS SQL в отдельной базе ?
#6 by Junior1s
ну проверять постоянно 54к файлов это явно, что то не то
#7 by Voronve
Выдать команду на открытие файла обернутую Попытка/Исключение не предлагать ?
#8 by Chai Nic
Лучше сделай дерево каталогов в несколько уровней.
#9 by floody
+800
#10 by Torquader
А не кажется ли желающим проверять 54 тысячи файлов по сети, что это самый наилучший способ - положить сеть. Как бы, предполагается, что проще прочитать один раз директорию, чтобы потом в ней проверить все эти 54 тысячи. P.S. в директориях Web-серверов может лежать более 200 тысяч картинок к товарам, но никому в голову не приходит, что наличие всех этих файлов нужно проверять в один момент да и ещё периодически. Размер файлов какой ?
#11 by Junior1s
->
#12 by Torquader
Ну, тогда точно должны быть в файлах, только проверять наличие файлов я бы стал через получение списка всех файлов, а только потом искал бы в нём, так как это сильно уменьшит количество обращений в сеть, а за время проверки файлы исчезнуть и появиться не смогут.
#13 by Холст
спасибо за идею парсить результат батника dir *.jpg /s /TW /O-D  > C:FilesJPG.txt  или наподобие такого
#14 by Bigbro
хранить так много файлов в одном каталоге - дурной тон.
#15 by Холст
в теме не сказано что у меня хранится в одной папке все, там подпапки, в теме указана корневая папка
#16 by NikVars
А подцепить твою папку как сетевой диск поможет?
#17 by 1Сергей
я бы сделал и не парился
#18 by Torquader
Она у него итак сетевая - вся проблема в том, что работа идёт по сети. А если на той машине, где они лежат, написать сценарий, который "собирает" все файлы по директориям наподобие и отправляет вам этот файл по сети - наверное - будет быстрее, так как тот же самый dir по сети с множеством папок - ещё тот тормоз будет.
#19 by inspam
+0.5 +0.5 делать поиск на сервере и возвращать результаты в 1С
#20 by NikVars
Понимаю момент кривизны в алготирме решения задачи. А я имею ввиду момент включения индексирования, который доступен по галочке на свойствах диска. Эта фигня как-то влияет на скорость обработки при поиске файлов?!
#21 by Torquader
Влияет при использовании поиска в системе, так как индексирование обрабатывается в фоне и собирает данные о файлах на диске (если включено) при чтении директории оно никак не влияет.
Тэги: Админ
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С