Oracle DBA Forum  

Вернуться   Oracle DBA Forum > Oracle University Official Study Notes (RUS) > База данных Oracle 10g Администрирование > База данных Oracle 10g Администрирование II

Ответ
 
Опции темы Опции просмотра
  #1  
Старый 10.10.2009, 13:44
Marley Marley вне форума
Senior Member
 
Регистрация: 19.09.2009
Сообщений: 7,385
По умолчанию 10 Управление объектами схем

__________________
Чат форума (требуется аккаунт на github или twitter)
Ответить с цитированием
  #2  
Старый 10.10.2009, 13:45
Marley Marley вне форума
Senior Member
 
Регистрация: 19.09.2009
Сообщений: 7,385
По умолчанию Рассматриваемые вопросы

__________________
Чат форума (требуется аккаунт на github или twitter)

Последний раз редактировалось Marley; 18.11.2009 в 15:16.
Ответить с цитированием
  #3  
Старый 10.10.2009, 13:46
Marley Marley вне форума
Senior Member
 
Регистрация: 19.09.2009
Сообщений: 7,385
По умолчанию Типы таблиц



Типы таблиц

Обычные (организованные в виде "груды", "heap-organized") таблицы были рассмотрены в курсе Oracle Database 10g: Администрирование I.

Секции (partitions) - части таблицы или индекса, создаваемые для облегчения управления очень большими базами данных (very large database, VLDB), которые могут содержать несколько терабайтов данных.

Данные таблиц, организованных в виде "груды" (heap-organized table), хранятся как неупорядоченные коллекции (груды или кучи, heap), В отличие от них в индекс-таблице (index-organized table, ЮТ) данные хранятся в структуре индексного В-дерева, отсортированные по главному ключу..

Кластер (cluster) - это группа из одной или нескольких таблиц, совместно использующих одни и те же блоки данных, поскольку эти таблицы содержат общие столбцы и часто используются вместе друг с другом.
__________________
Чат форума (требуется аккаунт на github или twitter)
Ответить с цитированием
  #4  
Старый 10.10.2009, 14:15
Marley Marley вне форума
Senior Member
 
Регистрация: 19.09.2009
Сообщений: 7,385
По умолчанию Что такое секция и для чего она используется?



Что такое секция и для чего она используется?

Секция - часть (piece) "очень большой" таблицы или индекса, хранящаяся в своем собственном сегменте. Поэтому такой секцией можно отдельно управлять. Примером "очень большой" таблицы является таблица хранилища данных, содержащая несколько гигабайтов данных. Секции могут быть разбиты дополнительно на подсекции (subpartitions) для повышения уровня управляемости и улучшения производительности.

Секционирование может способствовать улучшению производительности, так как многие запросы получают возможность игнорировать секции, не соответствующие предложению WHERE и поэтому не содержащие запрашиваемые строки. В итоге уменьшается объем полностью просматриваемых данных при получении результирующего набора (result set).

Операции над секционированными таблицами и индексами могут быть выполнены в параллель. В этом случае различным параллельно выполняемым серверным процессам выделяются для обработки различные секции таблицы или индекса.
__________________
Чат форума (требуется аккаунт на github или twitter)
Ответить с цитированием
  #5  
Старый 10.10.2009, 14:17
Marley Marley вне форума
Senior Member
 
Регистрация: 19.09.2009
Сообщений: 7,385
По умолчанию Секции



Секции

Каждая секция хранится в своем собственном сегменте и ей можно управлять отдельно. Она может использоваться независимо от других секций. Секция - структура хранения, позволяющая произвести лучшую настройку для обеспечения доступности и производительности.

В основе одной из возможностей параллельного выполнения лежит использование секций.

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

Секции и подсекции таблицы или индекса совместно разделяют одни и те же логические атрибуты. Например, все секции (или подсекции) в таблице разделяют определения одних и тех же столбцов и ограничений, и все секции (или подсекции) индекса разделяют одни и те же опции индекса. Однако физические атрибуты (например, TABLESPACE) могут отличаться. Хранение секций в отдельных табличных пространствах полезно для независимого резервирования и восстановления, контроля установления соответствия данных с дисковыми драйверами (балансировка ввода-вывода), а также для снижения вероятности повреждения данных.

Секционирование прозрачно для существующих приложений и обычных команд DML, выполняемых для секционированных таблиц. Однако при программировании приложения можно также воспользоваться преимуществами от использования в командах DML имен таблиц или индексов с указанием секций (partition-extended table or index names).

Дополнительные сведения о секционированных таблицах и индексах, включая методы секционирования, см. в документе Oracle Database Administrator's Guide.
__________________
Чат форума (требуется аккаунт на github или twitter)
Ответить с цитированием
  #6  
Старый 10.10.2009, 14:18
Marley Marley вне форума
Senior Member
 
Регистрация: 19.09.2009
Сообщений: 7,385
По умолчанию Создание секции



Создание секции

Database Control поддерживает различные типы секционирования таблиц и индексов и упрощает процесс их создания. Мастера (wizards) ведут вас по шагам процесса создания и предлагают возможные опции.

Выберите Administration > Tables. На странице Tables щелкните на кнопке Create, чтобы создать секционированную таблицу.

Выводится страница "Create Table: Table Organization", на которой можно выбрать создание неупорядоченной таблицы (heap-organized table) или индекс-таблицы (index-organized table). Щелкните на кнопке Continue для перехода на страницу Create Table. На этой странице указывается имя таблицы и другая информация. Щелкните на закладке Partitions, а затем на кнопке Create.

Открывается страница Create Partitions: Partitioning Method, приведенная на слайде. Она содержит точки входы в мастера создания секционированных таблиц. Примите решение о типе секционирования, а затем щелкните на кнопке Continue. Мастер ведет вас по шагам процесса создания , в ходе которого задаются столбцы, определяющие секции и их спецификации.
__________________
Чат форума (требуется аккаунт на github или twitter)
Ответить с цитированием
  #7  
Старый 10.10.2009, 14:19
Marley Marley вне форума
Senior Member
 
Регистрация: 19.09.2009
Сообщений: 7,385
По умолчанию Методы секционирования



Методы секционирования

Производительность при использовании секционирования по диапазонам (range partitioning) наилучшая, когда данные равномерно распределены по этим диапазонам.

Хэш-секционирование (hash partitioning) означает автоматическое равномерное распределение данных: АБД не может управлять тем, как конкретная строка попадает в секцию. Пример:

Код:
CREATE TABLE regions
(region_id NUMBER,   region_name VARCHAR2   (25)) PARTITION BY HASH   (region_id)
PARTITIONS 4  STORE IN   (tbsl,   tbs2,   tbs3,   tbs4);
В этом примере показана хэш-секционпрованная таблица. Распределение по секциям производится на основе столбца region_id. Создается четыре секции, им присваиваются имена, сгенерированные системой, сами секции располагаются в табличных пространствах tbsl, tbs2, tbs3, and tbs4.

Когда необходим полный контроль над распределением строк по секциям, задавайте в описании каждой секции списки (list) дискретных значений для столбца, на основе которого осуществляется секционирование. Например, это может быть код штата.

Смешанное секционирование на основе метода range-hash идеально подходит для хронологических (historical) и расщепляемых (striping) данных.

Секции, созданные на основе метода range-list, - это только логические структуры; их данные хранятся в сегментах подсекций.
__________________
Чат форума (требуется аккаунт на github или twitter)

Последний раз редактировалось Marley; 18.11.2009 в 15:18.
Ответить с цитированием
  #8  
Старый 10.10.2009, 14:21
Marley Marley вне форума
Senior Member
 
Регистрация: 19.09.2009
Сообщений: 7,385
По умолчанию Сопровождение секций



Сопровождение секций

После того, как секционированный объект был создан, его сопровождение можно осуществлять с использованием Database Control.

Выберите Administration > Tables. Щелкните на требуемой таблице. В результате выводится страница Edit Table. После щелчка на закладке Partitions открывается страница, показанная на слайде. На ней можно отметить требуемую секцию и применить к ней операцию сопровождения, которая выбирается в выпадающем списке поля Actions.

Примечание: для изменения характеристик хранения выбранной секции используйте кнопку Advanced Options.
__________________
Чат форума (требуется аккаунт на github или twitter)
Ответить с цитированием
  #9  
Старый 10.10.2009, 14:22
Marley Marley вне форума
Senior Member
 
Регистрация: 19.09.2009
Сообщений: 7,385
По умолчанию Индекс-таблицы



Индекс-таблицы

В отличие от обычной неупорядоченной (heap-organized) таблицы в нндекс-таблице (index-organized table, ЮТ) данные хранятся в индексной структуре в виде В-дерева, отсортированные по главному ключу. Кроме значений столбцов первичного ключа в В-дереве ЮТ также хранятся неключевые столбцы.

Индекс-таблицы поддерживают все возможности, предоставляемые таблицами, например, ограничения, триггеры, столбцы объектного типа и с типом LOB, секционирование, параллельные операции, реорганизацию в оперативном режиме и репликации. Для индекс-таблицы даже можно создавать индексы.

Индекс-таблицы идеально подходят для приложений OLTP, которые требуют наличие быстрого доступа к данным с использованием главного ключа и высокий уровень доступности. Запросы и операции DML над таблицей заказов, используемые при оперативной обработке заказов, основаны преимущественно на доступе по главному ключу.

Использование интенсивных операций DML вызывает фрагментацию и, следовательно, необходимость частых реорганизаций. Поскольку индекс-таблица может быть реорганизована в оперативном режиме без перевода в недействительное состояние вторичных индексов, временное окно недоступности данных значительно сокращается.


Индекс-таблица - это альтернатива для:

таблицы с индексом по главному ключу, созданному по команде CREATE INDEX;
таблицы, хранимой в индексном кластере, который был создан по команде CREATE CLUSTER и в котором устанавливается соответствие главного ключа таблицы и ключа кластеризации.
__________________
Чат форума (требуется аккаунт на github или twitter)
Ответить с цитированием
  #10  
Старый 10.10.2009, 14:24
Marley Marley вне форума
Senior Member
 
Регистрация: 19.09.2009
Сообщений: 7,385
По умолчанию Индекс-таблицы и обычные неупорядоченные таблицы



Индекс-таблицы и обычные неупорядоченные таблицы

Индекс-таблицы не имеют обычных (физических) ROW ID. Вместо них используются логические ROWID (logical rowids). Такие ROWID предоставляют более быстрый доступ к данных в индекс-таблице с использованием двух методов:

использование оценки физического расположения (physical guess); при этом время доступа эквивалентно времени доступа по физическим ROWID;
доступ без оценки (или после неправильной оценки); такие действия выполняются подобно доступу по главному ключу индекс-таблицы.

Оценка (guess) основывается на знании о файле и блоке, в котором находится запись. Такая информация верна, когда индекс создается, но изменяется, если листовой блок расщепляется. Если оценка неправильна и строка больше не размещается в указанном блоке, тогда для доступа к строке используется оставшаяся часть логического ROWID, содержащая главный ключ.

Oracle создает вторичные индексы (secondary indexes) для индекс-таблицы, используя логические ROWID, основанные на главном ключе таблицы. Так как строки индекс-таблицы не имеют постоянного физического адреса, оценки физического расположения могут устареть после перемещения строк в новые блоки.

Для обновления оценок необходимо перестроить вторичный индекс. Следует отметить, что перестройка вторичного индекса требует чтения базовой таблицы в отличие от перестройки индекса обычной таблицы.

Более быстрый и простой способ исправления оценок (guesses) - использование команды ALTER INDEX . . . UPDATE BLOCK REFERENCES. Она выполняется в оперативном режиме и операции DML разрешены над соответствующей индекс-таблицей.
После перестройки вторичного индекса или любых других изменениях ссылок на блоки в оценках, необходимо снова собрать индексные статистики.

Тип данных UROWID позволяет использовать в приложениях логические ROW ID таким же образом, как используются физические ROWID, например, как часть курсора или для выборки ROWID с целью последующего внесения изменений в данные. UROWID может также использоваться для хранения ROWID других баз данных, доступных через шлюзы.

Наконец, тип UROWID может также использоваться для ссылки на физические ROWID.
__________________
Чат форума (требуется аккаунт на github или twitter)
Ответить с цитированием
Ответ
Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход


Текущее время: 21:03. Часовой пояс GMT +3.


Powered by vBulletin®