powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Организация индексов в большой таблице
25 сообщений из 25, страница 1 из 1
Организация индексов в большой таблице
    #39458244
sossisson
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Прошу советов по организации индексов в большой (более 2 млрд записей) таблице.
1) создание сжатого индекса повлияет ли на производительность и скорость выборок по этому индексу? Сильно ли замедлиться скорость вставок в таблицу? В день происходит добавление 5 млн новых записей.
2) есть ли смысл создавать составные индексы? или проще создать индексы из одного поля?
3) для каких полей подходят битовые индексы? или в больших таблицах они не используются?
...
Рейтинг: 0 / 0
Организация индексов в большой таблице
    #39458248
Вячеслав Любомудров
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сначала придумай ответ на вопрос "а для чего тебе индексы"
...
Рейтинг: 0 / 0
Организация индексов в большой таблице
    #39458251
123йй
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вячеслав Любомудров,
чтобы создавать такие темы
...
Рейтинг: 0 / 0
Организация индексов в большой таблице
    #39458262
Фотография Elic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
123ййчтобы создавать такие темыОднако система не набирает оборотов: за три года ежедневный приход не изменился.
...
Рейтинг: 0 / 0
Организация индексов в большой таблице
    #39458265
sossisson
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ну накинулись как коршуны)

Меня не устраивает огромность системы. Индексы занимают Тб, таблица тоже разрослась. Бэкап БД делается очень долго, особенно холодный. База уже более 6 ТБ. Вот и хочу малость разгрести, то что было понаделано до этого.
...
Рейтинг: 0 / 0
Организация индексов в большой таблице
    #39458280
Вячеслав Любомудров
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну так для этого в первую очередь ищутся "мертвые" индексы (если они, конечно, есть)
Мониторинг V$OBJECT_USAGE, планов

А так, да, каждый индекс -- это геморрой для обновлений, но если он необходим для поиска -- как правило, не надо от него отказываться

Ну и некоторые приложения просто сами автоматом достраивают (по их логике) необходимые индексы, например, на внешние ключи, когда тебе, как админу/пользователю ясно, что он не обязателен
...
Рейтинг: 0 / 0
Организация индексов в большой таблице
    #39458289
Фотография env
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sossissonболее 2 млрд записей)
А они точно все нужны?
...
Рейтинг: 0 / 0
Организация индексов в большой таблице
    #39458294
Вячеслав Любомудров
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Скорее вопрос, нужны ли они в одном сегменте
Может быть есть смысл секционировать табличку и старье убрать в ReadOnly
А вообще, сейчас такими объемами никого не удивишь
...
Рейтинг: 0 / 0
Организация индексов в большой таблице
    #39458300
ORA__SQL
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вячеслав ЛюбомудровМониторинг V$OBJECT_USAGEАга, только перед этим не забыть залочить статистику
...
Рейтинг: 0 / 0
Организация индексов в большой таблице
    #39458302
sossisson
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
env,
Да, записи все нужны. Босс говорит, что вдруг понадобятся. У меня была идея разделит таблицу на две: за прошлые года (архивную) и текущую в разных таблицных пространствах. Для архивного хранения пространство поставить только на read only.
Архивную сделать сжатой и индексы по ней тоже. Их текущей после завершения года данные переливать в архивную и пересоздавать ткущую базу и индексы.
Две таблицы объединить через вьюху и делать селекты по ней.

Такой вариант практикуется? Или слишком заморочено и толку не будет?
...
Рейтинг: 0 / 0
Организация индексов в большой таблице
    #39458306
Вячеслав Любомудров
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В смысле, сбор статистики?
Возможно

Таки интересней представляется анализ планов
Или col_usage$ (по памяти)

Только все это ломается, когда этот индекс нужен раз в месяц, но уж "нужен позарез"
...
Рейтинг: 0 / 0
Организация индексов в большой таблице
    #39458310
Вячеслав Любомудров
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sossissonenv,
Да, записи все нужны. Босс говорит, что вдруг понадобятся. У меня была идея разделит таблицу на две: за прошлые года (архивную) и текущую в разных таблицных пространствах. Для архивного хранения пространство поставить только на read only.
Архивную сделать сжатой и индексы по ней тоже. Их текущей после завершения года данные переливать в архивную и пересоздавать ткущую базу и индексы.
Две таблицы объединить через вьюху и делать селекты по ней.

Такой вариант практикуется? Или слишком заморочено и толку не будет?Тут лучше уже EE -- там все это можно, секционирование, сжатие исторических данных и т.д.
Для Standard Edition -- вариант через вьюху, не самый лучший, но, в принципе, существует много лет
...
Рейтинг: 0 / 0
Организация индексов в большой таблице
    #39458311
Фотография dbms_photoshop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Elic123ййчтобы создавать такие темыОднако система не набирает оборотов: за три года ежедневный приход не изменился.Так после пяти лямов же ступор. Наверное договорились с заказчиком скипать все остальное.
sossissonДве таблицы объединить через вьюху и делать селекты по ней.Про секционирование не слышал?
Или у вас миллиарды строк и лимитыд стандарт эдишн?
...
Рейтинг: 0 / 0
Организация индексов в большой таблице
    #39458316
sossisson
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
dbms_photoshop,
Слышали, не лаптями щи хлебаем.

Партиция с локальными индексами хорошо данные вставляет только когда новая, но через месяц-другой скорость замедляется.
Не понятно, есть ли какое-нибудь ограничение или рекомендации на сколько партиций можно разбивать таблицу или хоть на каждый день партицую можно создать?
...
Рейтинг: 0 / 0
Организация индексов в большой таблице
    #39458325
ora601
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sossisson,

В Качестве експеримента можно часть данных на другой сервер перенести и через дб-линк и вью. Если это такой солюшен устроит, то проблема с фулл бэкапом будет решена)
...
Рейтинг: 0 / 0
Организация индексов в большой таблице
    #39458333
Фотография dbms_photoshop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sossissonхоть на каждый день партицую можно создать?Ты не поверишь, многие так и делают.
И даже + sub-partitioning внутри дня.
Про лимиты - Maximum number of partitions .
...
Рейтинг: 0 / 0
Организация индексов в большой таблице
    #39458425
Фотография Vladimir Filin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sossisson,
делал автоматом новую партицию каждые 10 сек и partition exchange со смещением в 1 партицию. Работает как глухонемая прачка 1,5 года.
...
Рейтинг: 0 / 0
Организация индексов в большой таблице
    #39458451
Фотография dbms_photoshop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Vladimir Filinsossisson,
делал автоматом новую партицию каждые 10 сек и partition exchange со смещением в 1 партицию. Работает как глухонемая прачка 1,5 года.А можно узнать детали этого великолепного решения?
Число одновеременных сессий/потоков, объемы данных, особенности логики, и главное "нахрена"?

В Оракле крайне плохо дружат одновеременные DDL and DML на секционированных таблицах.
Код: plaintext
1.
Insert Statement On Partitioned Tables Is Restarted After Invalidation (Doc ID 1462003.1)
Bug 19461270 - high PRTMV allocations in shared pool executing concurrent DML and DDLs on interval partitioned tables (Doc ID 19461270.8)
и куча других подводных камней.

В свое время делали inhouse-partitioning и там приходилось очень хорошо дорабатывать напильником, чтоб все работало как надо в конкурентной среде на многомилионных объемах.
...
Рейтинг: 0 / 0
Организация индексов в большой таблице
    #39458479
Фотография Vladimir Filin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dbms_photoshop,
да, завтра напишу подробнее. Как-то я, видимо, не наступил на всяческие грабли partitioning-га.
В эту тему написал, т.к. Автор запросил инфу по минимальному интервалу - почему бы не ответить, раз есть некоторый опыт
...
Рейтинг: 0 / 0
Организация индексов в большой таблице
    #39458488
Фотография Vladimir Filin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Vladimir Filin,
может какая другая тема, более подходящая, найдётся? Всё ж тут про индексы
...
Рейтинг: 0 / 0
Организация индексов в большой таблице
    #39458491
ora601
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Vladimir Filin,

зачем тема , блог сразу пиши)
...
Рейтинг: 0 / 0
Организация индексов в большой таблице
    #39458497
Фотография dbms_photoshop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Vladimir FilinVladimir Filin,
может какая другая тема, более подходящая, найдётся? Всё ж тут про индексыТема огонь! Я обязуюсь предоставить развернутый фидбек.
...
Рейтинг: 0 / 0
Организация индексов в большой таблице
    #39458498
Фотография Vladimir Filin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dbms_photoshop,
хм... ну ладно, зажжжом тему

ora601,
не видать мне блогерского мегабабла с кликов да рекламы, всё не тем занимаюсь - партициии, да балки, что с них проку-то
...
Рейтинг: 0 / 0
Организация индексов в большой таблице
    #39459115
Фотография Vladimir Filin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dbms_photoshop,

сегодня не успею -- на работе работать приходится, очередной релиз отлаживается. Забивать на тему не буду, выложу.
...
Рейтинг: 0 / 0
Организация индексов в большой таблице
    #39459581
архiвaриюс
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
sossissonНе понятно, есть ли какое-нибудь ограничение или рекомендации на сколько партиций можно разбивать таблицу или хоть на каждый день партицую можно создать?

можно

Код: plsql
1.
2.
3.
4.
5.
6.
select  segment_type,  count(*) , sum(bytes) 
from  all_indexes i ,    dba_segments p    
where  (p.segment_name=i.table_name  or p.segment_name=i.index_name )
and i.owner=p.owner
and i.table_name = 'some_table'
group by segment_type



Код: plaintext
1.
2.
3.
TABLE PARTITION 22334 92496672915456
INDEX PARTITION 22334 3650209185792

...
Рейтинг: 0 / 0
25 сообщений из 25, страница 1 из 1
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Организация индексов в большой таблице
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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