Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Вопросы про tempdb  [new]
kalimba
Member

Откуда:
Сообщений: 297
Всем привет, не могу понять как освободить место в tempd без перезапуска? пробовал shrink через gui, DBCC SHRINKFILE/SHRINKDATABASE, толку 0. Занимает 88гб, а по факту в ней таблиц не больше чем на 1Гб (смотрел через репорт Disk Usage By top tables). Еще нашёл такой запрос в одном из топиков:
select
       count(*)as cached_pages_count,
       obj.name as objectname,
       ind.name as indexname,
       obj.index_id as indexid
from sys.dm_os_buffer_descriptors as bd
    left join
    (
        select       object_id as objectid,
                           object_name(object_id) as name,
                           index_id,allocation_unit_id
        from sys.allocation_units as au
            inner join sys.partitions as p
                on au.container_id = p.hobt_id
                    and (au.type = 1 or au.type = 3)
        union all
        select       object_id as objectid,
                           object_name(object_id) as name,
                           index_id,allocation_unit_id
        from sys.allocation_units as au
            inner join sys.partitions as p
                on au.container_id = p.partition_id
                    and au.type = 2
    ) as obj
        on bd.allocation_unit_id = obj.allocation_unit_id
left outer join sys.indexes ind 
  on  obj.objectid = ind.object_id
 and  obj.index_id = ind.index_id
where bd.database_id = db_id()
  and bd.page_type in ('data_page', 'index_page')
group by obj.name, ind.name, obj.index_id
order by cached_pages_count desc

Показывает в сумме 73тыс. страниц, из них 26тыс. с объектом NULL (я так понял это свободные страницы), ну если умножить 73тыс * 8кб, то это порядка 600Мб, но никак не 88Гб. В чём может быть проблема?

Microsoft SQL Server 2012 (SP1) - 11.0.3128.0 (X64)
Dec 28 2012 20:23:12
Copyright (c) Microsoft Corporation
Enterprise Edition: Core-based Licensing (64-bit) on Windows NT 6.1 <X64> (Build 7601: Service Pack 1)
19 июн 13, 14:10    [14453925]     Ответить | Цитировать Сообщить модератору
 Re: Вопросы про tempdb  [new]
Гавриленко Сергей Алексеевич
Member

Откуда:
Сообщений: 37254
13470085
19 июн 13, 14:15    [14453971]     Ответить | Цитировать Сообщить модератору
 Re: Вопросы про tempdb  [new]
kalimba
Member

Откуда:
Сообщений: 297
Гавриленко Сергей Алексеевич
13470085

Значит если SHRINKFILE не работает и OPENTRAN выдаёт "No active open transactions." то остаётся только FREEPROCCACHE+DROPCLEANBUFFERS?
19 июн 13, 14:19    [14454011]     Ответить | Цитировать Сообщить модератору
 Re: Вопросы про tempdb  [new]
Гавриленко Сергей Алексеевич
Member

Откуда:
Сообщений: 37254
kalimba
Гавриленко Сергей Алексеевич
13470085

Значит если SHRINKFILE не работает и OPENTRAN выдаёт "No active open transactions." то остаётся только FREEPROCCACHE+DROPCLEANBUFFERS?
Там 4 команды, которые остается. Можете еще сервер перезапустить.
19 июн 13, 14:26    [14454081]     Ответить | Цитировать Сообщить модератору
 Re: Вопросы про tempdb  [new]
kalimba
Member

Откуда:
Сообщений: 297
Гавриленко Сергей Алексеевич,

Помог FREEPROCCACHE, не понимаю правда как кэш планов запросов связан с размером tempdb, но в топике есть ссылочка, сейчас буду изучать.
19 июн 13, 14:51    [14454311]     Ответить | Цитировать Сообщить модератору
 Re: Вопросы про tempdb  [new]
Гавриленко Сергей Алексеевич
Member

Откуда:
Сообщений: 37254
kalimba
Гавриленко Сергей Алексеевич,

Помог FREEPROCCACHE, не понимаю правда как кэш планов запросов связан с размером tempdb, но в топике есть ссылочка, сейчас буду изучать.
Потому что ворктейблы.
19 июн 13, 15:06    [14454471]     Ответить | Цитировать Сообщить модератору
 Re: Вопросы про tempdb  [new]
kalimba
Member

Откуда:
Сообщений: 297
Гавриленко Сергей Алексеевич
kalimba
Гавриленко Сергей Алексеевич,

Помог FREEPROCCACHE, не понимаю правда как кэш планов запросов связан с размером tempdb, но в топике есть ссылочка, сейчас буду изучать.
Потому что ворктейблы.
Да, но в кэше планов запросов же по сути только планы запросов, количество обращений к этому плану и прочее, хоть убейте не вижу связи :) Буду благодарен если скините если есть что почитать на эту тему) Спасибо за помощь!
19 июн 13, 15:23    [14454642]     Ответить | Цитировать Сообщить модератору
 Re: Вопросы про tempdb  [new]
Гавриленко Сергей Алексеевич
Member

Откуда:
Сообщений: 37254
kalimba
Гавриленко Сергей Алексеевич
пропущено...
Потому что ворктейблы.
Да, но в кэше планов запросов же по сути только планы запросов, количество обращений к этому плану и прочее, хоть убейте не вижу связи :) Буду благодарен если скините если есть что почитать на эту тему) Спасибо за помощь!
Вместе с планами хранятся в том числе и объекты с ним связанные. К примеру, worktable. И, что еще смешнее, временные таблицы, причем если там остались данные, то и вместе с данными (https://www.sql.ru/forum/957501/vopros-o-tempdb ).

Сообщение было отредактировано: 19 июн 13, 16:17
19 июн 13, 16:17    [14455100]     Ответить | Цитировать Сообщить модератору
 Re: Вопросы про tempdb  [new]
kalimba
Member

Откуда:
Сообщений: 297
Гавриленко Сергей Алексеевич
kalimba
пропущено...
Да, но в кэше планов запросов же по сути только планы запросов, количество обращений к этому плану и прочее, хоть убейте не вижу связи :) Буду благодарен если скините если есть что почитать на эту тему) Спасибо за помощь!
Вместе с планами хранятся в том числе и объекты с ним связанные. К примеру, worktable. И, что еще смешнее, временные таблицы, причем если там остались данные, то и вместе с данными (https://www.sql.ru/forum/957501/vopros-o-tempdb ).
А в sys.dm_exec_cached_plans в поле size_in_bytes это количество байт с данными таких таблиц или нет? Если да, то хотя бы можно будет текст запроса найти) Как бороться, ну кроме ставить в ХП WITH RECOMPILE? Дроп/транкейт временной таблицы в конце ХП поможет?
19 июн 13, 18:17    [14455870]     Ответить | Цитировать Сообщить модератору
 Re: Вопросы про tempdb  [new]
kalimba
Member

Откуда:
Сообщений: 297
Чем лучше искать из-за чего и насколько выросла tempdb? Профайлер/Extended Events? Как называются показатели? Всем спасибо)
2 июл 13, 10:23    [14508657]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить