Анализ нагрузки на TempDB

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

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 мы видим сколько данных в TempDB используется в прикладном коде, например, при создании временных таблиц. internal_obj_kb показывает, сколько данных используется для системных задач, version_store_kb объем данных для хранения версий строк при использовании версионности.

Проблемы с количеством файлов tempdb


Запросом мы пытаемся найти latch на системные страницы PFS, GAM, SGAM в базе tempdb. Если запрос ничего не возвращает или возвращает строки только с «Is Not PFS, GAM, or SGAM page», то скорее всего нагрузка не требует увеличения файлов tempdb.

Select session_id,
wait_type,
wait_duration_ms,
blocking_session_id,
resource_description,
ResourceType = Case
When Cast(Right(resource_description, Len(resource_description) — Charindex(‘:’, resource_description, 3)) As Int) — 1 % 8088 = 0 Then ‘Is PFS Page’
When Cast(Right(resource_description, Len(resource_description) — Charindex(‘:’, resource_description, 3)) As Int) — 2 % 511232 = 0 Then ‘Is GAM Page’
When Cast(Right(resource_description, Len(resource_description) — Charindex(‘:’, resource_description, 3)) As Int) — 3 % 511232 = 0 Then ‘Is SGAM Page’
Else ‘Is Not PFS, GAM, or SGAM page’
End
From sys.dm_os_waiting_tasks
Where wait_type Like ‘PAGE%LATCH_%’
And resource_description Like ‘2:%’

SQL Server не использует все процессоры ?

select scheduler_id,cpu_id, status, is_online from sys.dm_os_schedulers
where status=’VISIBLE ONLINE’

SELECT cpu_count AS [Logical CPU Count], hyperthread_ratio AS Hyperthread_Ratio,
cpu_count/hyperthread_ratio AS Physical_CPU_Count,
physical_memory_kb/1024 AS Physical_Memory_in_MB,
sqlserver_start_time, affinity_type_desc 
FROM sys.dm_os_sys_info