Оракл программа что это такое простыми

риложения, использующие базы данных, сейчас составляют, наверное, подавляющее большинство коммерческих продуктов и заказных разработок, и вопросы, связанные с самими базами данных и с созданием использующих их приложений, освещаются в нашем издании достаточно регулярно вот уже более десятка лет — мы неоднократно писали и о средствах проектирования данных, и о технологиях доступа к данным, и о самих СУБД, и о средствах разработки приложений, которые обращаются к данным, и о генераторах отчетов и средствах анализа данных.

Сегодня мне хотелось бы рассмотреть еще одну категорию инструментов, считающихся вспомогательными, но при этом широко применяющихся при разработке приложений с базами данных, — утилиты, предназначенные для так называемой post-case-обработки баз данных, то есть для разнообразных манипуляций с базой данных, которые выполняются после ее проектирования в процессе разработки приложений. К таким манипуляциям могут относиться создание части серверного кода, реализующей нестандартную функциональность, внесение несложных изменений в структуру данных с целью исправления незначительных ошибок проектирования, заполнение данными части таблиц (например, справочников), генерация окончательной версии скрипта для поставки его конечным пользователям и ряд других операций.

Сейчас трудно найти СУБД, в комплект поставки которой не входят утилиты для администрирования баз данных и простейших манипуляций, таких как создание таблиц, ввод данных, создание серверного кода. Как минимум, приложение, позволяющее создавать пустую базу данных, вводить и выполнять SQL-запросы, имеется в составе почти любой серверной СУБД, а в большинстве случаев можно найти утилиты, предоставляющие более удобный интерфейс для манипуляции метаданными и данными, нежели ввод SQL-запросов. Правда, в ряде случаев административные утилиты могут включаться в наиболее дорогие версии серверных СУБД и не входить в состав стандартных или персональных версий. Вот тут-то и пригодятся продукты независимых производителей, способные заменить административные утилиты и во многих случаях оказывающиеся гораздо более удобными для разработчиков приложений.

Первая статья данного цикла будет посвящена инструментам, предназначенным для разработчиков решений на основе СУБД Oracle. В последующих статьях мы обсудим утилиты, полезные авторам приложений, использующих другие серверные СУБД.

Инструменты для авторов решений на основе Oracle

орпорацией Oracle создано довольно удобное многофункциональное приложение Oracle Enterprise Manager, позволяющее осуществлять вышеперечисленные действия с базами данных, управляемыми тремя последними версиями этой СУБД. Однако это приложение входит в комплект наиболее дорогих редакций этой СУБД — Oracle 8i Enterprise Edition, Oracle 9i Enterprise Edition, Oracle 10g Enterprise Edition. Пользователям же остальных редакций, равно как и разработчикам приложений на их основе, предлагается главным образом набор утилит, позволяющих осуществлять манипуляции с базой данных из командной строки, либо простейший редактор SQL-запросов SQL Plus. Но утилит, реализующих некоторые функции Enterprise Manager, равно как и ряд других функций, существует немало. Ниже мы рассмотрим некоторые из них.

Читайте также:
Hp unified io что это за программа

SQL Navigator (Quest Software)

SQL Navigator for Oracle 4.5 — весьма удобный инструмент для визуального редактирования данных и метаданных, генерации скриптов (в том числе и скриптов для заполнения таблиц данными). Этот инструмент содержит средства синтаксического выделения кода SQL и PL/SQL, инициирования компиляции кода, редактирования данных, экспорта результатов запросов в различные форматы, поддерживает многие особенности Oracle 10g (новые ключевые слова, типы данных, отображение хранения базы данных на нескольких дисках).

SQL Navigator (Quest Software)

SQL Navigator (Quest Software)

Oracle

Oracle Corporation — одна из крупнейших американских компаний, разработчик систем управления базами данных, инструментов для разработки баз данных, а также ERP-систем. Ведёт свою историю с 1977 года, имеет подразделения в более чем 145 странах по всему миру. По состоянию на 2010 год насчитывает 101 950 служащих.

Компания «Интерфейс» , является российским партнером Oracle , распространяет весь спектр программного обеспечения этой корпорации. Получить действительно хорошие знания и навыки работы с продуктами Oracle Вы сможете на курсах и бесплатных семинарах в Учебном Центре «Интерфейс».

Базы данных и опции

Oracle Database 12c

Опции 12с Enterprise Edition

Oracle Database 11g

  • Oracle Database 11g Standard Edition One (SE1)
  • Oracle Database 11g Standard Edition (SE)
  • Oracle Database 11g Enterprise Edition (EE)
  • Oracle Database 11g Personal Edition (PE)
  • Oracle Database Express Edition (XE)

Опции 11g Enterprise Edition

Администрирование баз данных

Oracle Database 10g

  • Oracle Database 10g Enterprise Edition
  • Oracle Database 10g Standard Edition
  • Oracle Database 10g Standard Edition One
  • Oracle Database 10g Personal Edition

Oracle Database 9i

Oracle Developer Suite 10g
— полный набор интегрированных средств для разработки Интернет-приложений. Включает удобную интегрированную среду разработки со средствами моделирования, программирования на Java, разработки компонентов, бизнес-анализа и составления отчетов. Все эти средства используют общие ресурсы, что позволяет совместно работать над одним проектом группе разработчиков.

Компоненты Oracle Developer Suite:

  • Oracle JDeveloper
  • Oracle Designer
  • Oracle Forms
  • Oracle Reports
  • Oracle Warehouse Builder
  • Oracle Discoverer
  • Oracle Programmer
  • Oracle Software Configuration Manager
  • Oracle Business Intelligence Beans

Oracle WebLogic Server EE
— это сервер приложений c высокой доступностью и исключительными диагностическими возможностями.

Oracle Application Server 10g
— основанная на стандартах интегрированная программная платформа, позволяющая организациям любого масштаба оперативнее реагировать на меняющиеся требования рынка.

Средства разработки Oracle Application Server (AS) 10g

  • Oracle AS Containers for J2EE / Web Services
  • Oracle HTTP Server
  • Oracle AS TopLink
  • Oracle AS Portal
  • Oracle AS Web Caching
  • Oracle AS Integration
  • Oracle Internet Directory
  • Oracle AS Personalization
  • Oracle AS Wireless
  • Oracle Business Intelligence
  • Oracle Identity Management

Программно-аппаратный комплекс Roses

Roses — поисковый аппаратно-программный комплекс для корпоративного пользования с широкими возможностями, основанный на технологиях Oracle Secure Enterprise Search и Russian Context Optimizer.

Читайте также:
Filesearchy что это за программа

05.2006

Структура российского рынка СУБД (отчет Gartner 2010) СУБД Oracle зарекомендовала себя как решение, более простое и экономически эффективное в управлении, чем другие базы данных. Показатели финансовой деятельности компании 2007 год

  • $ 5,974 млрд. операционная прибыль,
  • $ 4,274 млрд. чистая прибыль
  • $ 8,6 млрд. совокупные доходы
  • $ 3,6 млрд. доходы от продления лицензий на ПО и технической поддержки продуктов
  • Статьи о продуктах
  • Книги и документация по Oracle

Новости, пресс-релизы, рассылки

  • Новости и пресс-релизы
  • Подписаться на рассылку СУБД Oracle «с нуля»
  • Бесплатные семинары
  • Курсы обучения по продуктам Oracle
  • Прайс-лист
  • Техническая поддержка Oracle
  • Приобретение продуктов Oracle в электронном магазине

Источник: www.interface.ru

Oracle

Чтобы сделать усечение LOB-сегменту используется команда:

ALTER TABLE MODIFY LOB () (SHRINK SPACE);

Сбор статистики

  • для всей схемы

1execdbms_stats.gather_schema_stats(‘MY_USER’);

  • для отдельной таблицы

1execdbms_stats.gather_table_stats(‘MY_USER’, ‘MY_TABLE’, cascade=>true, force=>true, no_invalidate=>false, granularity=>’ALL’);

Изменение данных в таблице с сохранением истории изменений

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

1createtabletransform_rules2(idvarchar2(16),3oldvaluevarchar2(256),4newvaluevarchar2(256));56createuniqueindextransform_rules_idx1ontransform_rules(id);

Уникальный индекс надо создать обязательно, иначе не будет работать следующий update.

1update(selectt.value, m.newvalue2frommytablet, transform_rulesm3wheret.id= m.id)4setvalue= newvalue;

Мониторинг хода выполнения запросов

Время, прошедшее с момента запуска запроса и оценочное время до окончания можно получить запросом:

select /*opname, target,*/ sid||’,’||serial# as kill_sess, elapsed_seconds as «elaps/s», time_remaining as «remain/s», round((sofar*100)/totalwork) «%done», to_char(start_time,’hh24:mi:ss’) as started, sql_id||’ (‘||sql_plan_hash_value||’)’ as «sql_id (plan_hash)», message from v$session_longops where time_remaining > 0 order by start_time desc;

Мониторим состояние табличного пространства TEMP, которое используется для сортировки, а также при создании индексов:

select * from DBA_TEMP_FREE_SPACE;

Если нужно выполнить UPDATE-запрос изменяющий большое количество строк в таблице, то запустив его, можно воспользоваться следующим запросом, чтобы узнать сколько уже строк изменено:

1selects.sid,2s.username,3s.osuser,4s.module,5s.program,6tr.used_urec,7tr.

used_ublk8fromv$transactiontr, v$sessions9wheretr.SES_ADDR= s.saddr(+);

В колонке tr.used_urec как раз и отображается количество измененных строк. Но у меня почему-то показывает больше, чем реально изменяется

Ранжирование дублирующихся строк

Для того, чтобы выбрать из строк с дублирующимися колонками конкретную строку, можно в select-запрос в список выбираемых колонок добавить конструкцию:

row_number() over (partition by col1, col2, col3 order by col4) as idx

После этого можно выбрать, например, первую строку из дублей по условию idx=1

Мониторинг выполнения PL/SQL-процедуры

В ходе выполнения PL/SQL-процедуры пишем сообщения в

DBMS_APPLICATION_INFO.set_client_info(‘тра-ля-ля’);

Эти сообщения можем увидеть запросом:

select s.sid,s.username,s.osuser,s.module,s.program,s.client_info from v$session s;

Получение DDL инструкций по созданию всех view в схеме

select u.view_name, dbms_metadata.GET_DDL(‘VIEW’,u.view_name,u.owner) from all_views u where owner IN (‘USER_NAME’) order by view_name;

Получения скрипта для перекомпиляции всех невалидных объектов в схеме

select ‘ALTER ‘||replace(object_type,’BODY’)||’ ‘||owner||’.’||object_name||’ COMPILE ‘||case when object_type like ‘%BODY’ then ‘BODY’ END||’;’ from dba_objects where owner =» and status = ‘INVALID’;

Пример создания партиционной таблицы, разбитый на партиции по дням

CREATE TABLE «DM_AUDITTRAIL_S» partition by range(time_stamp_utc) interval (numtodsinterval(1,’DAY’)) (partition p0 values less than (date ‘2009-12-01’) tablespace DM_DOCBASE storage (initial 64k next 64k));

Преобразование списка строк в таблицу

select column_value from table(sys.odcivarchar2list( ‘s1’, ‘s2’, ‘s3’))

Запускаем SQL-скрипт из командной строки с выводом результатов в файл

Построение профиля для запроса

Профиль — это сохраненные хинты для запроса.

Имеем проблемный запрос. Определяем его SQL_ID.

Смотрим на план запроса:

SELECT * FROM table(DBMS_XPLAN.DISPLAY_CURSOR(‘969j7awa2dkff’, 0, ‘ALL ALIAS’));

Определяем, что не так и запускаем скрипт из библиотеки XT_SCRIPTS:

Создаем профиль с заданным именем.

После того можем увидеть наш профиль здесь:

SELECT * FROM DBA_SQL_PROFILES where name=’PROF_969j7awa2dkff’;

Сами хинты профиля можно увидеть здесь:

SELECT * FROM DBMSHSXP_SQL_PROFILE_ATTR attr where profile_name = ‘PROF_969j7awa2dkff’;

Вновь запускаем запрос и смотрим применился ли профиль:

SELECT sql_id, child_number, sql_profile, sql_plan_baseline from v$sql where sql_id=’969j7awa2dkff’;

Используется ли профиль также можно увидеть в плане запроса:

SELECT * FROM table(DBMS_XPLAN.DISPLAY_CURSOR(‘969j7awa2dkff’, 0, ‘ALL ALIAS’));

Для активации/деактивации профиля:

EXEC DBMS_SQLTUNE.ALTER_SQL_PROFILE(‘PROF_969j7awa2dkff’,’STATUS’,’ENABLED’); EXEC DBMS_SQLTUNE.ALTER_SQL_PROFILE(‘PROF_969j7awa2dkff’,’STATUS’,’DISABLED’);

Если нужно удалить профиль:

EXEC DBMS_SQLTUNE.DROP_SQL_PROFILE(‘PROF_969j7awa2dkff’);

Оптимизация запроса с помощью советчика Oracle

— формируем задачу на оптимизацию DECLARE l_sql_tune_task_id VARCHAR2(100); begin l_sql_tune_task_id := DBMS_SQLTUNE.create_tuning_task (sql_id => ‘969j7awa2dkff’, time_limit => 300, scope => DBMS_SQLTUNE.scope_comprehensive, task_name => ‘969j7awa2dkff_3_tuning_task’, description => ‘Tuning task for statement 969j7awa2dkff’); end; / — ищем более оптимальный план EXEC DBMS_SQLTUNE.execute_tuning_task(task_name => ‘969j7awa2dkff_3_tuning_task’); — смотрим рекомендации SELECT DBMS_SQLTUNE.report_tuning_task(‘969j7awa2dkff_3_tuning_task’) AS recommendations FROM dual; exec DBMS_SPM.LOAD_PLANS_FROM_CURSOR_CACHE(sql_id=>’969j7awa2dkff’) exec dbms_sqltune.create_sql_plan_baseline(task_name =>’969j7awa2dkff_2_tuning_task’, owner_name => ‘SYSTEM’, plan_hash_value => ‘PLAN_HASH_969j7awa2dkff_2’);

Работа с основными линиями запросов (baseline)

В Oracle 11 появился новый механизм управления планами выполнения запросов (SPM — sql plan management). Цель этого механизма — избежать неожиданного ухудшения плана запроса, возникающего при изменении статистики, версии и т.п. В нем появилась такая сущность как baseline (основная линия). Основная линия — это набор проверенных планов, разрешенных к выполнению.

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

Если профиль — это сохраненный набор хинтов, то baseline — это сохраненный план запроса

Находим информацию по baseline:

select * from dba_sql_plan_baselines where plan_name=’SQL_PLAN_4tp591zvdpys5115fb177′;
declare drop_result pls_integer; begin drop_result := DBMS_SPM.DROP_SQL_PLAN_BASELINE( sql_handle => ‘SQL_b988e3bde66bd6cd’, plan_name => ‘SQL_PLAN_bm273rrm6rpqdf3b60d10’); dbms_output.put_line(drop_result); end; /

Для добавления плана запроса в основную линию

VARIABLE retcode NUMBER EXECUTE :retcode := DBMS_SPM.load_plans_from_cursor_cache(sql_id =>’. ‘);

Вычисляем эффективность добавленного плана

SET LONG 10000; SELECT DBMS_SPM.evolve_sql_plan_baseline(sql_handle=>») FROM dual;

Работа с планами запросов

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

EXPAIN PLAN FOR SELECT .

Построенный предварительный план можно посмотреть командой:

SET LINESIZE 130; SET PAGESIZE 0; SELECT * FROM table(DBMS_XPLAN.DISPLAY(format=>’ALL ALIAS’));

Реальный план запроса можно просмотреть из кеша запросов:

SELECT sql_id, child_number FROM v$sql WHERE sql_text LIKE ‘. ‘; SQL_ID CHILD_NUMBER ———- —————————— gwp663cqh5qbf 0 SELECT * FROM table(DBMS_XPLAN.DISPLAY_CURSOR(‘gwp663cqh5qbf’, 0, ‘ALLSTATS LAST +cost +rows +bytes +outline +peeked_binds’));

Вывод результатов запросов в файл

set pagesize 0; set linesize 90; set wrap off; spool out.txt; SELECT . FROM . WHERE . quit;

Отображение времени выполнения запроса

set feedback on timing on

Источник: brkv.su

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru