Search

OakieTags

Who's online

There are currently 0 users and 35 guests online.

Recent comments

Affiliations

Oracle

10053 trace

I published a note yesterday about enabling SQL trace system-wide for a single statement – and got a response on twitter from Bertrand Drouvot referencing a blog post he’d done a few months ago about using a similar method to dump the optimizer trace (10053) for a statement whenever it was optimized.

10053 trace

I published a note yesterday about enabling SQL trace system-wide for a single statement – and got a response on twitter from Bertrand Drouvot referencing a blog post he’d done a few months ago about using a similar method to dump the optimizer trace (10053) for a statement whenever it was optimized.

Simora: Alpha Testers Confirmed

It's been a while since I provided any public updates regarding Simora, our Oracle workload simulation product. It's finally time to unveil the status of Simora and our steps moving forwards. We have been working extensively on the Simora engine and infrastructure over the  last several months, with a view to transforming it into a […]

Simora: Alpha Testers Confirmed

It's been a while since I provided any public updates regarding Simora, our Oracle workload simulation product. It's finally time to unveil the status of Simora and our steps moving forwards. We have been working extensively on the Simora engine and infrastructure over the  last several months, with a view to transforming it into a […]

EM12c- Dealing with Unknown Targets

Most of you know I don’t like #ff00ff;">pink, but I also am not a fan of #ffff00;">yellow.

sql_trace

Here’s a convenient aid to trouble-shooting that appeared in 11g with its enhancements to setting events. It’s a feature that may help you to work out (among other things) why a given statement seems to have a highly variable performance profile. If you can find the SQL_ID for a parent cursor you can enable tracing for just that cursor whenever it executes, whoever executes it.

DBA Kevlar is BACK!! :)

So back at the end of the EM CAB, I’d received an email stating I had an over-sized database and too many hits to continue on Go Daddy as the host for my website.  I called into tech support to understand what options I had, but was never told that I had any option but leaving Go Daddy as my hosting service.  I was told I had two weeks per the email, but asked for three and was told on the phone that wasn’t a problem.  I then did some research a

Oracle Midlands : Event #4 – Registration Open

Registration has opened for the Oracle Midlands Event #4 on Monday July 14th.

This event includes a session on “Designing Efficient SQL” by Jonathan Lewis as well as lightning talks by Jonathan Lewis, Richard Harrison, Salih Oztop, Patrick Hurley and Martin Widlake.

Oracle Midlands : Event #3 Summary

I really enjoyed Oracle Midlands Event #3 last night. Christian Antognini spoke on “12c Adaptive Query Optimization” and “Row Chaining and Row Migration Internals”. I certainly learnt a lot, which is the whole point of this stuff!

After the event a few of us went across to a local pub and the geek talk continued. Cool++.

Thanks very much to Christian for coming all that way to speak to us. Thanks to those good people at Reg Gate for sponsoring the event. Thanks also to the Oracle ACE Program for letting Christian come to visit us. :)

The next event is on Monday 14th July. Hope to see you there!

Ignoring Hints

Does Oracle ignore hints – not if you use them correctly, and sometimes it doesn’t ignore them even when you use them incorrectly!

Here’s an example that I’ve run on 11.2.0.4 and 12.1.0.1


create table t1
as
with generator as (
	select	--+ materialize
		rownum id
	from dual
	connect by
		level <= 1e4
)
select
	rownum			id,
	rownum			n1,
	rpad('x',100)		padding
from
	generator	v1
;

begin
	dbms_stats.gather_table_stats(
		ownname		 => user,
		tabname		 =>'T1',
		method_opt	 => 'for all columns size 1'
	);
end;
/

create index t1_i1 on t1(id);
alter index t1_i1 unusable;

select n1 from t1 where id = 15;
select /*+ index(t1 (id)) */ n1 from t1 where id = 15;

Any guesses about the output from the last 4 statements ?