12 вариант 2 (954078), страница 20

Файл №954078 12 вариант 2 (12 вариант 2) 20 страница12 вариант 2 (954078) страница 202017-12-26СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 20)

• Язык SQL не предназначен для обработки файлов. Одну из наиболее распространенных ошибок в программировании SQL допускают люди, имеющие опыт работы по программированию с исполь­зованием средств обработки файлов, таких как BTRIEVE или ISAM. Разработчики программного обеспечения не должны забывать, что для соотношений главный/подробный нужно писать два от­дельных запроса: один запрос — к главной записи, а другой — к расшифровке этой записи. Это позволит избежать лишних непроизводительных затрат обработки, которые могут заметно снизить производительность прикладных программ.

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

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

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

Для этой цели в Oracle предусмотрено инструментальное средство в форме EXPLAIN PLAN, которое позволяет DBA пропустить оператор SQL через оптимизатор Oracle и узнать, как этот оператор будет выполнен базой данных, то есть получить план выполнения. Это позволяет узнать, работает ли база данных согласно ожиданиям, например, использует ли она индекс таблицы, вместо того чтобы просматривать всю таблицу базы данных. Результаты, возвращаемые EXPLAIN PLAN, зависят от нескольких факторов. Они включают:

• Изменения в статистике во время работы базы данных под управлением стоимостного оптимизатора

• Использование подсказок HINTS во время работы с продукционным оптимизатором, которые за­ставляют запрос выбрать определенный план выполнения

• Добавление или удаление новых индексов на одной из таблиц в операторе SQL во время работы базы данных с продукционным оптимизатором

• Тонкие изменения в фразах WHERE или FROM оператора SELECT языка SQL во время работы базы данных с продукционным оптимизатором

• Наличие объектов базы данных с тем же именем, что и у объекта, на который производится ссылка в схеме пользователя, выполняющего запрос

Поэтому необходимо учитывать, что результаты EXPLAIN PLAN ни в коем случае не являются посто­янными и окончательными. DBA должен знать об изменениях, внесенных в объекты базы данных, напри­мер о новых индексах и о том, как быстро растут таблицы.

RDBMS Oracle использует EXPLAIN PLAN, сохраняя информацию о ходе выполнения запроса в таб­лице внутри схемы пользователя. Чтобы оператор EXPLAIN PLAN мог работать, эта таблица должна уже существовать. Для создания таблицы пользователь должен выполнить следующий сценарий. Безусловно, ем необходимо иметь привилегии CREATE TABLE и RESOURCE или привилегии квоты в своем табличном пространстве по умолчанию.

% svrmgri

SVRMGR> connect scott/tiger

Connected.

SVRMGR> @$ORACLE_HOME/rdbms/admin/utlxplan.sql

Statement Processed.

После создания этой таблицы можно выработать EXPLAIN PLAN из запроса, предварив этот запрос командой на выполнение EXPLAIN PLAN. Следующий сценарий показывает, как оформить запрос для EXPLAIN PLAN:

CONNECT /

EXPLAIN PLAN

SET STATEMENT_ID = 'QUERY1’

INTO PLAN_TABLE FOR

SELECT O.ORDER_DATE, O.ORDERNO, O.PARTNO, P.PART_DESC, O.QTY

FROM ORDER 0, PART P

WHERE O.PARTNO = P.PARTNO

Обратите внимание на фразы SET STATEMENT и INTO в EXPLAIN PLAN. Значение SET STATEMENT

используется для обеспечения уникальности результатов этого выполнения EXPLAIN PLAN, записанных в таблице; оно может представлять собой практически любую строку длиной до 30 символов. С другой сто­роны, указав таблицу в фразе INTO, вы сообщаете EXPLAIN PLAN, куда поместить информацию о вы­полнении запроса. В предыдущем примере текущее выполнение запроса обозначено как QUERY1, а его информация записана в таблицу PLAN_TABLE.

Теперь, когда EXPLAIN PLAN загрузил таблицу информацией, возникает очевидный вопрос — ка выбрать и интерпретировать полученную информацию. В Oracle предусмотрен сценарий, описанный в ру­ководстве Oracle8 Server Utilities Guide, который отображает информацию в древовидной форме. Он выглядит следующим образом:

SELECT LPADC ', 2* (LEVEL-1))||operation||' '|1

options, object_name "QUERY PLAN"

FROM plan_table

START WITH id = 0 AND statement_id = 'QUERY1'

CONNECT BY PRIOR id = parent_id

После выполнения запроса SQL через EXPLAIN PLAN будет получен псевдограф, аналогичный ни-1 жеприведенному:

QUERY PLAN

SORT

ORDER BY

NESTED LOOPS

TABLE ACCESS

BY ROWID

DETAIL

INDEX

RANGE

SCAN

DETAIL PK

INDEX

RANGE

SCAN

DETAILPK

NESTED LOOPS

OUTER

TABLE ACCESS

FULL

HEADER

TABLE ACCESS

BY ROWID

DETAIL

INDEX

RANGE

SCAN

DETAIL PK

INDEX

RANGE

SCAN

DETAILPK

TABLE ACCESS

FULL

HEADER

TABLE ACCESS

BY ROWID

DETAIL

INDEX

RANGE

SCAN

DETAIL PK

INDEX

RANGE

SCAN

DETAIL PK

TABLE ACCESS

BY ROWID

DETAIL

INDEX

RANGE SCAN

DETAIL PK

INDEX

RANGE SCAN

DETAILPK

FILTER

TABLE ACCESS

FULL

HEADER

TABLE ACCESS

BY ROWID

DETAIL

INDEX

RANGE

SCAN

DETAIL PK

INDEX

RANGE

SCAN

DETAIL PK

TABLE ACCESS

FULL

HEADER

TABLE ACCESS

BY ROWID

DETAIL

INDEX

RANGE

SCAN

DETAIL PK

INDEX

RANGE

SCAN

DETAILPK

NESTED LOOPS

OUTER

TABLE ACCESS

BY ROWID

DETAIL

INDEX

RANGE

SCAN

DETAILPK

INDEX

RANGE

SCAN

DETAIL PK

TABLE ACCESS

FULL

HEADER

TABLE ACCESS

BY ROWID

DETAIL

INDEX

RANGE

SCAN

DETAILPK

INDEX

RANGE

SCAN

DETAIL PK

Рассматривая эту выходную информацию, важно учитывать, что все операции, о которых сообщает FXPLAIN PLAN, по существу, представляют собой комбинации "операция/опция". Обсудить все эти ком­бинации или допустимые интерпретации сценариев EXPLAIN PLAN не представляется возможным. Как и во многих областях информационной индустрии, особенно в области реляционных баз данных, единствен­ным настоящим учителем является опыт. Ниже приведены наиболее распространенные пары "операция/ опция", возвращаемые при выполнении операторов EXPLAIN PLAN.

FILTER

INDEX/RANGE SCAN

INDEX/UNIQUE

MERGE/JOIN

SORT/GROUP BY

SORT/JOIN

SORT/ORDER BY

SORT/UNIQUE

TABLE ACCESS/FULL TABLE ACCESS/ROWID VIEW

Исключает строки из таблицы по условию, указанному в фразе WHERE оператора SQL

Осуществляет доступ к информации в таблице через неуникальный индекс (указанный в столбце objectname)

Осуществляет доступ к информации в таблице через уникальный индекс или индекс первичного ключа (указанный в столбце objectname)

Объединяет два отсортированных списка данных в единый отсорти рованный список; используется в многотабличных запросах

Сортирует данные таблицы, как указано в фразе GROUP BY оператора SQL

Выполняет сортировку данных из таблицы перед выполнением операции MERGE JOIN

Сортирует данные таблицы, как указано в фразе ORDER BY оператора SQL

Выполняет сортировку возвращенных данных таблицы и устраняет дубликаты строк

Выполняет полный просмотр таблицы базы данных для поиска и возвращения требуемых данных

Находит строку в таблице базы данных с использованием ее уникального идентификатора строки

Возвращает информацию из представления базы данных

В базе данных, в которой часто происходят (и ожидаются) полные просмотры таблицы, можно откорректировать параметр DBJUE_MULTIBLOCK_READ_COUNT в файле параметров INIT.ORA для обеспечения единовременного чтения большего числа блоков. Значение по умолчанию для этого параметра — восемь блоков.

EXPLAIN PLAN — мощное инструментальное средство для разработчиков программ, поскольку оно позволяет проверить правильность настройки запросов. Безусловно, изменения, внесенные в объекты базы

данных, могут неблагоприятно воздействовать на результаты EXPLAIN PLAN, но эти результаты полез­ны при определении потерь производительности в приложении.

Утилиты SQL*Trace и TKPROF

Средства Oracle SQL'Trace и EXPLAIN PLAN аналогичны в том, что они оба используются для на­стройки производительности на уровне приложения и показывают, в какой форме RDBMS Oracle выпол­няет запрос. В отличие от оператора EXPLAIN PLAN, который просто показывает, какой способ выполнения запроса выбирает оптимизатор базы данных для получения указанной информации, утилита SQL*Trace отображает количественные показатели выполнения SQL. SQL*Trace показывает не только план выполнения, но и такие показатели, как ресурсы процессоров и дисков. Ее результаты часто рассматри­вают как низкоуровневое представление способа выполнения запроса базы данных, поскольку она пока­зывает коэффициенты на уровне операционной системы и RDBMS.

Для использования SQL*Trace необходимо вначале установить некоторые параметры в файле параметров INIT.ORA:

MAX_DUMP_FILE_SIZE Обозначает максимальный размер файла, вырабатываемого Oracle. Это

значение представляет собой число блоков операционной системы „ (они могут отличаться по размеру от блоков базы данных). Ц

Характеристики

Список файлов домашнего задания

Свежие статьи
Популярно сейчас
А знаете ли Вы, что из года в год задания практически не меняются? Математика, преподаваемая в учебных заведениях, никак не менялась минимум 30 лет. Найдите нужный учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6381
Авторов
на СтудИзбе
308
Средний доход
с одного платного файла
Обучение Подробнее