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

19 Февраль 2015
Earlier
Ср, Дек 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
Пн, Май 30, 2016
AWR классифицирует запросы в части I/O по след.метрикам: SQL ordered by User I/O Wait Time — соответственно по User I/O Time, кол-ву ожиданий и потраченному DB Time, что соответствует распределению строк в ASH SQL ordered by Reads, отсортированному по Physical Reads (in blocks) SQL ordered by Physical Reads (UnOptimized), упорядоченному [...]
Source: iusoltsev.wordpress.com
Чт, Май 12, 2016

Sometimes it is convenient to copy jar-files automatically after a build into several different directories, for example if you have different config files for local tests and for office test server, then you may want to copy these files into local test directory, internal office test server and public distribution [...]

Source: orasql.org
Пт, Май 06, 2016
Краткосрочный всплеск ожиданий типа Cluster: был вызван сформирован* в бОльшей части двумя SQL с типом команд SELECT (без FOR UPDATE), выполнявшимися на 2-м инстансе: Формально проблемы этих 2-х запросов были локализованы в промежутке 12:06:29 — 12:11:17 когда эти два SELECT-а блокировали, в основном, друг друга: Основная конкуренция при этом наблюдалась [...]
Source: iusoltsev.wordpress.com
Ср, Апр 27, 2016
Для ответа на вопрос типа "Кто кого блокировал 21 апреля в период между 03:00 и 03:30 ? можно посмотреть в соответствующий AWR и определить: 1) собственно факт вероятного наличия проблемы: 2) проблемное ENQUEUE ожидание: 3) страждущий запрос(ы) по наименованию ожидания: 4) блокирующие сессии: — тут уже не очень понятно: нет [...]
Source: iusoltsev.wordpress.com
Вт, Апр 19, 2016
Причины длительного выполнения запросов с обширным планом бывает непросто увидеть/определить как в связи объёмом, так и в связи с ненадёжностью / периодическим прерыванием функционирования DBMS_SQLTUNE.REPORT_SQL_MONITOR сообщениями типа: — для всё ещё продолжающих выполняться запросов Идея скрипта проста — сгруппировать ASH строки по имени Query Block определённого плана выполнения, например так: [...]
Source: iusoltsev.wordpress.com
Сб, Апр 16, 2016
Максим Филатов обратил внимание на заметно High Version Count запрос: , судя по множеству источников / MODULE-й: — похожий на рекурсивный, выполняемый, в основном, PX-slave процессами Как оказалось, запрос этот удостоен отдельной ноты Frequent Execution of SQL_ID "frjd8zfy2jfdq in 12.1.0.2 (Doc ID 2059121.1): — где для избавления от последствий этого [...]
Source: iusoltsev.wordpress.com
Чт, Апр 07, 2016
Предположим запрос, периодически потребляющий TEMPORARY TABLESPACE в недопустимых объёмах: — при этом повышенное потребление TEMP (и DIRECT_WRITES_PER_EXEC, соотв-но) было характерно для использования плана 1494936070, и не отмечается для плана 1662599281, т.е. зависело, в основном, от выбора плана выполнения и слабо зависело от прочих исходных данных и значений bind-ов — судя [...]
Source: iusoltsev.wordpress.com
Комментирование отключено.