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

19 Февраль 2015
Earlier
Пт, Фев 10, 2017
Joins

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.


Query V$VERSION

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. οτεμψ "χιξσμου ι εηο οβιτατεμι

π�ΟΘΟΔΡ ΝΕΦΔΥ ήΑΣΟΝ ΔΞΡ Ι Τ�ΕΝΡ ΠΟ νάΔΙΣΟΞ-ΑΧΕΞΐ, ΤΑΝ ΗΔΕ ΕΕ ΠΕ�ΕΣΕΛΑΕΤ
55-Ρ ΥΜΙΓΑ, ΞΕ ΠΟΜΕΞΙΤΕΣΨ, ΪΑΔΕ�ΞΙΤΕ ΗΟΜΟΧΥ Ι ΧΪΗΜΡΞΙΤΕ ΧΧΕ�Θ — ΞΑ ΞΕΝΩΤΩΕ
ΟΛΞΑ [...]

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 12.2.0.1 Obsolete SPFILE Parameters 12.2.0.1 Deprecated Parameters in Oracle Database 12.2.0.1 , и Российский 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 12.1.0.2.*, на этот раз при параллельном выполнении запроса, и предварительно проверив варианты, перечисленные в 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 : 12.1.0.2.160419 или Database Bundle Patch: 12.1.0.2.160719 (в виде [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
Ср, Июн 29, 2016
Наблюдали с Русланом Бикбаевым на обычном, не-EXADATA RAC с ADG 12.1.0.2 проблему Bug 22364629 : EXADATA: ORA-29771: PROCESS USER BLOCKS LGWR FOR MORE THAN 70 SECONDS — казалось бы, мало ли в Oracle 12c багов?) Тут интересно, что блокером для LGWR выступают пользовательские процессы (+PX-slaves), выполняющие известный* рекурсивный запрос frjd8zfy2jfdq, [...]
Source: iusoltsev.wordpress.com
Пн, Июн 13, 2016

This is just another solution of this problem for a chessboard, but you can choose any size of the checkerboard:

with t as (select level i, cast(level as varchar2(1)) c from dual connect by level [...]
Source: orasql.org
Пн, Июн 13, 2016

This is just another solution of this problem for a chessboard, but you can choose any size of the checkerboard:

with t as (select level i, cast(level as varchar2(1)) c from dual connect by level [...]
Source: orasql.org
Вс, Июн 05, 2016
Определение, приведённое ранее: оказалось неполным, и в этом, как обычно, помогла проблема с планом критичного запроса типа: , который, как обычно неожиданно, из 2-х планов выбрал худший (PHV 2429571734 — второй по счёту в нижеприведённом сравнении) — с использование комбинации двух BITMAP ROWIDS индексных пребразований, соответствующих 2-м вхождениям/использованиям оператора OR [...]
Source: iusoltsev.wordpress.com
Пт, Июн 03, 2016
Наблюдали с коллегами запрос, часами не выходящий из фазы Hard Parse: — и так не сформировавшему за 8 часов плана выполнения! Оказалось, что поведение запроса поменялось после незначительных изменений в тексте запроса (что ожидаемо и неудивительно), запрос "плотно висел ON CPU, oradebug dump errorstack 3 стабильно указывал: на вызов qksopFindStrtype [...]
Source: iusoltsev.wordpress.com
Комментирование отключено.