Search

OakieTags

Who's online

There are currently 0 users and 31 guests online.

Recent comments

Oracle

Accelerating Your Experience

We all want more experience. The fastest way to get it is by helping solve
other people's problems.



Read the full post at www.gennick.com/database.

Accelerating Your Experience

Eleventh in a series of posts in response to Tim Ford's #EntryLevel Challenge.


We all want more experience. The fastest way to get it is by helping solve other people's problems. I'm talking here of online forums and similar venues in which you can grow in skill by taking your current knowledge and applying it to scenarios others are struggling in. Because those others will present with far more problems in a shorter period of time than you could ever cause or encounter on your own. 

Here's a snippet from a recent email I received offering some paid work:

"We would like to have someone whom we can contact who can assist us on occasion with Squarespace and are wondering how much you would charge for occasional help?"

Nice! Isn't it? 

Here's another, asking my help on a project:

Delete/Insert #2

In the previous post I threw out a couple of options for addressing the requirement to transfer data from one table to another (“cut and paste” rather than just “copy”) without running into odd inconsistency errors. This triggered of a wonderful comment trail of alternatives based on how large the volume might be, how relaxed the concurrency requirements might be, and so on.

A comment by SydOracle1 picked up on my failure to get Oracle working with the “as of SCN” syntax because it kept reporting ORA-08187 and suggested a straightforward use of the VERSIONS strategy. I thought it was quite surprising that this could work given that “as of SCN” didn’t, so I whipped up a quick test to check it – adding a couple of little refinements to the supplied sample – and it worked.

New Apple Script and Perspectives in Omnifocus

The challenge of coding, is that you sometimes need to be aware of what can be impacted outside of your code to make it appear guilty.

Delete/Insert

Many of the questions that appear on OTN are deceptively simple until you start thinking carefully about the implications; one such showed up a little while ago:

What i want to do is to delete rows from table where it matches condition upper(CATEGORY_DESCRIPTION) like ‘%BOOK%’.

At the same time i want these rows to be inserted into other table.

The first problem is this: how carefully does the requirement need to be stated before you can decide how to address it? Trying to imagine awkward scenarios, or boundary conditions, can help to clarify the issue.

If you delete before you insert, how do you find the data to insert ?

DOAG 2016

I had a great time at DOAG 2016. It’s one of the best run conferences I’ve been to! I did a quick cameo during the keynote to talk about performance in Oracle’s cloud. Nothing like being on stage with a guy wearing a tie. :) Thanks Andrew for inviting me to say a few words.

Kerry_on_stage_doag_2016

Oracle Cloud Performance Testing Results


 

That was fun!

Then I did a couple of technical talks.

Advanced Oracle memory profiling using pin tool ‘pinatrace’

In my previous post, I introduced Intel Pin. If you are new to pin, please follow this link to my previous post on how to set it up and how to run it.

One of the things you can do with Pin, is profile memory access. Profiling memory access using the pin tool ‘pinatrace’ is done in the following way:

$ cd ~/pin/pin-3.0-76991-gcc-linux
$ ./pin -pid 12284 -t source/tools/SimpleExamples/obj-intel64/pinatrace.so

The pid is a pid of an oracle database foreground process. Now execute something in the session you attached pin to and you find the ‘pinatrace’ output in $ORACLE_HOME/dbs:

Introduction to Intel Pin

This blogpost is an introduction to Intel’s Pin dynamic instrumentation framework. Pin and the pintools were brought to my attention by Mahmoud Hatem in his blogpost Tracing Memory access of an oracle process: Intel PinTools. The Pin framework provides an API that abstracts instruction-set specifics (on the CPU layer). Because this is a dynamic binary instrumentation tool, it requires no recompiling of source code. This means we can use it with programs like the Oracle database executable.
The Pin framework download comes with a set of pre-created tools called ‘Pintools’. Some of these tools are really useful for Oracle investigation and research.

Redo a blogpost

This blogpost is about the Oracle redo log structures and redo efficiency in modern Oracle databases. Actually, a lot of subtle things changed surrounding redo (starting from Oracle 10 actually) which have gone fairly unnoticed. One thing the changes have gone unnoticed for is the Oracle documentation, the description of redo in it is an accurate description for Oracle 9, not how it is working in Oracle 10 or today in Oracle 12.1.0.2.

My test environment is a virtual machine with Oracle Linux 7.2 and Oracle 12.1.0.2.161018, and a “bare metal” server running Oracle Linux 6.7 and Oracle 12.1.0.2.160419. Versions are important, as things can change between versions.

Optimizer Compatibility, Short Pants and Hot Sauce

OK, so I’m all over the map, (technology wise) right now.  One day I’m working with data masking on Oracle, the next it’s SQL Server or MySQL, and the next its DB2.