zodchiy
@zodchiy
Фуллстэк с 2005

Удалил неиспользуемый Primary Key на 65 Гб, как вернуть производительность операциям DELETE/INSERT?

Есть таблица на 1 000 000 000 записей (растет на 2-3 млн в день), у нее есть поле ID (int, autoincrement, PK).
Проблема - индекс PK весит 65ГБ и это поле никогда и нигде не используется.
Я удалил PK (на 20 ядрах и 256Гб памяти это заняло 5 часов). Размер БД вырос на 110ГБ(?), производительность SELECT осталась прежняя, а вот производительность DELETE/INSERT упала в несколько раз.
Коллеги говорят, что без PK, таблица превратилась в "кучу", а от этого производительность DELETE/INSERT упадет.
Производительность DELETE/INSERT критична, т.к. таблица заполняет через триггер другой таблицы.
На других полях есть индексы, но их не сделать уникальными, и единственное уникальное поле, этот никому ненужный ID.
Есть еще два индекса, один для select, другой для delete, оба некластерных.
Удалить поле ID или поменять тип на менее прожорливый? Как повысить быстродействие DELETE/INSERT? Как вернуть таблицу из "кучи"?
  • Вопрос задан
  • 555 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы