Есть ли какие-либо преимущества от разделения Oracle на том же жестком диске? - PullRequest
3 голосов
/ 06 августа 2011

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

Ответы [ 2 ]

3 голосов
/ 06 августа 2011

Какое узкое место в вашем текущем процессе вставки? По «высокому параллелизму» в вашем вопросе я предполагаю, что вы говорите о приложении OLTP, в котором имеется большое количество вставок в одну строку, а не небольшое количество вставок из нескольких строк, которые были бы распространены в данных склад.

В сценарии OLTP относительно маловероятно, что разбиение сократит время, необходимое для вставки в одну строку. Предполагая, что вы уже устранили очевидные потери времени, такие как триггеры в таблице, большая часть накладных расходов, скорее всего, будет связана с обслуживанием индекса с небольшим количеством операций ввода-вывода для записи в журналы повторов. Разделение, скорее всего, не уменьшит ничего из этого, потому что в среде OLTP вы, как правило, не можете загрузить в промежуточную таблицу и выполнить обмен разделами, что уменьшит затраты на обслуживание индекса.

1 голос
/ 06 августа 2011

Ну, как и все остальное, это зависит.

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

Другим решением, если у вас есть проблемы с параллелизмом, является использование индексов обратного ключа для «одноногих» индексов, где индексированный столбец, заполненный последовательностью, заставляет продолжить разбиение на блоки. Однако использование индексов с обратным ключом препятствует использованию индекса при сканировании диапазона, поэтому будьте осторожны.

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

Так что это может помочь. Это также может ухудшить ситуацию. Без дополнительной информации о том, что добавляет время ожидания - если что-нибудь - Интернет не может помочь решить проблему.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...