Статистика и виды ожиданий. День № 20 (FILESTREAM)

Статистика и виды ожиданий. День № 20 (FILESTREAM)

Автор — Pinal Dave

Что такое FILESTREAM?

FILESTREAM новая возможность, которая появилась в SQL Server 2008. Данная технология позволяет эффективно хранить и использовать данные больших размеров (BLOB).

Большинство приложений, которые работают с BLOB сегодня, хранят сами данные на файловой системе, а ссылки на них в БД. Хранение BLOB на файловой системе более эффективно, чем хранение их в БД, но у данного метода есть свои недостатки. Когда BLOB хранятся на файловой системе, тяжело сохранить транзакционную целостность между файловой системой и БД.

Чтобы избежать проблем целостности, некоторые приложение хранят BLOB внутри БД, это плохо сказывается на производительности.

FILESTREAM позволяет комбинировать оба подхода, чтобы избежать недостатков. FILESTREAM хранит BLOB на файловой системе и в то же время позволяет добиться транзакционной целостности между BLOB на файловой системе и БД.

Виды ожиданий FILESTREAM

FS_FC_RWLOCK

Данный тип ожиданий создаётся сборщиком мусора (Garbage Collector) FILESTREAM.

FS_GARBAGE_COLLECTOR_SHUTDOWN

Возникает когда сборщик мусора FILESTREAM ожидает завершения задач очистки.

FS_HEADER_RWLOCK

Показывает что процесс ожидает доступа к FILESTREAM заголовку файла для операции чтения или записи. FILESTREAM заголовок — это файл на файловой системе, который имеет имя “filestream.hdr”.

FS_LOGTRUNC_RWLOCK

Связано с усечением операции FILESTREAM в журнале транзаций. Может быть вызвано необходимостью сделать резервную копию журнала транзакций.

FSAGENT

Связано с операциями ввода-вывода для файлов FILESTREAM.

FSTR_CONFIG_MUTEX

Возникает во время перенастройки FILESTREAM.

FSTR_CONFIG_RWLOCK

Связано с serialize доступом к параметрам конфигурации FILESTREAM.

Ожидания и производительность

В большинстве случаев ожидания ухудшают производительность. В документации SQL Server почти ничего не сказано о способам уменьшения ожиданий, однако вы всегда можете воспользоваться FILESTREAM best practices чтобы улучшить производительность и уменьшить ожидания.

Читайте все посты этой серии

Заметка: Представленная тут информация является исключительно моим опытом. Я настаиваю на том, чтобы вы читали Books On-Line. Все мои рассуждения о ожиданиях носят исключительно общий характер и варьируются от системы к системе. Прежде чем использовать это на рабочем сервере, рекомендую провести тестирование на сервере разработки.

Запись опубликована в рубрике Cтатистика и виды ожиданий (Wait Stats and Wait Types) с метками . Добавьте в закладки постоянную ссылку.

Добавить комментарий

Войти с помощью: