Главная Новости

Оптимизация временной БД (tempdb)

Опубликовано: 30.10.2017

видео Оптимизация временной БД (tempdb)

Масштабирование базы данных через шардирование и партиционирование / Денис Иванов (2ГИС)

При оптимизации производительности Microsoft SQL Server помимо настройки сервера, баз данных, транзакций и запросов важно обеспечить максимальную производительность временной базы данных (tempdb), особенно если программное обеспечение интенсивно использует временные таблицы (например, 1С), либо используется версионность как уровень изоляции транзакций .


10. Базы данных. Обзор NOSQL решений для работы с высоконагруженными системами | Технострим

Часто важность временной базы данных недооценивается, что приводит к неожиданным и непонятным проблемам с производительностью. И не обеспечивает стабильного и предсказуемого результата при попытках оптимизировать работу бизнес-приложений.

Временная база данных является системной базой данных, которая использоваться как для системных, так и для прикладных задач:

Выполнение запросов с инструкциями ORDER BY, GROUP BY или операторами множеств (UNION, INTERSECT, EXCEPT). В плане выполнения необходимо обратить внимание на операторы Sort, Hash match, Spool. Выполнение скриптов с использованием курсоров типа static или keyset. Создание временных таблиц и табличных переменных. Использование табличных функций. Использование триггеров. Подключение клиентов в режиме MARS (Multiple Active Result Sets) . Создание и обновление индексов. Уровень изоляции транзакций с версионностью (SNAPSHOT). Использование больших объектов (varchar(max), nvarchar(max), varbinary(max), text, ntext, image, xml) как параметров или переменных. Выполнение команды DBCC CHECK. Использование Service Broker или Database mail.

Анализ

Для анализа нагрузки на временную базу данных используется следующий запрос:

SELECT SUM ( user_object_reserved_page_count )* 8 as usr_obj_kb , SUM ( internal_object_reserved_page_count )* 8 as internal_obj_kb , SUM ( version_store_reserved_page_count )* 8 as version_store_kb , SUM ( unallocated_extent_page_count )* 8 as freespace_kb , SUM ( mixed_extent_page_count )* 8 as mixedextent_kb FROM tempdb . sys . dm_db_file_space_usage

Соответственно, в первой колонке  usr_obj_kb мы видим сколько данных во временной базе данных используется в прикладном коде, например, при создании временных таблиц. Колонка internal_obj_kb показывает, сколько данных используется для системных задач, а version_store_kb показывает объем данных для хранения версий строк при использовании версионности.

3D стерео фильмы для 5D
rss