Wann ist ein Full Table Scan billiger als ein Index Fast Full Scan?

Und seit wann verwende ich in meinen Überschriften Fragezeichen? Fragen über Fragen. Aber eigentlich ist der Fall, den Jonathan Lewis in seinem aktuellen Blog-Artikel beschreibt, ebenso überschaubar wie erinnerungswürdig. Seine Fragen darin lauten: wieso werden die Kosten eines Full Table Scans auf einer Tabelle vom Optimizer als niedriger berechnet als die Kosten für den Index Fast Full Scan auf einem Index der Tabelle und warum ist der Index Fast Full Scan trotzdem effizienter in Hinblick (more...)

#AIOUG #OTNYathra – A note of thanks

Folks, OTNYathra, the OTN tour organized by AIOUG got over last week. Thanks to the Team AIOUG for putting in loads of efforts to make this event a grand success. A round of applause to Sai, Hari, and Veera for coordinating it so well. This was my second OTNYathra and I could easily sense the penetration AIOUG has … Continue reading

Deploying From Oracle Developer Cloud Service to Oracle Application Container Cloud Service

A new step-by-step tutorial shows youhow to deploy a standalone Java web application from Oracle Developer Cloud Service to Oracle Application Container Cloud Service.


Check out the steps for

  • Creating a Project and a Git Repository in Oracle Developer Cloud Service
  • Cloning the Oracle Developer Cloud Service Project Git Repository
  • Building your Application on Oracle Developer Cloud Service
  • Deploying your Application to Oracle Application Container Cloud Service
  • Updating your Application


Try it out, get an Application Container Cloud Trial account.

Best #DataVault Event Ever!

Do your self, your DW architecture, and your brain a favor and take time to attend the 3rd Annual World Wide Data Vault Consortium

Materialized View Fast Refresh und Data Clustering

Zur Abwechslung kann ich hier mal wieder eine selbst erlebte Geschichte erzählen: am letzten Wochenende habe ich ältere historischen Daten aus den Aggregationstabellen eines Data Warehouses (11.2) entfernt, was den Neuaufbau diverser Materialized Views erforderlich machte. Diese Materialized Views sind auf verschiedenen Ebenen der Zeitachse definiert: für Wochen, Monate und Jahre, wobei die beiden ersten Gruppen range partitioniert sind, während für die Jahres-Ebene keine Partitionierung eingerichtet wurde: vermutlich, weil in der Regel nur wenige (more...)

APEX Survey Results: When did you start learning APEX?

Early last year I put the call out to #orclapex developers, asking them to fill out some questions in survey (using a packaged APEX application, of course).

The results helped contribute to a presentation I did Kscope15. Thank you to all those who responded. I thought I'd finally post some results, see if it can elicit further discussion, even of a casual nature.

Some of you asked me if I could post these results, so (more...)

On CSS/jQuery Selector Performance

My post describing the use of a simple selector identifying page spinners was originally going to be about performance, then I learned something I found very interesting.

I likened what I learned to Tom Kyte's essay (Asktom->Resources->Presentations->FalseKnowledge.htm) on Correlation vs Causation. The essence was that things change over time, and we can't always trust authorities on the topic, and we must always test in our own environments. This aligns with skepticism in general, and (more...)

How to set up IIS as SSL proxy for utl_http in Oracle XE

If you want to call a web service over HTTPS from the utl_http or apex_web_service packages in PL/SQL, you need to set up an Oracle Wallet that contains the SSL certificates of the server you are connecting to from the database.

Setting up an Oracle Wallet is quite straightforward, but it can be a bit of a hassle to configure a large number of certificates. Also, if you are using Oracle Express Edition (XE) which (more...)

A Snow Storm of Snowflake Webinars

Good Monday Morning! Been itching to learn more about the Snowflake Elastic Data Warehouse? Well, now is your chance. Over the next two weeks we have a bunch of great webinars coming up so I figured I should just give you a an easy list to review with links to sign up. Here it is: […]

Extended Statistics und CHAR Spalten

Vor Problemen bei der Verwendung von Extended Statistics - also Statistiken für mehrere (in der Regel korrelierte) Spalten, die intern über eine virtuelle Spalte abgebildet werden - warnt Jonathan Lewis in seinem jüngsten Sratchpad-Artikel. Der Hintergrund des Problems ist folgender: für eine einzelne CHAR-Spalte (in diesem Fall CHAR(2)) mit Histogram ist der Optimizer klug genug zu erkennen, das Blanks, die am Ende eines zum Vergleich herangezogenen Literals angehängt werden, keinen Einfluß auf die Selektivität des (more...)

ANSI SQL with Analytic Functions on Snowflake DB

Here is another installment of my Top 10 blog list of cool features of Snowflake Elastic Data Warehouse: At Snowflake, we believe that it should be easy to access, query, and derive insights from your data. To support that, we provide our users with the ability to query all their data using ANSI compliant SQL […]

Improving PL/SQL performance in APEX

One of the simplest tuning techniques to encapsulate PL/SQL used in APEX within packages, minimising the size of anonymous blocks. This applies to any PL/SQL within the page, including computations, processes, plugins, dynamic actions, validations, shortcuts and dynamic PL/SQL regions.

This change can make a big impact in the execution time of PL/SQL as it's processed at compile time instead of interpreted at runtime.

Plug-ins can be wonderful black boxes and consumers may not care (more...)

Collaborate’16: Slides are available

First, of all, I would like to thank everybody who came to my presentations on Collab'16! It was a pleasure talking FOR you :-) A lot of nice questions/comments/follow-ups.

Second, some SlideShare uploads (as promised):
- my talk about user-defined functions - that's where I was talking a lot about execution counts and the impact of Cost-Based Optimizer on them:

- updated version of my "Printing without Printers" talk. As usual, I (more...)

The importance of cohesion

"Come on, come on, let's stick together" - Bryan Ferry

There's more to PL/SQL programs than packages, but most of our code will live in packages. The PL/SQL Reference offers the following benefits of organising our code into packages:

Modularity - we encapsulate logically related components into an easy to understand structure.

Easier Application Design - we can start with the interface in the package specification and code the implementation later.

Hidden Implementation (more...)

Email made Easier

an e-mail letter that has a @ sign on itSending emails from the Oracle database can be both simply deceptively braindead easy, and confoundingly perplexingly awful at the same time. Easy, because all you have to do is call one of the supplied mail packages to send an email:

  (sender     => 'sender@host.com'
  ,recipients => 'recipient@example.com'
  ,subject    => 'Test Subject'
  ,message    => 'Test Message');
  (p_from => 'sender@host.com'
  ,p_to   => 'recipient@example.com'
  ,p_subj => 'Test Subject'
  ,p_body => 'Test Message'

If (more...)


For most of our database set-ups we use a different TEMP space for application users than for end-user/support/developer/reporting usage.
The intention is to minimise the potential impact of a rogue ad-hoc query on the main applicaiton.

However, turns out this is ineffective IF you use:


This is documented but I wasn’t previously aware.
No surprise that this learning opportunity was presented as a direct result of a rogue query (more...)

Who Rewrote My SQL?

There are several new features in Oracle 12c that are implemented under the hood by changing the SQL statement that we write to a different statement (e.g., by adding some hidden predicates).
In OUG Ireland 2016 I talked about two such features – In Database Archiving and Temporal Validity – as part of my “Write Less (Code) with More (Oracle12c New Features)” presentation. I usually talk about another such feature in this presentation (more...)

Training: jQuery and Dynamic Actions in APEX

Sage Computing Services are happy to announce a new 2 day course for Oracle APEX developers.

jQuery and Dynamic Actions in APEX

This course is designed for APEX developers who know their way around the APEX builder but want to build more interactive & user friendly applications that are also suitable for touch devices.

Upon completion attendees will have a great understanding of the communication between the browser and the database, using dynamic actions effectively (more...)

Mustererkennung mit MATCH_RECOGNIZE in 12c

Keith Laker hat im Data Warehouse Insider Blog eine Artikelserie begonnen, die sich mit der Verwendung des MATCH_RECOGNIZE Features in 12c beschäftigt. Ich will jetzt nicht behaupten, dass ich die Artikel umfassend wiedergeben würde (ja nicht einmal, dass ich sie komplett gelesen hätte), aber sie wären sicherlich ein sehr nützlicher Einstieg, sollte ich gelegentlich auf die Idee kommen, das Feature irgendwo einzusetzen. In erster Näherung greife ich hier aber nur die Zusammanfassungs-Abschnitte am jeweiligen Artikelende (more...)

Attend my session at #AIOUG OTN Yathra and win a complimentary copy of my book

  Are you passionate to learn Advanced PL/SQL? Would you like to know the new development features in Oracle #DB12c? Are you pursuing Oracle Developer certification exam (1Z0-146)? If yes, then this post is for you. Announcement I’m pleased to announce that I would be giving away free complimentary copies of my latest book during the … Continue reading