У меня есть огромная таблица (в Oracle 12c), которая, конечно же, нуждается в индексах. Эта таблица также обновляется очень часто, поэтому, если то, что я узнал, является правильным, то чем меньше индексов, которые у меня есть на этой таблице, тем лучше производительность, когда дело доходит до операций DML в указанной таблице.индексы, индексы, индексы
Конечно, я хочу иметь правильное количество индексов, чтобы запросы от него не пострадали.
Я собрал этот маленький пример для себя как своего рода руководство по созданию индексов. Это выглядит точным?
CREATE INDEX FOO ON FOO.BAR ("COL1", "COL2", "COL3"); -- COL1 should be the column which is most frequently queried
SELECT * FROM FOO WHERE COL1 = 'FOO'; -- uses index FOO
SELECT * FROM FOO WHERE COL1 = 'FOO' AND COL2 = 'BAR'; -- uses index FOO
SELECT * FROM FOO WHERE COL1 = 'FOO' AND COL2 = 'BAR' AND COL3 = 'BAZ' -- uses index FOO
Таким образом, не было бы никакой необходимости для одного индекса на col1 или на col2 .. если col3 опрашивается себя
(где COL3 = «бла»)
мне понадобилась бы индекс на col3.
если col2 и col3 опрашивались вместе
(где col2 = 'бла' и COL3 = 'blahblah')
тогда я должен был бы индекс на col2, col3 ... но если бы я был запрос, в котором col2 и col3 были использованы вместе, мне не понадобился бы ни один индекс на col. Как все это звучит?
«Огромный стол» - это термин, который означает разные вещи для разных людей. Расскажите, сколько строк, сколько столбцов, ваша ОС, сколько памяти выделено, какие проблемы с производительностью вы заметили, является ли это новой таблицей или существующей таблицей, производственной базой данных или тестом? – kevinsky
У меня есть таблица 200 ГБ с 200 ГБ индексов, которая обновляется ~ 170 раз в секунду ... контекст - это все, и вы должны делать то, что вам нужно. – Ben
стол размером 5 гигабайт и будет расти ... у него есть 24 столбца ... Я понимаю, что вещи обычно свойственны индивидуальной основе, но я просто искал некоторые общие сведения. ОС - SuSE, 4 гигабайта памяти. Испытайте базу данных, чтобы было больше ресурсов, приходящих на производство ... – benjamin