Цитата:А я бы спросил, а зачем хранить картинки вообще в SQL? скуль никогда не даст скорости доступа даже близкой к файловой системе.
Только база пухнуть будет.
Права на уровне ФС разруливаются прекрасно через WMI.
Имхо утверждение абсолютно безосновательно.
По скорости: я думаю что скорость будет не меньше, а может и больше. Скорость передачи данных с MSSQL достаточно высока. Данные идут в чистом виде по TCP, я не вижу где там могут быть потери на самом процессе передачи. Используется точно такой же сокет и транспортная библиотека. Работает тот же стек протокола. Механизм получения данных BLOB ни чем не отличается от обычной передачи массива данных через сеть.
По позиционированию: (по некоторому идентификатору надо найти в хранилище блок данных для передачи) не думаю что индексы MSSQL менее эффективны чем индексы файловой системы (по именам файлов). Я опять же склонен считать что они гораздо более эффективны. Хотябы по тому что индексное выражение описывается в БД гораздо строже, кроме того идентификатор можно сделать просто int, да пространство значений индекса ограничивается одной базой/таблицей, а в файловой системе это иерархическое дерево строк(!), да еще и по всему тому.
По оптимальности хранения: как не крути, а картинка это часть данных и должна храниться в базе данных, это ведь удобнее. По физически занимаемому месту в файловой системе можно получить выигрышь за счет более мелкого кластера, в MSSQL страница 8к и ни куда не денешься. Имхо это не существенно на самом деле, кто щас место считает
С практической точки зрения: при работе через файловую систему будет работать служба доступа на sql-ном сервере, а у нее на таких серверах приоритет понижен, ее файловый кэш уменьшен, сервер сконфигурирован как сервер приложений, а не как файловый сервер. Однако при хранении картинок в БД при существующих на данных момент средствах 1cpp нам придется сначала стянуть ее на локальный диск во временный файл, а потом из него уже получить объект Картинка для отображения, а при хранении в файловой системе мы можем получить объект Картинка сразу с сервера. Формировать экземпляры объектов Картинка из данных рекордсета конечно же можно, но это не сделано, это было бы еще эффектинее.
Вообще говоря, надо провести тестирование, оно даст наиболее точные с практической точки зрения результаты.