Size: a a a

SqlCom.ru - Стиль жизни SQL

2020 July 22

А

Артем in SqlCom.ru - Стиль жизни SQL
Да, вроде с мсскл 2016 есть параметр, который позволяет перестройку без дропов соединений, локов на таблу и т.п.
источник

AB

Alexander Bondarchuk in SqlCom.ru - Стиль жизни SQL
Да я через smss думаю сделать, надеюсь она все параметры за меня подкинет )
источник

А

Артем in SqlCom.ru - Стиль жизни SQL
Надо почитать. Последний раз когда у меня пузырил индекс, это был пролив 108млн записей на пг. Там была возможность дропнуть все индексы для селектов из-за чего скорость в 20сек превратилась в 5
источник

А

Артем in SqlCom.ru - Стиль жизни SQL
На 20к записей
источник

А

Артем in SqlCom.ru - Стиль жизни SQL
Юники было нельзя, тк лилось с 3х независимых источников
источник

А

Артем in SqlCom.ru - Стиль жизни SQL
Где данные дублились
источник

А

Артем in SqlCom.ru - Стиль жизни SQL
Но не все :)
источник

AB

Alexander Bondarchuk in SqlCom.ru - Стиль жизни SQL
Понял, спасибо
источник

ДЗ

Дмитрий Зайцев... in SqlCom.ru - Стиль жизни SQL
Артем
Но не все :)
Артём, прочитайте правила канала, уважайте коллег, объединяйте сообщения
источник

А

Артем in SqlCom.ru - Стиль жизни SQL
Прошу прощения. Есть ещё способ. Если это не срочно, то просто льёшь в темп таблу, пишешь пакет удаления из нее и вставку в оригинальную таблу.  ставишь автоджобину или через go n и через час кидая пачками все будет.
источник

AB

Alexander Bondarchuk in SqlCom.ru - Стиль жизни SQL
спасибо большое. этот же способ можно использовать без переливания в оригинальную, а вообще полную замену старой таблицы. но тут уже от задачи зависит)
источник

К

Какой-то Хмырь... in SqlCom.ru - Стиль жизни SQL
Alexander Bondarchuk
в чём принципиальная разница между реорганизацией и перестройкой индекса будет?
Reorganize устраняет межстраничную фрагментацию, рибил устраняет фрагментацию еще и внутри страниц.
Реорганайз всегда онлайн + можно в любой момент остановить и потом заново начать м того места, где останрвилось.
Ребилд в онлайне только в ентерпрайз и девелопер едишн.
+ при онлайн ребилде скорее всего порядочно распухнет лог.
В какой-то версии... 2012 или 2014 до сервис пака был баг, что при онлайн ребилде с параллелизмом могли покорраптиться данные.
Но, надеюсь, ты ставишь обновления)


А и еще... Согласно гайдлайнам мс:
от 5% до 30% фрагментация - реорганайз,
>30% - ребилд.
Фрагментацию смотреть в sys.dm_db_index_physical_stats.

https://docs.microsoft.com/en-us/sql/relational-databases/indexes/reorganize-and-rebuild-indexes?view=sql-server-ver15
источник

AB

Alexander Bondarchuk in SqlCom.ru - Стиль жизни SQL
Какой-то Хмырь
Reorganize устраняет межстраничную фрагментацию, рибил устраняет фрагментацию еще и внутри страниц.
Реорганайз всегда онлайн + можно в любой момент остановить и потом заново начать м того места, где останрвилось.
Ребилд в онлайне только в ентерпрайз и девелопер едишн.
+ при онлайн ребилде скорее всего порядочно распухнет лог.
В какой-то версии... 2012 или 2014 до сервис пака был баг, что при онлайн ребилде с параллелизмом могли покорраптиться данные.
Но, надеюсь, ты ставишь обновления)


А и еще... Согласно гайдлайнам мс:
от 5% до 30% фрагментация - реорганайз,
>30% - ребилд.
Фрагментацию смотреть в sys.dm_db_index_physical_stats.

https://docs.microsoft.com/en-us/sql/relational-databases/indexes/reorganize-and-rebuild-indexes?view=sql-server-ver15
Великолепный ответ. Благодарю
источник

IZ

Ilia Zviagin in SqlCom.ru - Стиль жизни SQL
Alexander Bondarchuk
Всем привет. Подскажите, почему у таблицы с такими настройками constraint долго осуществляется insert и update? Обе эти операции осуществляю из select. который сам по себе отрабатывает максимум за 15 минут. а вот обновление и потом вставка, в рамках одной процедуры, длятся более 6 часов. Предполагаю что из-за индексов, которые можно увидеть на картинке
Ты просто неправильно мериишь время select
источник

IZ

Ilia Zviagin in SqlCom.ru - Стиль жизни SQL
Alexander Bondarchuk
Всем привет. Подскажите, почему у таблицы с такими настройками constraint долго осуществляется insert и update? Обе эти операции осуществляю из select. который сам по себе отрабатывает максимум за 15 минут. а вот обновление и потом вставка, в рамках одной процедуры, длятся более 6 часов. Предполагаю что из-за индексов, которые можно увидеть на картинке
Думает от трёх вшивых индексов, один из которых вообще обязателен, у тебя там что-то замедляется?
источник

IZ

Ilia Zviagin in SqlCom.ru - Стиль жизни SQL
Alexander Bondarchuk
если высокая фрагментация, ему трудно делать вставку и обновление, верно?
Бред
источник

IZ

Ilia Zviagin in SqlCom.ru - Стиль жизни SQL
Alexander Bondarchuk
ещё вопрос, на который ответ кажется очевидным - можно ли перестраивать/реорганизовывать индекс во время существующей сессии с таблицей? чем чревато?
Обычно любой DDL должен блокировать таблицу монопольно.
источник

IZ

Ilia Zviagin in SqlCom.ru - Стиль жизни SQL
Alexander Bondarchuk
Великолепный ответ. Благодарю
Главное, ни DDL , ни запрос не показал, "insert долгий" - "фрагментация! ДАаа!"
источник

AB

Alexander Bondarchuk in SqlCom.ru - Стиль жизни SQL
К чему все эти комментарии? Мне уже помогли более компетентные люди
источник

IC

Igor Chizhov in SqlCom.ru - Стиль жизни SQL
Alexander Bondarchuk
К чему все эти комментарии? Мне уже помогли более компетентные люди
Это уже факт, что совет "более компетентных" людей помог? Я бы поостерегся заниматься сравнением компетенций.
источник