Просторы интернета

19 Февраль 2015
Пт, Апр 21, 2017

I've wrote in previous post

4. Next row piece can be stored in the same block only with inserts. When you run update, oracle will place new row piece into another block.

But it's not valid anymore 🙂 Since 12.2 Oracle optimizes updates too.
You can check it on 12.2 and [...]

Source: orasql.org
Вт, Мар 28, 2017
Interval Range Partitioning

Oracle 11G brought with it a beautiful new twist to range partitioning – the ability to create partitions on-the-fly rather than having to pre-create all partitions.

Hello interval partitioning.

Before Oracle 11G, DBAs would have to define all the partitions on a partitoned table and ensure there were no "cracks" between [...]

Source: www.oratable.com
Ср, Фев 22, 2017
The plan_baseline hintset is just the list of hints SPM tried to use to reproduce the plan В ТОПе Library Cache периодически появлялся непривычный объект: необычайно крупного размера SHARABLE_MEM > 600MB с цифровым наименованием, под коим числилось 2 объекта: — судя по наименованям типов, относящихся к SQL Management Base, где [...]
Source: iusoltsev.wordpress.com
Пн, Фев 20, 2017

Recently I have had an issue with slow unicode migration of the database upgraded from 10g to The main problem was a table with xmltype: we spent about 4 hours for this table(~17GB) during test migration, though all other tables (~190GB) migrated just for about 20 minutes.
We used DMU(Database [...]

Source: orasql.org
Вс, Фев 12, 2017

You may know about Intra-block row chaining which may occur when the number of columns in a table are more than 255 columns.
But do you know that intra-block chaining works with inserts only? not updates!

Documentation says:

When a table has more than 255 columns, rows that have data after the 255th [...]

Source: orasql.org
Пт, Фев 10, 2017

For those new to SQL, terms like INNER JOIN and OUTER JOIN can seem like fearsome foes. As the wise say, understanding conquers fear. Behind those geeky terms lie concepts rooted in simple real-world knowledge.

Here's a quickstart guide to these two basic joins in SQL: INNER JOIN and OUTER JOIN.

Case [...]
Source: www.oratable.com
Вт, Фев 07, 2017
Grant Select on V$ Views

When querying v$instance or v$session[1] as a non-admin user, you might come across this error:

SQL> select version 2 from v$instance; from v$instance * ERROR at line 2: ORA-00942: table or view does not exist

The error suggests that the non-admin user does not have the SELECT privilege [...]

Source: www.oratable.com
Вт, Янв 31, 2017
Database Version

Just as you sometimes need to find out your database name when connected to Oracle, you may also need to find out your database version.

Here's a rundown of ways to identify the Oracle database version using SQL and PL/SQL.


V$VERSION displays version numbers of core library components [...]

Source: www.oratable.com
Пн, Янв 30, 2017
В процессе подготовки семинара, столкнулся с любопытным случаем, для адаптивного плана выполнения: *) в условиях реального отсутствия какого-либо Adaptive Bitmap Pruning! Неадаптивный план: Наибольший диссонанс вызвал вывод скрипта отличий секций Notes и Outline Data из OTHER_XML вышеприведённых планов выполнения: — точнее даже, несовпадение хинтов в Outline для планов с совпадающими [...]
Source: iusoltsev.wordpress.com
Вс, Янв 29, 2017
Коллега Леонид Борчук в процессе практического применения скрипта sql_profile_from_sql.sql обнаружил ошибку: и указал на ограничение: — т.е. нашёл-таки запрос с хинтом длиною более 500 символов! — для запросов OEBS нет пределов:) А, поскольку, в мировом масштабе, эта проблема уже была разрешена Carlos Sierra — Running "coe_xfr_sql_profile.sql Script (Shipped with SQLT) [...]
Source: iusoltsev.wordpress.com
Вт, Янв 24, 2017
Access Control Lists in Oracle

I recently upgraded Oracle XE from 10G to 11G, and found that none of the PL/SQL code using UTL_HTTP was working after upgrade. The code failed with the error:

declare * ERROR at line 1: ORA-29273: HTTP request failed ORA-06512: at "SYS.UTL_HTTP", line 1130 ORA-24247: network access denied by access control list (ACL) ORA-06512: at [...]
Source: www.oratable.com
Ср, Янв 11, 2017
UNPIVOT: Transpose Columns to Rows

Sometimes we need to transpose columns as rows in SQL. Oracle 11G onwards, this requirement can be easily implemented using the UNPIVOT clause.

A typical scenario:

Customer data is validated against a set of audit checks and the validation results are stored against the Customer Id as Y/N flags. The checks [...]

Source: www.oratable.com
Ср, Дек 14, 2016
Для демонстрации/проверки многообразия планов у меня есть простой скрипт SQL_PLAN_HASHS.SQL, вытаскивающий хеши планов из AWR и/или SqlArea по SQL_ID [и, опционально, по FULL_PLAN_HASH_VALUE и/или PLAN_HASH_VALUE], и один планов запросов SQL_ID=fkw6hb5mrw02t и PHV=3887377781 а течение последних нескольких дней показывал следующую примечательную картину: — в SqlArea (SRC=SQL) и в DBA_HIST_SQL_PLAN (SRC=AWR) этот [...]
Source: iusoltsev.wordpress.com
Пн, Дек 12, 2016

Внутри потоки мусора, которые можно и не смотреть.
Данная заметка специально создается для нищебродов, которые воруют чужие материалы.


1. οτεμψ "χιξσμου ι εηο οβιτατεμι

ΟΛΞΑ [...]

Source: orablog.ru
Ср, Ноя 30, 2016
После switchover-а на аналогичное железо в разы выросло время ожидания log file sync: — при этом в качестве важного промежуточного блокера в вышеприведённой цепочке по частоте и продолжительности неожиданно проявилось LGWR wait for redo copy (*), что было отчётливо заметно в цепочке ожиданий, начиная с LGWR any worker group: Ожидания [...]
Source: iusoltsev.wordpress.com
Ср, Ноя 30, 2016
Разбираясь с использованием ожидания/активности db file scattered read при разных операциях планов выполнения, можно видеть: (*) Scattered чтения без SQL_PLAN_OPERATION большей частью относятся к фазе Soft parse (***), определяемой здесь как промежуток, когда PLAN_HASH_VALUE уже сформирован (PHV exists), но выполнение запроса ещё не началось (SQL_EXEC_ID is null): (**) SAMPLE операции [...]
Source: iusoltsev.wordpress.com
Ср, Ноя 23, 2016
Select Conditionally

Let's say a table contains multiple rows for an id. The requirement is to select only one of those rows, based on the value in a "type" column which determines the row's priority.

A typical example is selecting one contact number for a customer, based on contact types.

The possible contact [...]

Source: www.oratable.com
Ср, Ноя 16, 2016
ORA-12560: TNS:protocol adapter error

Sometimes you try to login to your Oracle XE on your home computer, and get this curt blocking response:

Here's the top reason why it might happen and how to fix it.

Database is not up

The first thing to check: is the Oracle service running? If you are seeing ORA-12560:TNS protocol [...]

Source: www.oratable.com
Пн, Ноя 14, 2016
На прошлой неделе появилась полная версия документации Oracle Database 12c Release 2 , следом Mike Dietrich публикует триптих: New SPFILE parameters in Oracle Database Obsolete SPFILE Parameters Deprecated Parameters in Oracle Database , и Российский Oracle, по слухам, в конце месяца готовит целенаправленный семинар с более подробным [...]
Source: iusoltsev.wordpress.com
Пн, Ноя 14, 2016
Активизировавшаяся конкуренция за объекты Library Cache в форме ожиданий library cache lock, и в меньшей степени kksfbc child completion, library cache: mutex X: оказалось вызвана PX-slave процессами (P…) одного параллельно выполнявшимся запроса dx0fckp3gckku в стадии подготовки (IN_PARSE) адаптивного плана (SQL_ADAPTIVE_PLAN_RESOLVED = 1): , конкурировавшими за конкретный объект Library Cache типа [...]
Source: iusoltsev.wordpress.com
Чт, Ноя 10, 2016
На страничке Scripts — [почти полное] описание используемого набора скриптов (своих и позаимствованных), с практическими примерами применения и ссылками на zip и GitHub Хорошо работают в Command Window PL/SQL Developer, эпизодически проверяю в SQL*Plus и SQL Developer — там возможны проблемы оформления/форматирования, замечания и предложения пишите в комментариях к странице [...]
Source: iusoltsev.wordpress.com
Чт, Ноя 10, 2016
Источник Oracle Database 12c Release 2 (12.2) New Features

Добавлена PL/SQL pragma для пометки устаревших программных единиц.

Не обновленные материализованные представления могут быть использованы в query rewrite для получения корректного результата используя materialized view logs.

К событиям обновления материализванного представления ON COMMIT и ON DEMAND добавлено событие ON STATEMENT.

Добавлены [...]
Source: atyshenko.blogspot.com
Вт, Окт 18, 2016
В процессе разбора очередного случая с неправильными рез-том в Oracle*, на этот раз при параллельном выполнении запроса, и предварительно проверив варианты, перечисленные в How to Narrow Down Wrong Results Issues from Parallel Execution (Doc ID 1340246.1), по предложению представителя поддержки, проверил относительно новый функционал — DBMS_SQLDIAG с ключом PROBLEM_TYPE_WRONG_RESULTS [...]
Source: iusoltsev.wordpress.com
Пт, Окт 07, 2016
— дважды встречена на ADG Standby при выполнении запросов с использованием TEMP TABLE TRANSFORMATION после применения обновлений Database Patch Set Update : или Database Bundle Patch: (в виде [kteclck()+586]) Workaround в виде "_with_subquery = inline* был найден самостоятельно и быстро, а по ре-там SR, заведённого / доведённого Сергеем [...]
Source: iusoltsev.wordpress.com
Чт, Сен 22, 2016

Very simple example:

Test case set feed on; -- simple table: create table xt_curr1 as select level a,level b from dual connect by level create table xt_curr1 as select level a,level b from dual connect by level -- same table but with empty trigger: SQL> create table xt_curr2 as select level a,level b from dual [...]
Source: orasql.org
Ср, Сен 14, 2016
I. Параллельное выполнение UNION ALL PUSHED PREDICATE Иногда имеет смысл параллельное выполнение запроса с операцией UNION ALL PUSHED PREDICATE в плане, и если в 11g эту комбинацию воспроизвести просто — и на простом тесткейсе это выглядит так: , то в Oracle 12c (возможно, как рез-т исправления Bug 14217009 : WRONG [...]
Source: iusoltsev.wordpress.com
Чт, Авг 25, 2016
Из более-менее традиционной картинки ожиданий log file sync: — можно предположить, что для уменьшения log file sync достаточно сократить время/кол-во блокирующих ожиданий LGWR any worker group/LGWR all worker groups и target log write size, распределённых в этом случае приблизительно поровну И если первая группа ожиданий очевидно "упирается в кол-во/скорость работы [...]
Source: iusoltsev.wordpress.com
Ср, Авг 24, 2016
Евгений Калинин в очередной раз успешно сумел заставить Oracle выдать странное — на этот раз рез-т запроса (аналитических функции, CONNECT BY, SUBQUERY FACTORING, CASE, ANSI JOIN в комбинациях) с ошибкой в перечислении GROUP BY столбцов вместо ORA-00979 выдавал рез-ты, отличные от рез-тов правильного в части GROUP BY запроса, и, более [...]
Source: iusoltsev.wordpress.com
Ср, Июл 27, 2016
, представленная на Oracle Database Community Day 2016 (добавил комментарии на сером фоне): Небольшое дополнение и иллюстрация: 1) Распределение DYNAMIC SAMPLING LEVEL, указываемого в V$SQL_PLAN.OTHER_XML можно наблюдать следующее: 2) Практический случай, в котором ADS работает прекрасно, но практически бесполезно Свежий (без истории выполнения) запрос: — выполняется достаточно долго (9 сек!) [...]
Source: iusoltsev.wordpress.com
Пт, Июл 01, 2016
Коллега Александр Шведунов указал проблему: Из плана ошибочного запроса: — можно предположить, что ошибка может быть связана с обновлённой комплексной операцией BITMAP_TREE, определённой соответствующим хинтом Outline (*) — что оказалось верным, в комбинации с 12c Adaptive Plan (**) Т.е. при отключении или одного (‘_b_tree_bitmap_plans' ‘false'), или другого (‘_optimizer_adaptive_plans' ‘false') запрос [...]
Source: iusoltsev.wordpress.com
Комментирование отключено.