A few weeks ago, I received a request to review an AWR report for a database suffering from instance-level performance issues. Here are the the key parts of that report (with some masking):
WORKLOAD REPOSITORY report for
DB Name DB Id Instance Inst Num Release RAC Host
------------ ----------- ------------ -------- ----------- --- ------------
XXXX XXXXX XXXXX 1 10.2.0.5.0 NO XXXX
Snap Id Snap Time Sessions Curs/Sess
--------- ------------------- -------- ---------
The past 2 days I spent some time to upgrade the docker support I have created for Oracle Stream Explorer to work for Oracle Stream Analytics (which is the new Oracle Stream Explorer).
I guess Docker I don’t have to present anymore, it’s so common today!
You can find the corresponding docker project on my GitHub: https://github.com/gschmutz/dockerfiles
Due to the Oracle licensing agreement, the Oracle software itself can not be provided in (more...)
More news coming, but for now, we (family and I) are moving to Seattle! We will be giving up our gorgeous rental house in San Francisco thus it will be available to the next lucky family.
Elegant mediterranean style family home on a quiet tree lined street in a sweet residential neighborhood just minutes from downtown and the Peninsula.
Perfect location for commuting to Peninsula on 280 or downtown SF (more...)
Next up, caching..
This is the second part of a three part blog series. You can find the first part here. In this part, we will talk about caching.
Ok, so we’ve seen:
- How to register a ServiceWorker
- What you can do to intercept an HTTP request
- How to answer a request from within the ServiceWorker.
This is nice, but you don’t want to copy every resource into the source code of your ServiceWorker.
Most of us have probably seen the standard demo when it comes to emphasizing the need for sharable SQL, aka, using bind variables where appropriate. The demo traditionally compares two similar scripts, where one of them generates a lot of SQL statements with literals, and the other recasts the same script with bind variables for dramatic improvement.
Here’s a simple version I’ve whipped up:
SQL> create table t ( x int primary key) organization (more...)
A nice little feature in 12c is the FETCH FIRST n ROWS syntax, which is a simple shorthand to avoid using inline views and the like to get a subset of the rows from what would normally be a larger resultset.
Here’s a simple example showing the syntax
SQL> select *
2 from t
3 order by 1
4 fetch first 8 rows only;
Below you will find an overview of all the sessions that took place at the AMIS25 Beyond the Horizon conference (1-3 June 2016, Katwijk, The Netherlands) along with the associated session resources – such as the presentation slides and where applicable the source code.
||Deploy with joy: automate the build and deployment of your ADF Fusion application
||Ultimate Node.js countdown the coolest APEX examples
You can specify a connection string for database targets in two ways: fill in the blanks and let OEM create the connection string (my preference) or paste a Preferred Connect String on the bottom of the page.
Our default setting in our shop is to use multi-threaded servers. On the rare occasion when we need to change if, we paste the connect string from tnsnames.ora in place and add the SERVER=DEDICATED parameter.
Some things to (more...)
In a recent release that I’ve been working on, we had to drop and recreate some of the unique/primary key constraints (due to columns being added into the constraint) on some of our tables.
Prior to working in this team, I had only ever come across explicitly creating the indexes for a table, similar to:
create table test_explicit_index (col1 number,
create unique index col1_exp_pk on test_explicit_index (col1);
We can see the (more...)
Those of you who know me will know that I’m working at Cedar and we’re moving from PeopleSoft to the Oracle Cloud. I won’t talk about the company’s journey, but more how I’ve found the transition personally.
In brief, there’s a lot to learn.
Data Model knowledge
In the PeopleSoft world, once you know the table structures you could work significantly faster. Whether you were writing an SQR, an App Engine, an XMLP report, a (more...)
Just realized that I wrote a follow-up to Part 2 2 years ago and never posted it! So here’s the stripped-out key facts to round off auditing control a bit more:
Deleting O/S audit files is, like, totally necessary. In Oracle 12C (12.1), they are created by default as AUDIT_SYS_OPERATIONS defaults to TRUE now, so you are going to be filling up your AUDIT_FILE_DEST whether you realized it or not.
[NOTE: In theory, this (more...)
Oracle cost-based optimizer (CBO) is great, but sometimes it’s making wrong choices even when correct inputs are fed to it. In such cases, you need a tool to override CBOs choices, and one of the most popular tools is optimizer hints. The main reason they’re so popular is that they allow “quick-and-dirty” kind of fixes for performance issues (provided that query text can be altered). Other ways may be more reliable, but generally require more (more...)
We are moving a production database from 10.2 Oracle on HP-UX 64 bit Itanium to 11.2 Oracle on Linux on 64 bit Intel x86. So, we are upgrading the database software from 10.2 to 11.2. We are also changing endianness from Itanium’s byte order to that of Intel’s x86-64 processors. Also, my tests have shown that the new processors are about twice as fast as the older Itanium CPUs.
Two SQL (more...)
In today’s world, where everything is at the tip of your fingers, why are your enterprise systems glued to your office desk? Imagine if you could access and operate your Oracle Forms/EBS systems from any location. What if your Oracle Forms system was so agile, so easy to adapt, that any business function you do in Oracle Forms could be included in a mobile application? What would you include in your mobile (more...)
The developers complained that their test database was so much slower than production that they could not use it to really test whether their batch processes would run fast enough when migrated to production. They did not give me any particular queries to check. Instead they said that the system was generally too slow. So, I went through a process to find SQL statements that they had run in test and that normally run in production (more...)
Masking with Delphix (where duplicate blocks are shared making a new copy almost free storage wise and almost instantaneous) has 4 big advantages
- Instant data, no copying
- Ease of Use
- Consistent across data centers and databases vendors
Virtual Data Masking
Delphix masking and virtualization is the most advanced solution in the market place, because Delphix doesn’t provision data. Instead of provisioning data, Delphix sets up pointers back to existing data for a new clone. When that (more...)
It’s been forever since I last shared any of my performance troubleshooting experiences at work. This week, I got a case that I think is worth publishing, and I decided to write about it in my blog. So, here we go…
A few days ago, I received a complaint about unstable performance of one of frequently running SQL reports on a 11gR2 database. Most of the time it completed within a couple of minutes, however, on (more...)
This post comes from Fishbowl’s president, Tim Gruidl. One of Tim’s biggest passions is technology innovation, and not only does he encourage others to innovate, he participates and helps drive this where he can. Tim likes to say “we innovate to help customers dominate”. Tim summarizes Fishbowl’s Hackathon event, held last Friday and Saturday at Fishbowl Solutions, in the post below.
What an event! I want to start by thanking Andy Weaver and John Sim (Oracle (more...)
Someone just asked on the Delphix Forums whether they could test Delphix replication with the free version of Delphix called Delphix Express.
I’d never tried, so I sat down to try and was amazed at how easy it was.
I created twoDelphix Express installations.
On one engine, the source engine, (http://172.16.103.16/) I linked to an Oracle 18.104.22.168 database on Solaris Sparc called “yesky”.
On that same engine I (more...)
I am finally getting around to finishing my four-part blog series on people who have had the most influence on my Oracle performance tuning work. The previous three people were Craig Shallahamer, Don Burleson, and Cary Millsap. The last person is Jonathan Lewis. These four people, listed and blogged about in chronological order, had the most influence on my understanding of how to do Oracle database performance tuning. There are many other great (more...)