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

19 Февраль 2015
Earlier
Чт, Янв 26, 2023

Here are the introductory comments I made at a recent “Ask me Anything” session about indexing arranged by the All India Oracle User Group:

There are 4 fundamental thoughts that you need to bear in mind whenever you're thinking about what indexes your application needs:

The intent of indexing is to [...]
Source: jonathanlewis.wordpress.com
Вс, Янв 15, 2023

Here's a little extract from one of my “snap instance activity stats” packages picking out the figures where the upper case of the statistic name is like ‘%PARALLEL%'. I was very careful that nothing except one of my SQL*Plus sessions had done anything in the few seconds between the start [...]

Source: jonathanlewis.wordpress.com
Ср, Янв 11, 2023

I may have given the answers to this little puzzle elsewhere on the blog already, but if so I can't find where, and it's worth a linttle note of its own.

I have a non-partitioned heap table that is a subset of all_objects, and I'm going to execute a series [...]

Source: jonathanlewis.wordpress.com
Пт, Янв 06, 2023

Here's a query that appeared on the MOS “SQL Performance” forum (needs a support account) with the request: “Can someone please assist me to optimize this query?”

It looks like a nice simple query (though looks can be deceiving) so I thought I'd use it as another example on [...]

Source: jonathanlewis.wordpress.com
Вт, Дек 20, 2022
Если вы не видете список вакансий, возможно у вас включен адблокер. [...]
Source: OracleForBeginners
Пн, Дек 05, 2022

This is nothing more than a basic update of a note that I wrote 8 years ago. The update was triggered by a brief comment made by Martin Widlake at the recent UKOUG annual conference “Breakthrough 2022” in Birmingham. In his presentation on “wide tables”, he mentioned row migration and [...]

Source: jonathanlewis.wordpress.com
Пн, Ноя 28, 2022

There's a question on the MOSC forum (needs an account) at present that started with the performance of the datapump API over a database link but moved on to the topic of how to handle a scenario that I've described in the past involving a table where rows [...]

Source: jonathanlewis.wordpress.com
Пн, Ноя 21, 2022

An email on the Oracle-L list server a few days ago described a performance problem that had appeared after an upgrade from 11.2.0.4 to 19c (19.15). A long running statement (insert as select, running parallel 16) that had run to completion in 11g using about 20GB of temporary space (with [...]

Source: jonathanlewis.wordpress.com
Ср, Ноя 16, 2022

I've just discovered that the space management bitmaps for the tablespace I normally use in my 21c tests are broken. In a tablespace that's supposed to be completely empty a query of dba_free_space shows 4 gaps totalling several thousand blocks:

SQL> select * from dba_free_space where tablespace_name = 'TEST_8K_ASSM'; TABLESPACE_NAME [...]
Source: jonathanlewis.wordpress.com
Вт, Ноя 15, 2022

I wrote a batch of notes about the opt_estimate() hint a couple of years ago, including one where I explained the option for using the hint to specify the number of rows in a query block. I've just come across a particular special case for that strategy that others [...]

Source: jonathanlewis.wordpress.com
Ср, Ноя 02, 2022

Oracle 12c introduced Partial indexing and sometimes it works fine for simple partitioned tables with literals, but it has a few problems.

For example, consider the following simple partitioned table:

create table t2 ( pkey int not null, val int, padding varchar2(100) ) partition by range(pkey) ( partition p1_on [...]
Source: orasql.org
Ср, Ноя 02, 2022

Oracle 12c introduced Partial indexing, which works well for simple partitioned tables with literals. However, it has several significant issues:

For instance, consider the following simple partitioned table:

create table t2 ( pkey int not null, val int, padding varchar2(100) ) partition by range(pkey) ( [...]
Source: orasql.org
Пн, Окт 31, 2022

All Oracle specialists know that any predicate X=NULL can't be true and we should use “X is NULL” in such cases. Oracle optimizer knows about that, so if we create a table like this:

create table tnulls as select level as [...]
Source: orasql.org
Пн, Окт 31, 2022

All Oracle specialists know that a predicate X=NULL can never be true and we should use “X is NULL” in such cases. The Oracle optimizer knows about that, so if we create a table like this:

create table tnulls as select [...]
Source: orasql.org
Пн, Окт 24, 2022

A tweet from Franck Pachot [July 2021] about fully qualified names in Postgres prompted me to highlight a note I wrote a few years ago about using the label mechanism in Oracle's PL/SQL to avoid collisions between variable names and table names. This led to a brief twitter [...]

Source: jonathanlewis.wordpress.com
Чт, Окт 13, 2022

There's a question on the Oracle developer forum at the moment asking how a tablescan could be reported as taking 94,000 seconds so far when a count(*) shows that it holds only a couple of hundred thousand rows (and it's not storing megabytes of LOB per row if that's [...]

Source: jonathanlewis.wordpress.com
Вт, Окт 11, 2022

I don't really do tips because I often see simple tip that have a specific purpose being mis-used abused; but it's a special day in the Oracle community, so here's a quick tip in tribute to a great sharer.

I've been doing some work with datapump recently, and needed to get [...]

Source: jonathanlewis.wordpress.com
Чт, Сен 29, 2022

A recent question on the Oracle Developer Community forum asked for help with a statement that was taking a long time to run. The thread included the results from a trace file that had been passed through tkprof so we have the query and the actual execution plan with [...]

Source: jonathanlewis.wordpress.com
Пн, Сен 12, 2022

In the past I've sometimes had to dump the contents of the redo log to a trace file when I needed to find out what work Oracle was doing behing the scenes. To minimise the volume dumped by the “alter system dump logfile” command and make it easier to find [...]

Source: jonathanlewis.wordpress.com
Пт, Сен 09, 2022

“Why did my query do parallel?”

It's a question that crops up from time to time, usually followed by a list of reasons why it shouldn't have gone parallel – no hints in the query, table is not declared parallel, parallel_degree_policy is set to manual etc.

When the question appeared recently [...]

Source: jonathanlewis.wordpress.com
Пт, Сен 02, 2022

If you want to do something about “wasted” space in an index what are the differences that you need to consider between the following three options (for the purposes of the article I'm ignoring “rebuild” and “rebuild online”):

alter index xxx coalesce; alter index xxx shrink space compact; alter index xxx shrink space;

Looking [...]

Source: jonathanlewis.wordpress.com
Вт, Июн 07, 2022
Некоторое время назад коллега-разработчик Рустам Кучукбаев обратил внимание на проблему, для которой мне удалось подготовить и выложить на Oracle Live SQL (для эффективного общения с поддержкой) до сих пор доступный тесткейс Кратко: , использование конструкции TABLE() (в любом месте запроса) в общем случае совместимо с использованием Join Predicate Push-Down (JPPD) [...]
Source: iusoltsev.wordpress.com
Пт, Июн 03, 2022
Отличная новость — уважаемые коллеги из компании ФОРС Дистрибуция подготовили и открыли общедоступный форум: "…ФОРС Дистрибуция открывает форум под названием ORA-600 для общения специалистов по проектированию, программированию и эксплуатации систем управления базами данных, и, в первую очередь – СУБД Oracle Цели нашего форума: – поддержать контакты специалистов и их профессиональные [...]
Source: iusoltsev.wordpress.com
Пт, Июн 03, 2022
DBA_HIST_SQLSTAT показывал неудачное применение SQL Profile ftd8uxp52atxc_171718292, который, как следует из названия был создан для фиксации PHV=171718292 при выполнении запроса sql_id='ftd8uxp52atxc': Отличие целевого плана PHV=171718292 от данного в ощущениях PHV=4038921846 оказалось более чем значительным: Интересно найти причину нестабильного поведения: dbms_xplan(format => ‘hint_report') лишь констатирует проблему: trace 10053 даёт определённый ключ: [...]
Source: iusoltsev.wordpress.com
Ср, Апр 27, 2022
Коллега Сергей Щукин столкнулся: и идентифицировал опцию COMPRESS (BASIC|FOR OLTP|ROW STORE COMPRESS ADVANCED) как определяющую, опции ONLINE и PARALLEL не влияют на ошибку Специалисты поддержки Oracle предложили проверить, как оказалось, действенный workaround: , однако положительный feedback донести не удалось по причине безвременно прерванных коммуникаций и, как следствие, описание ошибки на [...]
Source: iusoltsev.wordpress.com
Вт, Дек 07, 2021
Периодически возникает необходимость фиксировать планы выполнения "недоступных запросов, например, в случае, если запрос всегда выполнялся на RO-standby, где непросто воспользоваться историей выполнения, и фиксировать план естественно на primary db, для чего потребуются значения 2-х полей V$SQL.SQL_FULLTEXT и V$SQL_PLAN.OTHER_XML, доступные, например, по dblink: Для создания SQL Profile этого достаточно: не требуется [...]
Source: iusoltsev.wordpress.com
Ср, Дек 01, 2021

First if you want don't know what an Exadata Quarantine is read this.

Someone asked whether you can create your own Exadata Cell quarantine and, if you can, why you might ever want to do it?

The first step when you don't know how to do something is [...]

Source: orasql.org
Ср, Дек 01, 2021

I posted a while back on how to use Tracing Hybrid Columnar Compression in an offload server so this is a quick follow up.

I have trouble remembering the syntax for setting a regular parameter in an offload server without bouncing it. Since I need to keep this [...]
Source: orasql.org
Ср, Дек 01, 2021

Exadata is designed to present a well-balanced system between disk scan rates, cell CPU processing rates, network bandwidth, and RDBMS CPU such that on average across a lot of workloads and a lot of applications there should not be no one obvious bottleneck. Good performance engineering means avoiding a design [...]

Source: orasql.org
Ср, Дек 01, 2021

I had noted in my first post that using the highest level of tracing caused timeout issues with the offload server heartbeat monitor. Heartbeat issues can also occur with expensive (and badly formed) regexp expressions. By default the heartbeat monitor is set to 6 seconds which is the maximum permitted [...]

Source: orasql.org
Комментирование отключено.