by James Morle
This article is about the importance of appropriately simplistic architectures. I frequently get involved with the creation of full-stack architectures—in particular the architecture of the database platform. There are some golden rules when designing such systems, but one of the most important ones is to keep the design as simple as possible. This isn’t a performance enhancement; this is an availability enhancement. Complexity, after all, is the enemy of availability.
Despite it (more...)
Last week I presented at the UKOUG’14 conference on creating intuitive & interactive dashboards with the ADF Data Visualization Components. Frequently end-users are overwhelmed with too much and confusing information displayed in rows and columns. It can be difficult to quickly get the relative significance. This session discussed how to create intuitive, interactive dashboards made with the ADF Data Visualization Components. You can use of the power of visualization to present information; to call the end-user to action (more...)
Tim Gorman is a technical consultant for Delphix (http://www.Delphix.com), who enable database and storage virtualization to increase the agility of IT development and testing operations. He has co-authored six books, tech-reviewed eight more, and written articles for RMOUG SQL_Update and IOUG SELECT magazines. He has been an Oracle ACE since 2007, an Oracle ACE Director since 2012, a member of the Oak Table Network since 2002, and has presented at Oracle (more...)
The default value of METHOD_OPT from 10g onwards is ‘FOR ALL COLUMNS SIZE AUTO’.
The definition of AUTO as per Oracle documentation is :
AUTO: Oracle determines the columns to collect histograms based on data distribution and the workload of the columns.
This basically implies that Oracle will automatically create histograms on those columns which have skewed data distribution and there are SQL statements referencing those columns.
However, this gives rise to (more...)
A couple of weeks back I received an update on my “4k bug” SR (slow multirow DML performance for small block sizes). As it turns out, the observed behavior is not a bug. It’s actually more interesting than that. It is an undocumented feature that controls the insert mode depending on the estimated row size (the sum of all column sizes). If the estimated column size exceeds the size of the block, then Oracle switches (more...)
Sorry it’s taken a couple of days to finish off this series of blog posts on UKOUG Tech 14. I had expected to get some time on the trip back to write this, but as you’ll see if you keep reading, that really didn’t happen. So let’s go back to Day 3 of the conference.
I started the day by attending Patrick Hurley’s “Adventures in Database Administration” session. This was quite different to the normal (more...)
Anyone that has ever coded PLSQL will be familiar with the error ORA-4068, where you had some state persisted in a session due to a package variable, and then when you change the package, the state is cleared along with an ORA-4068. Here’s a quick example:
SQL> create or replace
2 package PKG is
3 procedure P;
SQL> create or replace
2 package body (more...)
AZORA is planning a meeting January 20th. Here is the link to RSVP: url
Hope to see you there.
Too many programmers think that their job is to write code. It isn’t.
The job of the programmer is to help the business solve a problem using appropriate technology for the task at hand. The programmer knows (or should know) the available tools and will hopefully select the right one for the task.
Unfortunately, too many programmers suffer from framework-phobia and don’t trust any code they have not written themselves. That takes more time, causes more (more...)
Here’s a query (with a few hints to control how I want Oracle to run it) that demonstrates the difficulty of trying to solve problems by hinting (and the need to make sure you know where all your hinted code is):
leading (@main t1@main v1@main t4@main)
select /*+ qb_name(inline) no_merge */
t2.n1, t3.n2, count(*)
from t2, t3
where exists (
select /*+ qb_name(subq) no_unnest push_subq */
Day 2 of the UKOUG Tech 14 conference for me started with the second session (I spent the first session typing up the blog post on Day 1 as there wasn’t a presentation I was interested in). Tammy Bednar was presenting on “Creating a Test / Dev Database in Minutes Using the Oracle Database Appliance”. Tammy is another old timer at Oracle. Like myself and Maria Colgan, she has been an Oracle employee for 20 (more...)
When you’re trying to delete files in linux , you receive following error message
bash: /bin/rm: Argument list too long
go to that directory and execute below command
find . -name ‘filename*’ -print0 | xargs -0 rm
You can follow datainstaller and hrglobal apply process from here
sqlplus -s APPS/***** @/u01/EBSUAT/apps/apps_st/appl/per/12.0.0/patch/115/sql/hrrbdeib.sql 2 4
ERROR at line 1:
ORA-04091: table HR.FF_USER_ENTITIES is mutating, trigger/function may not see
ORA-06512: at “APPS.FFDICT”, line 1224
ORA-06512: at “APPS.FFDICT”, line 1901
ORA-06512: at “APPS.FF_USER_ENTITIES_BRI”, line 7
ORA-04088: error during execution of trigger ‘APPS.FF_USER_ENTITIES_BRI’
ORA-06512: at “APPS.HRDYNDBI”, line 5446
ORA-06512: at (more...)
Sometimes the optimizer makes really odd decisions. We can use optimizer (“event 10053″) tracing to obtain clues as to why such decisions were taken, but it’s not simple. First, such trace files tend to be big. Second, they don’t always contain the necessary information. There is a simple trick that can be useful in such cases.
First, I use “optimizer_features_enable” hint to try and find Oracle version where the logic changes. Of course, I don’t (more...)
I am working on an SR with Oracle support and they asked me to do a 10128 trace to look at how the optimizer is doing partition pruning. I did some quick research on this trace and wanted to pass it along.
Here are the names of the two Oracle support documents that I found most helpful:
How to see Partition Pruning Occurred? (Doc ID 166118.1)
Partition Pruning Min/Max Optimization Fails when Parallel (more...)
The questions in the quiz were, of course, all trick questions.
Question 1: Answer D
SELECT * FROM T1 LEFT NATURAL JOIN T2;
SELECT * FROM T1 NATURAL LEFT JOIN T2;
The second example shows the correct syntax for a natural outer join. In the first example, LEFT is interpreted as a table alias for T1 and so an inner join is used.
QUESTION 2: Answer E
SELECT * FROM T1 INNER JOIN T2 ON (more...)
Monday was the first day of the main part of the UKOUG Tech 14 conference, after SuperSunday’s additional content. I had a great night’s sleep and woke at 7 am, much to the disgust of Richard Foote who had been up for four hours already and didn’t seem to appreciate my #NoJetLagHere hashtag replying to his lack of sleep tweet. I managed to get to the conference relatively dry, but realized yet again that you (more...)
Boy, that escalated quickly. I mean, my path to becoming an Oracle ACE since joining Rittman Mead!
When I began with Rittman Mead back in March 2012, I wasn’t planning on joining the ACE program. In fact, I really wasn’t sure what an Oracle ACE even was. If you’re not familiar, the Oracle ACE program “highlights excellence within the global Oracle community by recognizing individuals who have demonstrated both technical proficiency and strong credentials as (more...)
A while ago I was contacted by a customer about their old Oracle Application and Weblogic Server environment.
They were receiving complaints from users that they can’t connect to the secure site any longer. Most of the complaints came from users that just recently updated their tablet or smartphone.
After a quick look in the logs of the OHS servers, I found out that the problem had to do with the SSL protocols (more...)
I’m on my way to UKOUG Tech14, where I will present Database 12c MATCH_RECOGNIZE: Beating the Best Pre-12c Solutions on Tuesday at 3 P.M., room 4B. With all the Oaktable ACE Directors presenting at the same time, I don’t expect a big crowd but I’ll do my best for those who do turn up. This is my […]