Архитектура баз данных
Оценить
(0 голоса)
Звездообразная схема описывается в разделе "Хранилища и киоски данных" главы 6. Их характерные особенности предоставили поставщикам СУБД творческие возможности для оптимизации доступа к данным. Например, для выявления наличия определенных значений в столбцвх таблицы фактов могут быть построены битовые массивы поразрядного представления. Там, где предикаты связываются выражениями AND, для исключения строк, не соответствующих определенным значениям, с битовыми массивами может использоваться двоичная математика. Подобным же образом битовые массивы могут использоваться для обработки предикатов, соединенных выражениями OR. Выполнение плана запроса Как только оптимизатор запросов принял решения по методу доступа, порядку и методу объединения таблиц, запрос может быть выполнен. Объединения обычно включают до четырех…
Оценить
(0 голоса)
Одним из способов значительного сокращения тома обрабатываемых данных является разбивка данных на разделы или фрагменты, в результате чего вообще отпадает необходимость обращения к некоторой группе данных. Например, данные, часто извлекаемые по дате, можно разделить по различным дисковым областям в соответствии с месяцем. Предикат запроса, определяющий даты в диапазоне с июля по сентябрь 2001 года, становится впоследствии сигналом оптимизатору для игнорирования тех дисковых разделов, которые не содержат данных по этим месяцам. При запросах без предикатов по дате будет произведено обращение ко всем дисковым разделам. Подобное разделение данных называется разбивкой по диапазонам, которая может оказаться довольно продуктивной, хотя ее польза ограничивается статической…
Оценить
(0 голоса)
Табличные объединения расходуют значительное клоичество ресурсов ЦП, поэтому. если объединения могут быть исключены, производительность выполнения запросов повысится. Такое потенциальное улучшение является одной из главных причин выполнения пользователями периодической деиормализации таблиц хранилища данных. Денормализация означает, что в некоторой таблице содержатся продублированные данные для предотвращения объединения с другой таблицей, которая обычно хранила бы эту информацию. Например, таблица запасных частей может включать столбец с идентификаторами поставщиков, который является внешним ключом, указывающим на таблицу поставщиков. Чтобы ускорить выполнение запросов, соединяющих информацию таблиц запасных частей и поставщиков, при нахождении фамилии поставщика, ее можно бы было включить непосредственно в таблицу запасных частей, исключая необходимость объединения. Несмотря…
Оценить
(0 голоса)
Если все необходимые для запроса столбцы могут быть найдены в индексе, то оптимизатору проще выбрать операцию сканирования индекса вместо обращения ко всей базовой таблице. Concatenated indexes - сцепленные индексы - обладают тем преимуществом, что включают дополнительные столбцы в конце индексного ключа, которые не являются необходимыми для проведения индексирования. Тщательный отбор сцепленных индексов позволяет некоторым запросам полностью выполняться лишь на основе информации индекса. Ранее существовало мнение, что создание индекса может повысить производительность запроса, если предикаты запроса являются достаточно селективными (избирательными), чтобы отфильтровать не более 0.5-2% таблицы. Это ограничение не применимо к сцепленным индексам, которые позволяют обойти базовую таблицу, поскольку сканирование индекса…
Оценить
(0 голоса)
Представление, или разрез, базы данных - это простой сохраняемый код SQL, представляющий виртуальную таблицу и ее столбцы. Представление часто упрощает более сложный внутренний код, включая многотабличные объединения и агрегацию. Хотя представление и выглядит как ссылка на реальную таблицу базы данных, собственно "таблица", на которую ссылается представление, на самом деле не существует. Materialized views - материализованные представления - изменяют природу обзоров путем их выполнения и постоянного сохранения результатов так же, как и для обычных таблиц. Как отмечено в названии, результаты представления мгновенно отображаемы, или материализованы. Сложные представления и запросы в больших таблицах требуют много времени на их выполнение. Предварительно вычисляя искомый…
Оценить
(0 голоса)
"Если оптимизатор баз данных разочарует вас, вы всегда можете преодолеть возникшие неудобства." Эта точка зрения продержалась на протяжении продолжительного периода в некоторых средах хранилищ данных, хотя оптимизаторы запросов в последние годы были значительно улучшены. Цитата может иметь смысл для тех СУБД, которые разрешают пользователям давать подсказки оптимизатору. Например, Oracle допускает самые разнообразные подсказки, включая следующие: •             Игнорирование индексов и выполнение полного сканирования таблицы. •             Использование индексного сканирования для указанной таблицы. •             Выполнение хэш-объединения. •             Выполнение объединения вложенного цикла. •             Выполнение объединения путем сортировки-слияния. •             Объединение таблиц в порядке, описанном в предложении from. Не все СУБД допускают возможность подсказок, это относится…
Оценить
(2 голоса)
Доминирующее положение СУБД Oracle на рынке Unix объясняется огромной пользовательской базой на системах Sun. В этой главе мы проанализируем архитектуру Oracle, уделяя особое внимание модели процессов, управлению памятью и хранению данных. Также будут рассмотрены вопросы, касающиеся параллельной обработки. Модель процессов Oracle организуется на основе экземпляра, состоящего из памяти совместного использования и группы процессов системы БД. Экземпляром может быть открыта только одна база данных, хотя вначале экземпляр может быть запущен вообще без какой-либо смонтированной или открытой базы данных. Технология RAC (Real Application Clasters - кластеров реального приложения, известная ранее как Oracle Parallel Server, или OPS) разрешает нескольким экземплярам открывать одну и…
Оценить
(1 голос)
Эффективная выгрузка грязных блоков необходима для повышения производительности, поскольку она гарантирует доступность чистых блоков для новых транзакций. Если чистых блоков недостаточно, транзакции будут заблокированы до тех пор, пока DBWR не выполнит достаточной очистки. Как и в Огасlе8, редакторы БД используют запись DBW/г, отражая тем самым поддержку множества редакторов. В средах с интенсивным обновлением при наличии больших буферных кэшей множество DBWR позволяет Oracle поддерживать требования по очистке буферов. •             LGWR. Процесс Log Writer (редактора журнала) записывает элементы отката операций из буфера журнала отката в SGA в журналы отката на диске. Этот процесс также важен для производительности, поскольку фиксации транзакций не будут…
Оценить
(1 голос)
В дополнение к системным процессам Oracle каждое пользовательское подключение обладает специальным теневым процессом, или серверным процессом, который подсоединяется к SGA и считывает из БД файлы по команде пользовательского приложения. Каждый теневой процесс также обладает своей собственной областью памяти, называемой PGA (program global area - программной глобальной областью). На рисунке 9.1 показана 2п-архитектура одиночного сервера; клиентские приложения также могут выполняться в отдельных клиентских системах. Процессы приложений подсоединяются к теневым процессам, которые, в свою очередь, подключаются к SGA. Если процессы приложений, выполняемые на дистанционной клиентской системе, подсоединяются к Oracle, то запрос соединения обрабатывается процессом listener (слушатель). Listener запускает теневой процесс со стороны…
Оценить
(1 голос)
Oracle применяет выделенную область памяти, совместно используемую системными и теневыми процессами, и кроме этого персональные области памяти, используемые индивидуальными теневыми процессами. Область памяти совместного использования базы данных играет ключевую роль в функционировании экземпляра Oracle. Она предусматривает область хранения, которая совместно используется такими объектами, как блоки базы данных и оптимизированные операторы SQL, и может быть кэширована для использования другими процессами. Она также облегчает связь между системными процессами Oracle (например, информация о совместном блокировании). Oracle относится к этой области памяти совместного использования как к SGA (system global area - системной глобальной области). SGA состоит из следующих основных компонентов: •             Буферный кэш блоков…