Quoted Identifiers #JoelKallmanDay
Background and TL;DR Connor McDonald wrote a blog post named Cleaner DDL than DBMS_METADATA. Back then he asked me if it would be possible to let the formatter remove unnecessary double quotes from quoted identifiers. Yes, of course. Actually, the current version of the PL/SQL…
DOAG2022 Highlights
Nobody knows what kind of restrictions we will experience later this year. That’s why the DOAG Conference + Exhibition 2022 took place in September instead of November. The organizers wanted an in-person event. While you can access some chosen content remotely an in-person event has…
Book Review: “Faster: How to Optimize a System” by Cary Millsap
There are many books on performance optimization, but this one differs in a few ways. It is more of an entertaining collection of short stories, but with many educational messages. My travel plans for the Kscope22 conference in June this year were suboptimal: My return…
Deleting Rows With Merge
The merge statement allows you to insert, update and delete rows in the target table in one go. This is great. However, the delete part does not work as expected. Is it a bug? No, it works exactly as documented. Nonetheless, I was not aware…
Testing With utPLSQL – Made Easy With SQL Developer
Nowadays, everything is about automation. Software testing is no exception. After an introduction, we will create and run utPLSQL tests with Oracle SQL Developer for a fictitious user story. Our tests will cover a PL/SQL package, a virtual column, two database triggers and a view….
plscope-utils for SQL Developer 1.0 – What’s New?
Introduction PL/Scope is an SDK for source code analysis. It is available since Oracle Database 11g Release 1 and has been significantly improved in 12c Release 2. plscope-utils for SQL Developer is a SQL Developer extension that simplifies the compilation with PL/Scope, visualizes PL/Scope information…
Housekeeping in Oracle: How to Get Rid of Old Data
Have you ever tried to delete a few million rows from a table with several hundred milllions of rows with a DELETE statement? If yes, then you know that this is a very bad idea. With Oracle Partitioning you can do this more elegant and…
NVMes write back vs. write through performance
Recently I was running some benchmarks to double-check that the performance of AMD EPYCs servers delivered by Company A, match the performance of those delivered by Company B. I was using our benchmark automation tool (about which I may write a bit more in the…
Data Vault versus Database Vault
In the Oracle community, the terms “Data Vault” and “Database Vault” are often confused, although they have nothing to do with each other. A short clarification. Some time ago I had a meeting with the development team and the database administrator of one of my…
Performance Tips: PL/SQL Functions in SQL Queries
PL/SQL functions in SQL statements may cause major performance problems. If it is not possible to avoid these calls, there are several solutions to improve the performance. But not for all situations. In my last blog post, I wrote about the impact of function calls in…