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

19 Февраль 2015
Earlier
Сб, Ноя 07, 2015
Коллеги-разработчики с радостью сообщили, что наконец-то сломали 12-й Oracle обнаружили проблему, а Александр Шакура подготовил отличный тесткейс: В процессе обследования выяснилось, что: 1) ORA-01841 возникает только для 4-х значных форматов года (YYYY), включая Date Literal вида date’2015-09-01′ 2) Explain Plan возвращает ту же ошибку, при этом трейс оптимизатора драматически обрывается [...]
Source: iusoltsev.wordpress.com
Пт, Окт 30, 2015
После обновления на версию 12.1.0.2 обнаружился деградировавший запрос: — со ср.временем ~ 350 сек. при SLA/таймауте в 300 Из запроса заметно, что вероятной причиной деградации может быть использованная в процессе директива (SPD_Used), которую удалось запеленговать командой EXPLAIN PLAN: , расшифровать запросом: и отключить/запретить стандартной процедурой: После чего, правда, старый неудачный [...]
Source: iusoltsev.wordpress.com
Ср, Окт 28, 2015
С удивлением надлюдал поведение стандартного запроса приложения OEBS в условиях напряжённой адаптивной оптимизации (optimizer_features_enable = 12.1.0.2 and optimizer_adaptive_features=TRUE): — запрос по V$SQL_SHARED_CURSOR / V$SQL показывает набор динамично генерируемых планов с незначительными колебаниями ср.времени выполнения ELA_PER_EXEC, кроме последней строки: CHILD=6 на 2-м инстансе выполняется с PLAN_HASH_VALUE=1663364961 стоимостью 1373425052843 (что несколько превышает [...]
Source: iusoltsev.wordpress.com
Ср, Окт 21, 2015
Maximum Key Length

Such an error might crop up when a table index is being created in the database:

ORA-01450: maximum key length (6398) exceeded

Oracle documentation duly lists the cause and action to resolve this error:

Cause: The combined length of all the columns specified in a CREATE INDEX statement exceeded the maximum index length. [...]

Source: www.oratable.com
Сб, Окт 17, 2015
:)

And special thanks to all the great people who voted for me!
I want to list all voters for all nomenees in one page: http://orasql.org/odevchoice/all-the-voters.html

The query (using xt_http of course )

with finalists(category, userid, name) as ( -- [...]
Source: orasql.org
Пн, Окт 12, 2015

A couple days ago i created simple package for HTTPS/HTTP, but I’ve decided now to improve it:

Timeout parameter – it would be better to control connection time; Simple page parsing with PCRE regular expressions – to speed up and simplify page parsing, because if you want to get big [...]
Source: orasql.org
Вс, Окт 11, 2015
спорадичеки наблюдались нами с Леонидом Борчуком в процессе выполнения стандартного Concurrent Processing-а при отсутствии всякой информации в логах на apps-ах и следующими замечаниями в alert.log: — первый аргумент ошибки [kdBlkCheckError] и (*) сообщают о проблемах восстановления блока временного файла [515] табличного пространства TEMP (**) при выполнении стандартного DML в Global [...]
Source: iusoltsev.wordpress.com
Пт, Окт 09, 2015
:)

It’s very easy to get and analyze voters list using my new XT_HTTP package
We can get up-voters list by the URL: https://community.oracle.com/voting-history.jspa?ideaID=NNNN&start=0&numResults=1000

where NNNN is Idea ID from nomenee’s page.
For example my page – https://community.oracle.com/ideas/6901 so my voters page will be https://community.oracle.com/voting-history.jspa?ideaID=6901&start=0&numResults=1000
BTW, though this page [...]

Source: orasql.org
Пт, Окт 09, 2015
:)

I don’t like to import certificates, so i cannot use httpuritype for HTTPS pages and I decided to create package which will work with https as http.
It was pretty easy with java stored procedures
github/XT_HTTP
java source: xt_http.jsp create or replace and compile java [...]

Source: orasql.org
Ср, Сен 30, 2015
При выполнении DBMS_MVIEW.REFRESH(…, ‘C’, ATOMIC_REFRESH=>FALSE) можно видеть ожидание pipe get, что ожидаемо и описано в Complete Refresh Of Materialized View Hangs On Pipe Get (Doc ID 1193294.1), где, среди прочих 'смелых решений|solutions (удалять индексы перед обновлением, запретить job-ы на системном уровне, не использовать NONATOMIC REFRESH), рекомендуют использовать dbms_jobs вместо dbms_scheduler [...]
Source: iusoltsev.wordpress.com
Вс, Сен 27, 2015
К большому сожалению заметил, что механизм Parallel Statement Queuing для случая parallel_degree_policy = MANUAL, так красиво задуманный и описанный, например, в How to Achieve Parallel Statement Queuing for an SQL When PARALLEL_DEGREE_POLICY=MANUAL (Doc ID 1902069.1) в новой версии СУБД по-прежнему не работает надёжно Собственно, практическое наблюдение: — все PX процессы [...]
Source: iusoltsev.wordpress.com
Сб, Сен 26, 2015
I've been selected as a finalist in the 2015 Oracle Database Developer Choice Awards...! September 2015 [...]
Source: www.oracle-developer.net
Чт, Сен 17, 2015
Буквально сегодня в блоге Steven Feuerstein началось означенное голосование , где в первой секции SQL можно заметить нашего товарища и коллегу по цеху Саяна Малакшинова / Sayan Malashinov, и немедленно проголосовать за этого высококвалифицированного специалиста, отзывчивого профессионала и активного участника RUssian Oracle User Group!Filed under: Oracle [...]
Source: iusoltsev.wordpress.com
Вс, Сен 13, 2015
Выполняя запросы к GV$ обзорам в кластере, нередко можно получить: — при втором и последующих выполнениях Разработчики по этому поводу — How To Diagnose ORA-12850 Could Not Allocate Slaves On All Specified Instances(Doc ID 1350377.1): In case you know the SQL that caused the ORA-12850, experienced DBAs/developers can purge the [...]
Source: iusoltsev.wordpress.com
Вс, Июл 26, 2015
В процессе совместного с Евгением Калининым тестирования с целью стандартизации/оптимизации времени выполнения запроса посчастливилось наблюдать диво дивное нечасто встречающееся событие: выполнение одного запроса очевидно затягивалось по причине периодической инвалидации используемого курсора, следом генеровался новый курсор (с новым планом) и начинал выполняться с начала, при этом со стороны запускающего приложения выполнение [...]
Source: iusoltsev.wordpress.com
Сб, Июл 25, 2015
В предыдущей заметке 12c: Automatic Dynamic Statistics я сослался на документ поддержки Dynamic Sampling Level Is Changed Automatically in 12C (Doc ID 2002108.1), рекомендующий в качестве метода отключения ADS использовать подсказку на следующем примере: Disabling Dynamic Statistics ADS can be disabled but setting optimizer_dynamic_sampling to 0 either with a parameter [...]
Source: iusoltsev.wordpress.com
Ср, Июл 15, 2015
Для одного из запросов внезапно сработал Statistics Feedback, что в V$SQL отразилось следующим образом: — т.е. 29.06 в 12:45 запрос выполнялся с нормальным планом 2108937779, а при следующем выполнении в 30.06 в 15:07 под действием FEEDBACK_STATISTIC=Y с новым планом 3773907172 наблюдается затянувшееся выполнение, что в принципе не является чем-то необычным, [...]
Source: iusoltsev.wordpress.com
Вт, Июл 14, 2015
Разочаровал способ реализации в Oracle killer-фичи версии 11g — Deduplicate LOB через обычный странный UNIQUE индекс, который значительно ограничивает возможности транзакционного использования, в частности, конкурентного заполнения таблицы дублирующими LOB-амиFiled under: Блокировки, Oracle Tagged: LOB, Oracle 11g new features [...]
Source: iusoltsev.wordpress.com
Ср, Июл 08, 2015

This post is just a compilation of the links to other people’s articles and short descriptions about new SQL PLAN OPERATIONS and HINTS with a couple little additions from me.


OPERATION_NAME Description Links JSONTABLE EVALUATION [...]
Source: orasql.org
Вс, Июл 05, 2015
:)

As you know, since 11.2 “relies_on” clause was deprecated and oracle tracks dependencies at runtime now.
Test function and tables create or replace function f_without_deps(p_tab varchar2) return varchar2 as res varchar2(30); begin execute immediate 'select '''||p_tab||''' from '||p_tab||' where rownum=1' into res; return res; end; / create table a as [...]

Source: orasql.org
Вс, Июл 05, 2015

Recently I showed simple example how result_cache works with non-deterministic functions and observed strange behaviour: a function gets fired once in the normal query, but twice with the result_cache hint.
Moreover, only third and subsequent query executions return same cached results as second query execution.
I didn’t want to investigate [...]

Source: orasql.org
Пт, Июн 26, 2015

You know that if we want to execute another script from the current script directory, we can call it through @@, but sometimes we want to know the current path exactly, for example if we want to spool something into the file in the same directory.
Unfortunately we [...]

Source: orasql.org
Вс, Июн 21, 2015
При выполнении параллельного запроса наблюдалась неприятная картина ожиданий: — где наряду с 'нормальными ожиданиями по ходу выполнения (ID 38-42, например), преобладают типичные для стадии Soft Parse (sql_plan_hash_value > 0 AND sql_exec_id is null) ожидания library cache lock и cursor: pin S wait on X, вероятно, связанные с параллельным выполнением судя [...]
Source: iusoltsev.wordpress.com
Пт, Июн 19, 2015
Пример использования блокировок на уровне строки наблюдали с Дмитрием Балабановым для запросов этого типа: — т.е. to skip any rows that are found to be already locked by another transaction, в ASH фиксируются формальные блокировки с 0-й длительностью AVG_WAIT_TIME_MS, вычисляемой как AVG(TIME_WAITED) / 1000 Среди запросов с использованием SKIP LOCKED, [...]
Source: iusoltsev.wordpress.com
Вт, Июн 16, 2015
learn-oracle

Here is a simple guide to learning Oracle as a developer from scratch, on your own. For an absolute beginner to Oracle, it helps you navigate your way around the sea of information available at your disposal.

A 5-step answer to the question "How to learn Oracle?"

1. Get yourself an Oracle [...]
Source: www.oratable.com
Вт, Июн 09, 2015
CBO, RBO Oracle Optimizers

In large applications that juggle tons of data, it isn’t enough to get a query to run without errors. The query must also perform well – get the results in fastest possible time, using the least possible resources.

This is where Oracle’s inbuilt optimizers come into play. Till Oracle [...]

Source: www.oratable.com
Чт, Июн 04, 2015
SQL Plan Directives (SPD) определяются как дополнительная информация/указания/инструкции, генерируемые и фиксируемые в бд в процессе выполнения запроса в тех случаях, когда оптимизатор на основе имеющейся статистики строит неточный в части оценки кол-ва возвращаемых строк (cardinality misestimate) план выполнения В дальнейшем эти SPD инструкции, привязанные к объектам бд (таблицам, группам таблиц, [...]
Source: iusoltsev.wordpress.com
Вс, Май 17, 2015
На продуктивной системе 12.1.0.2 с изумлением и восторгом наблюдал случай обратимости automatic re-optimization, одной из компонент 12c adaptive optimizer features: — дочерние курсоры удачно создавались в порядке увеличения child_number, при этом в отличие от 2-х первых последний CHILD = 2 уже не используя реоптимизацию (REOPT=V$SQL.IS_REOPTIMIZABLE = N), формируется без дополнительных [...]
Source: iusoltsev.wordpress.com
Вс, Май 17, 2015
После обновления бд до версии 12.1.0.2 столкнулись с проблемой блокировок курсоров, сопровождавшей замедлившийся процесс разбора (parse) некоторых запросов, и материально выраженой большим кол-вом/долей ожиданий cursor: pin S wait on X и library cache lock в ASH/AWR: Наблюдение в режиме реального времени позволило достаточно быстро и пОлно диагностировать и разрешить проблему, [...]
Source: iusoltsev.wordpress.com
Чт, Май 07, 2015
Coskan Gundogar указал примечательный документ поддержки, уточняющий границы автоматического применения в версии 12c технологии Dynamic Sampling, реализуемого через рекурсивные запросы типа SELECT /* OPT_DYN_SAMP */, — Dynamic Sampling Level Is Changed Automatically in 12C (Doc ID 2002108.1), где, в частности разъясняется, что Automatic dynamic statistics может быть использован оптимизатором не [...]
Source: iusoltsev.wordpress.com
Комментирование отключено.