Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
 FileStream  [new]
izoldov-roskini
Member

Откуда:
Сообщений: 1169
Не совсем понятен FileStream. Как я понял это замена хранения файлов например большого объема напрямую в таблице. Но странно, сделал поле varbinary(max) , сделал его FileStream, делаю Insert в таблицу с полем varbinary(max), в каталоге с данными файл появляется, но одновременно в поле varbinary(max) хранится и сам объект , т.е. файл - либо я что-то не так сделал либо я не понял зачем дважды хранить одно и тоже?
28 янв 13, 21:31    [13841705]     Ответить | Цитировать Сообщить модератору
 Re: FileStream  [new]
Ken@t
Member

Откуда: 大地
Сообщений: 3265
izoldov-roskini,

И какие здесь буквы непонятны?
28 янв 13, 21:47    [13841757]     Ответить | Цитировать Сообщить модератору
 Re: FileStream  [new]
izoldov-roskini
Member

Откуда:
Сообщений: 1169
Тут понятны все, я это видел, но судя по тому что для любого файла, который я загнал в поле varbinary(max) с FileStream длинна хранящихся данных одинакова (хотя размер файлов разный), делаю вывод что в varbinary(max) теперь хранится не сам объект (файл) а служебная информация о его местоположении.
Я прав в своих рассуждениях?
Просьба сильно не пинать
28 янв 13, 21:53    [13841779]     Ответить | Цитировать Сообщить модератору
 Re: FileStream  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31965
izoldov-roskini
судя по тому что для любого файла, который я загнал в поле varbinary(max) с FileStream длинна хранящихся данных одинакова (хотя размер файлов разный)
Можно это как то расшифровать? Мне казалось, "длинна данных" и "размер файла" синонимы. Как вы их получили?

И просто селект сделайте из поля, потом содержимое файла посмотрите. Одно и то же там или нет?
28 янв 13, 22:18    [13841844]     Ответить | Цитировать Сообщить модератору
 Re: FileStream  [new]
izoldov-roskini
Member

Откуда:
Сообщений: 1169
Именно, для всех файлов я сделал селект столбца varbinary и размер у всех одинаковый визуально, а файлы реально разные, вот я и сделал такой вывод
28 янв 13, 23:13    [13842006]     Ответить | Цитировать Сообщить модератору
 Re: FileStream  [new]
Гость333
Member

Откуда:
Сообщений: 3683
izoldov-roskini
я сделал селект столбца varbinary и размер у всех одинаковый визуально

А теперь оцените размер не визуально, а с помощью функции DATALENTGH.
28 янв 13, 23:29    [13842037]     Ответить | Цитировать Сообщить модератору
 Re: FileStream  [new]
Гость333
Member

Откуда:
Сообщений: 3683
Т.е. DATALENGTH, извините за опечатку.
28 янв 13, 23:30    [13842040]     Ответить | Цитировать Сообщить модератору
 Re: FileStream  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31965
izoldov-roskini
Именно, для всех файлов я сделал селект столбца varbinary и размер у всех одинаковый визуально, а файлы реально разные, вот я и сделал такой вывод
Настройки клиента - обрезает строки.
28 янв 13, 23:35    [13842050]     Ответить | Цитировать Сообщить модератору
 Re: FileStream  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31965
alexeyvg
И просто селект сделайте из поля, потом содержимое файла посмотрите. Одно и то же там или нет?

izoldov-roskini
Именно, для всех файлов я сделал селект столбца varbinary и размер у всех одинаковый визуально, а файлы реально разные, вот я и сделал такой вывод
Я не про размер.

Посмотрите первые байты в файлах и в результате селекта, совпадают или нет.
28 янв 13, 23:37    [13842057]     Ответить | Цитировать Сообщить модератору
 Re: FileStream  [new]
izoldov-roskini
Member

Откуда:
Сообщений: 1169
первые байты совпадают, слушайте ну я в полне конкретный вопрос спросил, ответьте кто-нибудь внятно, что хранится в varbinary(max) если у поля стоит признак FileStream
29 янв 13, 09:47    [13842707]     Ответить | Цитировать Сообщить модератору
 Re: FileStream  [new]
izoldov-roskini
Member

Откуда:
Сообщений: 1169
DATALENGTH дает именно размеры файлов, получается что сами файлы лежат в varbinary, тогда вопрос, зачем FileStream если он дублирует данные?
29 янв 13, 09:49    [13842714]     Ответить | Цитировать Сообщить модератору
 Re: FileStream  [new]
izoldov-roskini
Member

Откуда:
Сообщений: 1169
Попробовал добавлять файлы большого объема, да данные он хранит и в базе tempdb и в файловой системе, тогда возвращаемся к вопросу: зачем оно надо? зачем хранить дубликат информации?
29 янв 13, 10:10    [13842813]     Ответить | Цитировать Сообщить модератору
 Re: FileStream  [new]
Glory
Member

Откуда:
Сообщений: 104751
izoldov-roskini
DATALENGTH дает именно размеры файлов, получается что сами файлы лежат в varbinary, тогда вопрос, зачем FileStream если он дублирует данные?

А как DATALENGTH определеяет место физического хранения данных ?
29 янв 13, 10:11    [13842814]     Ответить | Цитировать Сообщить модератору
 Re: FileStream  [new]
izoldov-roskini
Member

Откуда:
Сообщений: 1169
Glory
izoldov-roskini
DATALENGTH дает именно размеры файлов, получается что сами файлы лежат в varbinary, тогда вопрос, зачем FileStream если он дублирует данные?

А как DATALENGTH определеяет место физического хранения данных ?


Попробовал добавлять файлы большого объема, да данные он хранит и в базе tempdb и в файловой системе, тогда возвращаемся к вопросу: зачем оно надо? зачем хранить дубликат информации?
29 янв 13, 10:18    [13842855]     Ответить | Цитировать Сообщить модератору
 Re: FileStream  [new]
Glory
Member

Откуда:
Сообщений: 104751
izoldov-roskini
опробовал добавлять файлы большого объема, да данные он хранит и в базе tempdb и в файловой системе

Каким способом вы определили, что "данные он хранит и в базе tempdb " ?
29 янв 13, 10:20    [13842865]     Ответить | Цитировать Сообщить модератору
 Re: FileStream  [new]
izoldov-roskini
Member

Откуда:
Сообщений: 1169
Добавил файлы большого размера по 200 мег, таблица tempdb увеличилась пропорционально
29 янв 13, 10:25    [13842889]     Ответить | Цитировать Сообщить модератору
 Re: FileStream  [new]
Glory
Member

Откуда:
Сообщений: 104751
izoldov-roskini
Добавил файлы большого размера по 200 мег, таблица tempdb увеличилась пропорционально

Крутой способ.
Т.е. если у меня при любом запросе увеличивается tempdb, то значит, что все мои данные хранятся в tempdb ?
И как долго они там хранятся ?
29 янв 13, 10:28    [13842900]     Ответить | Цитировать Сообщить модератору
 Re: FileStream  [new]
izoldov-roskini
Member

Откуда:
Сообщений: 1169
Хотя похоже я не прав, не увеличивает.
Видимо все-таки все храниться как надо.
29 янв 13, 10:28    [13842902]     Ответить | Цитировать Сообщить модератору
 Re: FileStream  [new]
Glory
Member

Откуда:
Сообщений: 104751
izoldov-roskini
Хотя похоже я не прав, не увеличивает.
Видимо все-таки все храниться как надо.

Может лучше перечитать хелпы, чем выдумывать ?
29 янв 13, 10:29    [13842911]     Ответить | Цитировать Сообщить модератору
 Re: FileStream  [new]
izoldov-roskini
Member

Откуда:
Сообщений: 1169
Не судите строго, пытаюсь вкурить эту вещь и сразу куча вопросов
Но вроде вкуриваю что к чему, чтение и запись получается надо тоже делать при помощи потоков, а не при помощи например стандартного DataSet
29 янв 13, 10:30    [13842913]     Ответить | Цитировать Сообщить модератору
 Re: FileStream  [new]
izoldov-roskini
Member

Откуда:
Сообщений: 1169
Документацию второй день читаю и пытаюсь последовательно разобраться с FileStream
29 янв 13, 10:31    [13842918]     Ответить | Цитировать Сообщить модератору
 Re: FileStream  [new]
Glory
Member

Откуда:
Сообщений: 104751
izoldov-roskini
Документацию второй день читаю и пытаюсь последовательно разобраться с FileStream

Да что вы говрите ?
И это тоже два дня читаете ?

FILESTREAM storage is implemented as a varbinary(max) column in which the data is stored as BLOBs in the file system. The sizes of the BLOBs are limited only by the volume size of the file system. The standard varbinary(max) limitation of 2-GB file sizes does not apply to BLOBs that are stored in the file system.

To specify that a column should store data on the file system, specify the FILESTREAM attribute on a varbinary(max) column. This causes the Database Engine to store all data for that column on the file system, but not in the database file.
29 янв 13, 10:33    [13842932]     Ответить | Цитировать Сообщить модератору
 Re: FileStream  [new]
izoldov-roskini
Member

Откуда:
Сообщений: 1169
Тогда еще вопрос по существу: чем принципиально отличается доступ к данным если я просто делаю select из поля varbinary(max) filestream и записываю его например File.WriteAllBytes(path, attach) вместо того чтобы использовать описанный в хелпе способ. Поясните принципиальную разницу
29 янв 13, 10:36    [13842953]     Ответить | Цитировать Сообщить модератору
 Re: FileStream  [new]
izoldov-roskini
Member

Откуда:
Сообщений: 1169
Glory
izoldov-roskini
Документацию второй день читаю и пытаюсь последовательно разобраться с FileStream

Да что вы говрите ?
И это тоже два дня читаете ?

FILESTREAM storage is implemented as a varbinary(max) column in which the data is stored as BLOBs in the file system. The sizes of the BLOBs are limited only by the volume size of the file system. The standard varbinary(max) limitation of 2-GB file sizes does not apply to BLOBs that are stored in the file system.

To specify that a column should store data on the file system, specify the FILESTREAM attribute on a varbinary(max) column. This causes the Database Engine to store all data for that column on the file system, but not in the database file.


Я к сожалению читал русский вариант, а киньте ссылочку на страничку на англицом
29 янв 13, 10:39    [13842968]     Ответить | Цитировать Сообщить модератору
 Re: FileStream  [new]
Glory
Member

Откуда:
Сообщений: 104751
izoldov-roskini
вместо того чтобы использовать описанный в хелпе способ

Вы про что вообще ?
Нужно угадать тексты ваших "способов", сравнить их и рассказать вам про плюсы/минусы/различия ?
29 янв 13, 10:39    [13842970]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
Все форумы / Microsoft SQL Server Ответить