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

Откуда:
Сообщений: 72
Всем доброго времени суток!

В хранимой процедуре используются несколько временных таблиц возможно большого размера (неск (возможно десятков) тысяч строк).
Имеет ли смысл, как только какая-то темповая таблица стала не нужна, очищать ее TRUNCATE TABLE, чтобы освободить ресурсы, или само удаление может отнять больше ресурсов (времени), нежели таблица удалится сама собой по завершении процедуры.
Важно время работы процедуры!!!

Сейчас объем данных не такой большой, время выполнения не отличается.

Какова традиционная практика на этот счет? Спасибо.
17 июн 09, 11:34    [7309086]     Ответить | Цитировать Сообщить модератору
 Re: Truncate temp table  [new]
Гавриленко Сергей Алексеевич
Member

Откуда: Moscow
Сообщений: 36808
Т.е. вы считаете, что сервер будет освобождать ресурсы временной таблицы менее эффективно, чем вы будете делать это инструкцией truncate?
17 июн 09, 11:37    [7309111]     Ответить | Цитировать Сообщить модератору
 Re: Truncate temp table  [new]
iljy
Guest
Torus,

не занимайтесь фигней, сервер удалит временную таблицу DROP по окончании, а несколько (десятков) тысяч строк - это копейки. если очень хотите съэкономить - сделайте временные таблицы постоянными, чтоб не создавать;) только по-моему табличные переменные все равно будут эффективнее.
17 июн 09, 11:41    [7309146]     Ответить | Цитировать Сообщить модератору
 Re: Truncate temp table  [new]
Torus
Member

Откуда:
Сообщений: 72
Я не знаю и собственно об этом и спрашиваю.

И второй момент: сервер освободит ресурсы по завершении процедуры, а я - как только таблица станет не нужна, тем самым освободив ресурсы tempdb для самой же процедуры.
Поправьте, если мои представления ложны.
17 июн 09, 11:44    [7309175]     Ответить | Цитировать Сообщить модератору
 Re: Truncate temp table  [new]
Torus
Member

Откуда:
Сообщений: 72
iljy - фигней как раз заниматься не хотелось бы ))
а за счет чего табличные переменные будут эффективнее?
17 июн 09, 11:46    [7309200]     Ответить | Цитировать Сообщить модератору
 Re: Truncate temp table  [new]
DeColo®es
Member

Откуда: Москва
Сообщений: 5499
Блог
Torus
iljy - фигней как раз заниматься не хотелось бы ))
а за счет чего табличные переменные будут эффективнее?
На десятках тысяч строк табличные переменные применять стоит только очень хорошо владея техникой оптимизации запросов.
Ибо без пинков оптимизатору планы выполнения будут, мягко говоря, далеки от идеала.
17 июн 09, 11:51    [7309233]     Ответить | Цитировать Сообщить модератору
 Re: Truncate temp table  [new]
Crimean
Member

Откуда:
Сообщений: 13148
на очистку однозначно забить. а на "табличные переменные vs временные таблицы" - загуглить :)
17 июн 09, 11:53    [7309249]     Ответить | Цитировать Сообщить модератору
 Re: Truncate temp table  [new]
Критик
Member

Откуда: Москва / Калуга
Сообщений: 33358
Блог
Torus
а за счет чего табличные переменные будут эффективнее?


в теории - из-за особенностей логирования операций с табличными переменными, но на практике бывает так, что операции с временными таблицами быстрее
17 июн 09, 12:03    [7309322]     Ответить | Цитировать Сообщить модератору
 Re: Truncate temp table  [new]
Crimean
Member

Откуда:
Сообщений: 13148
Критик
Torus
а за счет чего табличные переменные будут эффективнее?


в теории - из-за особенностей логирования операций с табличными переменными, но на практике бывает так, что операции с временными таблицами быстрее


операции - нет - не быстрее :) а вот запросы с ипользованием временных таблиц и табличных переменных - да - по-разному работают за счет того, что статистики на табличные переменные не ведутся. а на временные таблицы - ведутся. причем поведение этого добра меняется от опций автосоздания / автообновления статистики на tempdb + наличия индексов на временные объекты
но даже без индексов поведение ЗАПРОСОВ с разными временными объектами - разное по указанной выше (статистики) причине
посему на практике для больших объемов лучше таблицы, для малых объемов - переменные
если в переменные лить большие объемы по опыту все сдыхает
17 июн 09, 12:09    [7309380]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить