Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
Топик располагается на нескольких страницах: Ctrl  назад   1 [2] 3   вперед  Ctrl      все
 Re: Постоянное чтение и запись из таблицы  [new]
o-o
Guest
Айдар Хаятов
Да, у этой темповой таблицы нет индексов. Понятно теперь. А растет почему? Статистики растут?

Deleting Rows from a Heap
автор
Deleting Rows from a Heap

When rows are deleted from a heap the Database Engine may use row or page locking for the operation.
As a result, the pages made empty by the delete operation remain allocated to the heap.
When empty pages are not deallocated, the associated space cannot be reused by other objects in the database.

To delete rows in a heap and deallocate pages, use one of the following methods.

Specify the TABLOCK hint in the DELETE statement.
Using the TABLOCK hint causes the delete operation to take a shared lock on the table instead of a row or page lock.
This allows the pages to be deallocated. For more information about the TABLOCK hint, see Table Hints (Transact-SQL).

Use TRUNCATE TABLE if all rows are to be deleted from the table.

Create a clustered index on the heap before deleting the rows. You can drop the clustered index after the rows are deleted.
This method is more time consuming than the previous methods and uses more temporary resources.
20 июл 17, 11:19    [20660598]     Ответить | Цитировать Сообщить модератору
 Re: Постоянное чтение и запись из таблицы  [new]
Айдар Хаятов
Member

Откуда:
Сообщений: 10
Все, понял! Прошу прощения, сразу не въехал. В куче после delete остаются страницы не удаленные.

Спасибо!
20 июл 17, 12:50    [20661095]     Ответить | Цитировать Сообщить модератору
 Re: Постоянное чтение и запись из таблицы  [new]
TaPaK
Member

Откуда: Kiev
Сообщений: 6801
Айдар Хаятов
Все, понял! Прошу прощения, сразу не въехал. В куче после delete остаются страницы не удаленные.

Спасибо!
омг, а не в куче?
20 июл 17, 12:51    [20661096]     Ответить | Цитировать Сообщить модератору
 Re: Постоянное чтение и запись из таблицы  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 7764
TaPaK,

разве сборщика мусора нет в сиквеле? Там же через какое-то время должна происходить возврат пустых страниц в общий пул.
20 июл 17, 13:41    [20661380]     Ответить | Цитировать Сообщить модератору
 Re: Постоянное чтение и запись из таблицы  [new]
o-o
Guest
TaPaK
Айдар Хаятов
Все, понял! Прошу прощения, сразу не въехал. В куче после delete остаются страницы не удаленные.

Спасибо!
омг, а не в куче?

а не в куче есть ghost cleanup task.

и потом, он же написал, что транкейтить ему не подходит,
не из-за прав, букв и т.д, а потому что
Айдар Хаятов
Таблица не полностью очищается - только для конкретного объекта. Truncate тут не подходит. Я уже его сделал как экстренную меру - когда таблица в 60мб стала весить 28гб.

так уж пусть из кластерного удаляет хотя бы
20 июл 17, 13:48    [20661432]     Ответить | Цитировать Сообщить модератору
 Re: Постоянное чтение и запись из таблицы  [new]
TaPaK
Member

Откуда: Kiev
Сообщений: 6801
Владислав Колосов
TaPaK,

разве сборщика мусора нет в сиквеле? Там же через какое-то время должна происходить возврат пустых страниц в общий пул.

а кто сказал что они не в ээээ общем пуле. Страница помечается как удаленная, место свободно, файл ессесно не ужжимается. Просто куча всё время пишется в конец и это место уже не используется, для индексов иначе.
20 июл 17, 13:49    [20661434]     Ответить | Цитировать Сообщить модератору
 Re: Постоянное чтение и запись из таблицы  [new]
TaPaK
Member

Откуда: Kiev
Сообщений: 6801
o-o,
автор
а не в куче есть ghost cleanup task.

что там, что там удаление одинаковая операция
20 июл 17, 13:50    [20661443]     Ответить | Цитировать Сообщить модератору
 Re: Постоянное чтение и запись из таблицы  [new]
o-o
Guest
TaPaK
Владислав Колосов
TaPaK,

разве сборщика мусора нет в сиквеле? Там же через какое-то время должна происходить возврат пустых страниц в общий пул.

а кто сказал что они не в ээээ общем пуле. Страница помечается как удаленная, место свободно, файл ессесно не ужжимается.

автор
As a result, the pages made empty by the delete operation remain allocated to the heap

никакие они не "общие", они остаются в собственности кучи.
потому ее размер и не уменьшается.
они все еще allocated to the heap
20 июл 17, 13:52    [20661458]     Ответить | Цитировать Сообщить модератору
 Re: Постоянное чтение и запись из таблицы  [new]
TaPaK
Member

Откуда: Kiev
Сообщений: 6801
o-o
TaPaK
пропущено...

а кто сказал что они не в ээээ общем пуле. Страница помечается как удаленная, место свободно, файл ессесно не ужжимается.

автор
As a result, the pages made empty by the delete operation remain allocated to the heap

никакие они не "общие", они остаются в собственности кучи.
потому ее размер и не уменьшается.
они все еще allocated to the heap
чтение первого слова реально утомляет, неправда ли?
20 июл 17, 13:54    [20661470]     Ответить | Цитировать Сообщить модератору
 Re: Постоянное чтение и запись из таблицы  [new]
o-o
Guest
TaPaK
o-o,
автор
а не в куче есть ghost cleanup task.

что там, что там удаление одинаковая операция

т.е. поэтому эти кретины из MS предлагают как способ борьбы создание кластерного, да?
20 июл 17, 13:54    [20661471]     Ответить | Цитировать Сообщить модератору
 Re: Постоянное чтение и запись из таблицы  [new]
TaPaK
Member

Откуда: Kiev
Сообщений: 6801
o-o
TaPaK
o-o,
пропущено...

что там, что там удаление одинаковая операция

т.е. поэтому эти кретины из MS предлагают как способ борьбы создание кластерного, да?
зачем?
20 июл 17, 13:55    [20661478]     Ответить | Цитировать Сообщить модератору
 Re: Постоянное чтение и запись из таблицы  [new]
o-o
Guest
TaPaK
чтение первого слова реально утомляет, неправда ли?

что-то я ничего не вижу перед "а кто сказал что они не в ээээ общем пуле",
т.е. для меня в вашем посте первое слово это "а".
может, его следовало 2 раза повторить?
автор
a а кто сказал что они не в ээээ общем пуле. Страница помечается как удаленная, место свободно, файл ессесно не ужжимается. Просто куча всё время пишется в конец и это место уже не используется, для индексов иначе.

так?
20 июл 17, 13:58    [20661500]     Ответить | Цитировать Сообщить модератору
 Re: Постоянное чтение и запись из таблицы  [new]
o-o
Guest
TaPaK
o-o
т.е. поэтому эти кретины из MS предлагают как способ борьбы создание кластерного, да?
зачем?

за тем
o-o
Айдар Хаятов
Да, у этой темповой таблицы нет индексов. Понятно теперь. А растет почему? Статистики растут?

Deleting Rows from a Heap
автор
Deleting Rows from a Heap

When rows are deleted from a heap the Database Engine may use row or page locking for the operation.
As a result, the pages made empty by the delete operation remain allocated to the heap.
When empty pages are not deallocated, the associated space cannot be reused by other objects in the database.

To delete rows in a heap and deallocate pages, use one of the following methods.

Specify the TABLOCK hint in the DELETE statement.
Using the TABLOCK hint causes the delete operation to take a shared lock on the table instead of a row or page lock.
This allows the pages to be deallocated. For more information about the TABLOCK hint, see Table Hints (Transact-SQL).

Use TRUNCATE TABLE if all rows are to be deleted from the table.

Create a clustered index on the heap before deleting the rows. You can drop the clustered index after the rows are deleted.
This method is more time consuming than the previous methods and uses more temporary resources.
20 июл 17, 14:01    [20661510]     Ответить | Цитировать Сообщить модератору
 Re: Постоянное чтение и запись из таблицы  [new]
TaPaK
Member

Откуда: Kiev
Сообщений: 6801
o-o
TaPaK
чтение первого слова реально утомляет, неправда ли?

что-то я ничего не вижу перед "а кто сказал что они не в ээээ общем пуле",
т.е. для меня в вашем посте первое слово это "а".
может, его следовало 2 раза повторить?
автор
a а кто сказал что они не в ээээ общем пуле. Страница помечается как удаленная, место свободно, файл ессесно не ужжимается. Просто куча всё время пишется в конец и это место уже не используется, для индексов иначе.

так?
для тугих, был ответ автору, в терминах автора. Общий пул таблицы, мне не известно определение, а вам
20 июл 17, 14:01    [20661512]     Ответить | Цитировать Сообщить модератору
 Re: Постоянное чтение и запись из таблицы  [new]
o-o
Guest
TaPaK,
а, ну я видимо уже привыкши к "слэйвам в кластере, на которых шлют лог с ребилдом", меня даже не проканало
20 июл 17, 14:04    [20661529]     Ответить | Цитировать Сообщить модератору
 Re: Постоянное чтение и запись из таблицы  [new]
TaPaK
Member

Откуда: Kiev
Сообщений: 6801
o-o,

для тугих #2: и как это относится к вопросу зачем? барану понятно, что создание и сразу удаление кластерного перестроит таблицу, REBUILD почему то кретины из ms не описали
20 июл 17, 14:05    [20661534]     Ответить | Цитировать Сообщить модератору
 Re: Постоянное чтение и запись из таблицы  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 7764
Но, всё же, почему сборщик не отбирает удалённые страница у кучи? Повторное использование понятно, но не очевидно.
20 июл 17, 14:05    [20661536]     Ответить | Цитировать Сообщить модератору
 Re: Постоянное чтение и запись из таблицы  [new]
TaPaK
Member

Откуда: Kiev
Сообщений: 6801
Владислав Колосов
Но, всё же, почему сборщик не отбирает удалённые страница у кучи? Повторное использование понятно, но не очевидно.
нельзя просто так взять и выдернуть страницу из кучи
20 июл 17, 14:08    [20661547]     Ответить | Цитировать Сообщить модератору
 Re: Постоянное чтение и запись из таблицы  [new]
o-o
Guest
TaPaK
o-o,

для тугих #2: и как это относится к вопросу зачем? барану понятно, что создание и сразу удаление кластерного перестроит таблицу, REBUILD почему то кретины из ms не описали

я удаление кстати и не советую, хватит навесить кластерный и оставить.
а почему не ребилд, потому что они не нашему ТС советуют,
а тем, кому, может, невозможно ребилдить.
может, у них размеры не позволяют, все же хорошее окно надо гигабайты ребилдить.
и потом, статью могли писать для версий ниже 2008,
а там не былo ребилда куч
20 июл 17, 14:11    [20661558]     Ответить | Цитировать Сообщить модератору
 Re: Постоянное чтение и запись из таблицы  [new]
TaPaK
Member

Откуда: Kiev
Сообщений: 6801
o-o,

я не спец в размерах а операцию, но создание/удаление кластерного разве будет меньше?
20 июл 17, 14:17    [20661583]     Ответить | Цитировать Сообщить модератору
 Re: Постоянное чтение и запись из таблицы  [new]
TaPaK
Member

Откуда: Kiev
Сообщений: 6801
o-o,

автор
я удаление кстати и не советую, хватит навесить кластерный и оставить.
может ms и не рекомендует пользоваться heap но к чему такая категоричность :)
20 июл 17, 14:18    [20661587]     Ответить | Цитировать Сообщить модератору
 Re: Постоянное чтение и запись из таблицы  [new]
o-o
Guest
TaPaK
o-o,

я не спец в размерах а операцию, но создание/удаление кластерного разве будет меньше?

так создать кластерный это 1 раз,
потом, если надо, можно реорг делать,
т.е. более не отправлять в оффлайн совсем.
а ребилдить кучу придется постоянно.
а может у кого-то нет окна под это на постоянной основе
20 июл 17, 14:20    [20661594]     Ответить | Цитировать Сообщить модератору
 Re: Постоянное чтение и запись из таблицы  [new]
aleksrov
Member

Откуда:
Сообщений: 948
Владислав Колосов
Но, всё же, почему сборщик не отбирает удалённые страница у кучи? Повторное использование понятно, но не очевидно.


https://blogs.msdn.microsoft.com/sqljourney/2012/07/27/an-in-depth-look-at-ghost-records-in-sql-server/
В комментариях автору задали именно этот вопрос.
21 июл 17, 07:47    [20663328]     Ответить | Цитировать Сообщить модератору
 Re: Постоянное чтение и запись из таблицы  [new]
Айдар Хаятов
Member

Откуда:
Сообщений: 10
Получается в обычной таблице (не куче), за счет индекса, таблица отдает старые неиспользуемые странциы - под новые записи? А в куче они остаются висеть - я верно понимаю?
21 июл 17, 09:26    [20663593]     Ответить | Цитировать Сообщить модератору
 Re: Постоянное чтение и запись из таблицы  [new]
aleksrov
Member

Откуда:
Сообщений: 948
Айдар Хаятов
Получается в обычной таблице (не куче), за счет индекса, таблица отдает старые неиспользуемые странциы - под новые записи? А в куче они остаются висеть - я верно понимаю?


В куче они остаются выделенные для обьекта и не могут быть использованы другими обьектами. Создайте кучу, залейте данные туда, потом удалите и увидите, что сколько она знамала столько она и занимает. Вставите строки вновь, и это место будет использовано занаво. В индексе же, после удаления строк, пустые страницы станут доступны для других обьктов после того как сработает gost cleanup, раз в 5 сек если не ошибаюсь.
21 июл 17, 10:12    [20663817]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: Ctrl  назад   1 [2] 3   вперед  Ctrl      все
Все форумы / Microsoft SQL Server Ответить