Гость
Map
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Индекс намного больше таблицы / 23 сообщений из 23, страница 1 из 1
02.12.2021, 11:02
    #40116656
Deemaas
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Индекс намного больше таблицы
Добрый день. Подскажите, пожалуйста, куда копнуть. Есть секционированная таблица 2 Гб (1 партиция) и у нее 483 партиции индекса на 70 Гб в сумме и каждый день растет, только и успеваю добавлять место в табличном пространстве.
...
Рейтинг: 0 / 0
02.12.2021, 11:27
    #40116663
SQL*Plus
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Индекс намного больше таблицы
Покажите скрипты на создание таблицы и индекса.
...
Рейтинг: 0 / 0
02.12.2021, 11:36
    #40116669
Asmodeus
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Индекс намного больше таблицы
Deemaas,

Для начала покажите, как считаете, и DDL объектов. Но вообще такое бывает при обилии INSERT-DELETE-INSERT циклов при работе ПО (происходит фрагментация индексов).
...
Рейтинг: 0 / 0
02.12.2021, 11:50
    #40116672
booby
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Индекс намного больше таблицы
Asmodeus
Deemaas,

Для начала покажите, как считаете, и DDL объектов. Но вообще такое бывает при обилии INSERT-DELETE-INSERT циклов при работе ПО (происходит фрагментация индексов).

при условии, что вновь вставленный в индекс ключ не совпадает с удаленным.
При этом должен заметно деградировать index full scan и диапазонный поиск, попадающий на образовавшиеся в индексе пустоты.
...
Рейтинг: 0 / 0
02.12.2021, 12:01
    #40116676
andrey_anonymous
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Индекс намного больше таблицы
DDL индекса должен дать ответ.
Подозреваю, что речь идет о глобально-секционированном либо функциональном индексе.
...
Рейтинг: 0 / 0
02.12.2021, 12:25
    #40116687
booby
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Индекс намного больше таблицы
если он локальный, партиции построены по не падающему на индекс правилу,
row movement между партициями разрешен, и ключ в индексе типа, на сиквенсе, то есть, перемещенное значение
не замещается аналогичным значением при последующих вставках в активную партицию,
то что бы могло предотвратить подобное поведение?

Это, кстати, к классическому вопросу о том, почему орм-ам страсть как нужны фиктивные ключи,
а базе данных они не обязательно во всех случаях хороши, могут оказаться и противны.
...
Рейтинг: 0 / 0
02.12.2021, 12:31
    #40116688
booby
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Индекс намного больше таблицы
booby
если он локальный, партиции построены по не падающему на индекс правилу,
row movement между партициями разрешен, и ключ в индексе типа, на сиквенсе, то есть, перемещенное значение
не замещается аналогичным значением при последующих вставках в активную партицию,
то что бы могло предотвратить подобное поведение?

Это, кстати, к классическому вопросу о том, почему орм-ам страсть как нужны фиктивные ключи,
а базе данных они не обязательно во всех случаях хороши, могут оказаться и противны.

а, полная очистка левого конца индекса должна была бы стабилизировать ситуацию.
Вероятно, она не полная.
...
Рейтинг: 0 / 0
02.12.2021, 12:41
    #40116696
PuM256
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Индекс намного больше таблицы
КМК, alter index coalesce поможет.
...
Рейтинг: 0 / 0
02.12.2021, 12:42
    #40116699
Deemaas
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Индекс намного больше таблицы
Немного подправил DDL-запрос, заменив реальные имена, т.к. не уверен, что могу отправить оригинальные

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
  CREATE INDEX "SCOTT"."IND#TABLE_IND" ON "SCOTT"."T#TABLE" ("DOG_REF", "DEBT_CODE", "DISTRIB_CODE", "PERIOD_IN_DAY") 
  PCTFREE 10 INITRANS 2 MAXTRANS 255  LOGGING 
  STORAGE(
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT) LOCAL
 (PARTITION "SYS_P52671" NOCOMPRESS 
  PCTFREE 10 INITRANS 2 MAXTRANS 255 LOGGING 
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
  TABLESPACE "USR" , 
  ...


И далее 500 партиций
...
Рейтинг: 0 / 0
02.12.2021, 12:52
    #40116703
PuM256
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Индекс намного больше таблицы
PuM256
КМК, alter index coalesce поможет.


Это я booby писал, не ТС.
...
Рейтинг: 0 / 0
02.12.2021, 12:55
    #40116707
booby
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Индекс намного больше таблицы
PuM256,

почему мне?
coalesce почти обязан помочь.
В общем, он имени борьбы с такого рода процессами и придуман.
Так что, тсу он интереснее может оказаться.
...
Рейтинг: 0 / 0
02.12.2021, 12:59
    #40116709
booby
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Индекс намного больше таблицы
Deemaas,

dog_ref какой природы зверь и что там с insert-delete-insert?
повторится у следующего insert-а полный ключ, или хотя бы dog_ref, если предыдущему сделали delete?
...
Рейтинг: 0 / 0
02.12.2021, 13:06
    #40116711
andrey_anonymous
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Индекс намного больше таблицы
Deemaas
секционированная таблица 2 Гб ( 1 партиция ) и у нее 483 партиции индекса на 70 Гб

Deemaas
Код: plsql
1.
  CREATE INDEX "SCOTT"."IND#TABLE_IND" ... LOCAL


И далее 500 партиций


Что-то концы не сходятся...
...
Рейтинг: 0 / 0
02.12.2021, 13:16
    #40116714
Deemaas
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Индекс намного больше таблицы
andrey_anonymous,

Да, вы правы я косякнул, партиций поровну, что таблицы что индекса, просто индексы весят намного больше.
...
Рейтинг: 0 / 0
02.12.2021, 13:18
    #40116715
andrey_anonymous
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Индекс намного больше таблицы
Ну тогда, видимо, все-таки вариация на тему coalesce, rebuild или rebuild online индекса и консультация с архитектором на тему модели его применения.
...
Рейтинг: 0 / 0
02.12.2021, 14:03
    #40116720
PuM256
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Индекс намного больше таблицы
Deemaas,

Что-то я не понял. 1 партиция таблиции весит 2 Гб, а все партиции индекса суммарно (в количестве 483 шт.) - 70? Где здесь намного больше? 1 партиция индекса весит в среднем 70/483 = 145 Мб, получается.
...
Рейтинг: 0 / 0
02.12.2021, 15:16
    #40116735
Deemaas
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Индекс намного больше таблицы
PuM256,

Вся таблица 2 Гб
...
Рейтинг: 0 / 0
02.12.2021, 15:48
    #40116748
PuM256
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Индекс намного больше таблицы
А покажите, как смотрите.
...
Рейтинг: 0 / 0
02.12.2021, 16:26
    #40116756
Deemaas
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Индекс намного больше таблицы
PuM256,

Код: plsql
1.
2.
3.
4.
5.
select segment_name, segment_type, sum(bytes)/1024/1024/1024 GB 
from dba_segments 
where 
segment_name = 'TABLE_NAME' 
group by segment_type, segment_name;
...
Рейтинг: 0 / 0
02.12.2021, 16:33
    #40116759
andrey_anonymous
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Индекс намного больше таблицы
При обращении с DBA_ и ALL_ не следует забывать про owner-а.
...
Рейтинг: 0 / 0
02.12.2021, 17:10
    #40116771
SQL*Plus
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Индекс намного больше таблицы
SQL*Plus
Покажите скрипты на создание таблицы и индекса.

Физические параметры хранения приводить не нужно.
...
Рейтинг: 0 / 0
14.12.2021, 12:52
    #40119905
Deemaas
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Индекс намного больше таблицы
Решение. Разработчик заложил слишком большой INITIAL у партиций индексов (140 Мб), несопоставимо больше чем партиции таблицы. Решилось полным пересозданием около 27 идексов и около 14000 партиций индексов с минимальным размером. Освободилось около 180 Гб
...
Рейтинг: 0 / 0
14.12.2021, 14:29
    #40119946
Вячеслав Любомудров
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Индекс намного больше таблицы
Похоже, это не разработчик заложил, а выполнялся импорт после экспорта без ключа compress=n
https://docs.oracle.com/en/database/oracle/oracle-database/12.2/sutil/oracle-original-export-utility.html#GUID-37B64353-A142-4978-852E-05020758E247
...
Рейтинг: 0 / 0
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Индекс намного больше таблицы / 23 сообщений из 23, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]