Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 delete from a huge table  [new]
Hello world!11
Guest
VSEM PRIVET.

Est' huge clustered table (~100Gb, 1bln rows+) i 2 nonclutered indexes na ney. Kogda ja delaju


SET ROWCOUNT 100000;
delete t from t inner merge join #t on t.. = #t...

server udalaet 100k rows iz tablizi no potom prosto zavisaet na udalenii iz nonclustered indexsov (ja viju eto iz sys.partitions).
Processi chto pishut v etu tablizu v etot moment prosto blocked by etot process. Deadlocks net. Pochemu takoe povedenie? Kuda kopat'?


Microsoft SQL Server 2014 (SP2-CU10-GDR)
1 мар 18, 18:10    [21229736]     Ответить | Цитировать Сообщить модератору
 Re: delete from a huge table  [new]
Гавриленко Сергей Алексеевич
Member

Откуда: Moscow
Сообщений: 36685
Копать в сторону секционирования.
1 мар 18, 18:11    [21229742]     Ответить | Цитировать Сообщить модератору
 Re: delete from a huge table  [new]
Yasha123
Member

Откуда:
Сообщений: 1833
Est' huge, please use translit.net
a to figeem takoe chitat'
1 мар 18, 18:13    [21229750]     Ответить | Цитировать Сообщить модератору
 Re: delete from a huge table  [new]
Hello world!11
Guest
каким образом мне помоэт секционирование? идет удаление рандом данних которое захватит много секций при лубой функции секционирования :(

вопрос в другом - почему перестроение индекса занимает очен много времени?
1 мар 18, 18:26    [21229809]     Ответить | Цитировать Сообщить модератору
 Re: delete from a huge table  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 30698
Hello world!11
вопрос в другом - почему перестроение индекса занимает очен много времени?
Во первых, оно и может быть достаточно большое, в пределе нужно изменить > 100000 страниц, то есть 1 ГБ случайной записи на диск, или 100 000 операций IO. На каждый индекс.
Во вторых, убедитесь, что на вашу таблицу не ссылается какая то ещё бОльшая таблица, тогда, может, дело не в перестроении индексов.
1 мар 18, 18:32    [21229826]     Ответить | Цитировать Сообщить модератору
 Re: delete from a huge table  [new]
Hello world!11
Guest
аналогичная модель поведения если я удаляю 5к записей. нет никаких объектов типа кластеред представлений, нет форинов, тригеров или каскадних удалений.
каким образом можно посмотреть с какой скоростьу идет перестроение некластерного индекса?
1 мар 18, 18:44    [21229871]     Ответить | Цитировать Сообщить модератору
 Re: delete from a huge table  [new]
msLex
Member

Откуда:
Сообщений: 7723
Hello world!11
аналогичная модель поведения если я удаляю 5к записей. нет никаких объектов типа кластеред представлений, нет форинов, тригеров или каскадних удалений.
каким образом можно посмотреть с какой скоростьу идет перестроение некластерного индекса?



select *
from sys.partitions
where
object_id = object_id('t')
1 мар 18, 19:03    [21229918]     Ответить | Цитировать Сообщить модератору
 Re: delete from a huge table  [new]
Hello world!11
Guest
спасибо, но я указал в первом посту что именно ето представление исползую для просмотра, и вот как раз оно не показивает никаких измений в количестве строк некластерних индексов
1 мар 18, 20:12    [21230089]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить