Добро пожаловать в форум, Guest >> Войти | Регистрация | Поиск | Правила | | В избранное | Подписаться | ||
Все форумы / Microsoft SQL Server |
![]() ![]() |
Топик располагается на нескольких страницах: ←Ctrl назад 1 [2] 3 вперед Ctrl→ все |
AlphaDog Member Откуда: in the middle of nowhere Сообщений: 528 |
В любой непонятной ситуации читай документацию. https://www.sql.ru/articles/mssql/03013101indexes.shtml |
||||
9 сен 16, 10:31 [19646146] Ответить | Цитировать Сообщить модератору |
TaPaK Member Откуда: Kiev Сообщений: 6801 |
что вы, проблема сплита страницы это первая причина дедлоков, мы все знаем что PK это для красоты и вообще не ясно как он появляется, и тут главное вот здесь всё написано https://msdn.microsoft.com/ |
||||
9 сен 16, 10:35 [19646164] Ответить | Цитировать Сообщить модератору |
invm Member Откуда: Москва Сообщений: 9633 |
А еще поясните - как ваша рекомендация повлияет на остальные запросы к таблице?
|
||||
9 сен 16, 10:43 [19646208] Ответить | Цитировать Сообщить модератору |
AlphaDog Member Откуда: in the middle of nowhere Сообщений: 528 |
В отличии от вас, я дал ссылку на свою статью, а вы нет. |
||||
9 сен 16, 10:45 [19646210] Ответить | Цитировать Сообщить модератору |
AlphaDog Member Откуда: in the middle of nowhere Сообщений: 528 |
1 возможно уберет ненужные блокировки за счет уменьшения необходимости делать лишние сплиты. Дедлок может вполне появляться по причине эскплации блокировки 2 никак не повлияет. Особенно если построить кластерный индекс по любому короткому полю 3 вы хотите убрать мизерную добавку к перегруженному индексу? И какого результата вы ожидаете? |
||||||
9 сен 16, 10:52 [19646243] Ответить | Цитировать Сообщить модератору |
Гавриленко Сергей Алексеевич Member Откуда: Moscow Сообщений: 37143 |
Сообщение было отредактировано: 9 сен 16, 10:58 |
||||||
9 сен 16, 10:57 [19646275] Ответить | Цитировать Сообщить модератору |
TaPaK Member Откуда: Kiev Сообщений: 6801 |
AlphaDog,
напомнить что у нас update и вообще не кластерного поля? по прежнему сплиты будут? |
||
9 сен 16, 11:04 [19646312] Ответить | Цитировать Сообщить модератору |
invm Member Откуда: Москва Сообщений: 9633 |
|
||||||||
9 сен 16, 11:05 [19646318] Ответить | Цитировать Сообщить модератору |
o-o
Guest |
это вы нам сейчас вываливаете краткое содержание всего, прочитанного вами за последнее время? коней в вакууме обсуждаете или есть, что по этой теме сказать? граф делдока вообще смотрели? там блокировки ключа. что там куда эскалировалось? |
||||
9 сен 16, 11:10 [19646334] Ответить | Цитировать Сообщить модератору |
AlphaDog Member Откуда: in the middle of nowhere Сообщений: 528 |
Ребилд мало помогает для часто обновляемых таблиц с кластерным индексом на GUID Остальное отвечу позже. |
9 сен 16, 11:10 [19646340] Ответить | Цитировать Сообщить модератору |
TaPaK Member Откуда: Kiev Сообщений: 6801 |
Это как сказать: тыканье пальцем в стену не часто приводит к перелому ноги. Умеем лечить только зелёнкой, хоть геморой, хоть аyгину, снапшот автору предлагать будем? :) |
||
9 сен 16, 11:14 [19646358] Ответить | Цитировать Сообщить модератору |
o-o
Guest |
хватит тему засирать. не надо будет некластерный апдэйтить, дедлок уйдет. обсуждайте свои абстракции в другом месте или как минимум кончайте хаять осмысленные пути решения, не угодившие вам только тем, что автор не вы |
||||
9 сен 16, 11:15 [19646361] Ответить | Цитировать Сообщить модератору |
o-o
Guest |
Гавриленко, ну перенесите его уже в отдельную тему "щас я вам расскажу за жизнь by AlphaDog" |
||
9 сен 16, 11:16 [19646372] Ответить | Цитировать Сообщить модератору |
StarikNavy Member Откуда: Москва Сообщений: 2396 |
ну например 1с-ка тоже вся на этом. все тупые? |
||
9 сен 16, 11:18 [19646377] Ответить | Цитировать Сообщить модератору |
AlphaDog Member Откуда: in the middle of nowhere Сообщений: 528 |
Иди уже... |
||||
9 сен 16, 11:30 [19646437] Ответить | Цитировать Сообщить модератору |
AlphaDog Member Откуда: in the middle of nowhere Сообщений: 528 |
Ваша воля. У меня такое вылечилось именно описанным способом. |
||||
9 сен 16, 11:32 [19646442] Ответить | Цитировать Сообщить модератору |
AlphaDog Member Откуда: in the middle of nowhere Сообщений: 528 |
Вполне возможно. |
||||
9 сен 16, 11:33 [19646446] Ответить | Цитировать Сообщить модератору |
AlphaDog Member Откуда: in the middle of nowhere Сообщений: 528 |
Или есть сомнения, что Azure пишут более глупые чем 1С? https://azure.microsoft.com/en-us/blog/uniqueidentifier-and-clustered-indexes/ |
||||
9 сен 16, 11:37 [19646475] Ответить | Цитировать Сообщить модератору |
o-o
Guest |
нет, воля не моя, я не модератор, но он тут есть. давайте так: Гавриленко судья, расскажите, как смена ключа кластерного избавит от необходимости апдэйтить и кластерный, и некластерный с обновляемым полем в инклуде. и если вы сейчас будете нести прочие левости и никак не объясните, что же перестанет апдэйтиться после смены ключа кластеного: LatestAutoPostModifiedO в кластерном или LatestAutoPostModifiedO в некластерном, он вам закроет вход в эту тему, да? хотите еще нести, открываете свою тему и продолжаете свой выплеск там |
||||
9 сен 16, 11:43 [19646506] Ответить | Цитировать Сообщить модератору |
AlphaDog Member Откуда: in the middle of nowhere Сообщений: 528 |
А борьба идет ради избавления необходимости апдейтить индексы? Как мне казалось, для победы над дедлоком нужно стремиться к иному результату. |
||
9 сен 16, 11:49 [19646535] Ответить | Цитировать Сообщить модератору |
AlphaDog Member Откуда: in the middle of nowhere Сообщений: 528 |
Мы боремся же не с эскалацией и не с самими локами, да?
Учитывая, что в данной конфигурации таблицы и индексов, лукап дешевле выйдет, как и скан по новому короткому индексу, то заявление не вполне опрометчивое. Вообще, вся тема дедлоков, если они не могут быть разрешены на уровне выправления кода, должна и может говориться со словом "Возможно" - потому как единственное что можно попробовать сделать,это уменьшить длину транзакций. Это может привести к тому, что дедлоки уйдут. Либо вообще, либо их количество существенно уменьшится. |
||||||
9 сен 16, 11:55 [19646569] Ответить | Цитировать Сообщить модератору |
o-o
Guest |
жопа какая-то. и к чему же надо стремиться? перескажите нам суть данного дедлока своими словами, увиливатель хренов |
||
9 сен 16, 11:57 [19646590] Ответить | Цитировать Сообщить модератору |
invm Member Откуда: Москва Сообщений: 9633 |
use tempdb; go create table dbo.t1 ( id uniqueidentifier not null, LatestManualPostModifiedOn datetime null, LatestAutoPostModifiedOn datetime null, TypeCode int not null ); insert into dbo.t1 select top (10000000) newid(), getdate(), getdate(), 1 from master.dbo.spt_values a cross join master.dbo.spt_values b cross join master.dbo.spt_values c; select * into dbo.t2 from dbo.t1; select * into dbo.t3 from dbo.t1; alter table dbo.t1 add constraint PK_t1 primary key clustered (Id); alter table dbo.t2 add constraint PK_t2 primary key nonclustered (Id); alter table dbo.t3 add row_id int identity not null; alter table dbo.t3 add constraint PK_t3 primary key clustered (row_id); create unique nonclustered index IX_t3__id on dbo.t3(id); select * from sys.dm_db_index_physical_stats(db_id(), object_id('dbo.t1', 'U'), default, default, default); select * from sys.dm_db_index_physical_stats(db_id(), object_id('dbo.t2', 'U'), default, default, default); select * from sys.dm_db_index_physical_stats(db_id(), object_id('dbo.t3', 'U'), default, default, default); go declare @id uniqueidentifier = (select top(1) id from dbo.t2); set statistics io on; select * from dbo.t1 where id = @id; select * from dbo.t2 where id = @id; select * from dbo.t3 where id = @id; set statistics io off; go drop table dbo.t1, dbo.t2, dbo.t3; goМожете оценить глубину индексов и затраты на точечный поиск по id. ЗЫ: Конкретного ответа, чем же замена кластерного ПК на некластерный поможет ТС'у избежать дедлока, от вас так и нету. |
||
9 сен 16, 14:22 [19647349] Ответить | Цитировать Сообщить модератору |
o-o
Guest |
бисер перед свином, прости господи.
так он и дедлок-то не видел, просто прочел, что он есть в заголовке темы ![]() отсюда и эскалация (которой там нет) и сплиты при инсерте в кластерный (у ТС вообще-то апдэйт datetime-а, который ничего не сплитит, у datetime же фиксированный размер) а конкретные ответы он и не даст, ему же надо было пятнично высказаться за жизнь. навалил и отвалил ![]() |
||||
9 сен 16, 15:09 [19647603] Ответить | Цитировать Сообщить модератору |
invm Member Откуда: Москва Сообщений: 9633 |
|
||
9 сен 16, 15:48 [19647830] Ответить | Цитировать Сообщить модератору |
Топик располагается на нескольких страницах: ←Ctrl назад 1 [2] 3 вперед Ctrl→ все |
Все форумы / Microsoft SQL Server | ![]() |