Рекомендуется ли использовать одинаковые размеры экстентов в табличных пространствах Oracle? - PullRequest
4 голосов
/ 28 мая 2009

Я использую Oracle уже довольно давно с момента выпуска Oracle 8i. В то время я был новичком в базе данных, и меня учили, что при определении табличных пространств лучше всего использовать размеры экстентов постоянного размера.

Из того, что я прочитал, кажется, что сегодня, используя 10 / 11g, Oracle может автоматически управлять этими размерами экстентов, и что он может не поддерживать размеры экстентов постоянными. Я легко вижу, как это может более эффективно использовать дисковое пространство, но есть ли у них и недостатки. Я думаю, что это может быть время, чтобы отпустить прошлое в этом. (при условии, что мое прошлое учение было правильным в первую очередь)

Ответы [ 2 ]

8 голосов
/ 28 мая 2009

Да, за исключением очень необычных случаев, пришло время забыть о прошлом и использовать новые функции управления экстентами Oracle. Используйте локальные табличные пространства (LMT) и автоматическое определение размера экстента, и вам больше не придется об этом думать.

Как администратор баз данных, размер переменной степени меня сначала беспокоил, поскольку за 7,3 дня я потратил много времени на реорганизацию табличных пространств, чтобы устранить фрагментацию, возникшую в результате распределения экстентов с ненулевым процентным увеличением. (и вам потребовалось ненулевое процентное увеличение, поскольку максимальное количество экстентов было ограничено на разных уровнях в зависимости от размера блока базы данных, использованного при создании базы данных). Однако Oracle использует алгоритм для определения скорости и величины увеличения экстента, что эффективно устраняет фрагментацию.

Кроме того, забудьте обо всем, что вы слышали о том, как оптимальной является конфигурация таблицы или индекса в одном экстенте или что вы можете каким-то образом управлять вводом-выводом через конфигурацию экстента - это никогда не было правдой. Во времена табличного пространства, управляемого словарем, вероятно, существовало некоторое ограничение на управление тысячами экстентов в таблице словаря, но LMT использует растровые изображения, и это не проблема. Oracle буферизует блоки, а не сегменты.

3 голосов
/ 28 мая 2009

Если у вас неограниченное дисковое пространство с мгновенным временем доступа, вам вообще не нужно заботиться о экстентах.

Вы просто составляете каждую таблицу INITIAL 100T NEXT 100T MAXEXTENTS UNLIMITED PCTINCREASE 0 и забываете о экстентах на следующие 300 года.

Проблемы возникают, когда дисковое пространство не ограничено или время доступа варьируется.

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

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

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

В настоящее время дисковое пространство не имеет значения, а время доступа по-прежнему имеет значение.

Вот почему Oracle создал управление экстентами.

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

Так что, если у вас достаточно дискового пространства (т. Е. Ваша база данных займет менее половины диска в течение 5 лет), просто используйте автоматические экстенты.

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