• Can you prioritise DDL locks?

    Can you prioritise DDL locks?

    Anyone who read Animal Farm as a school student, will remember the famous line: “All animals are equal, but some animals are more equal than others” The concept of equality has been the same with database transactions since databases began. We all have equal rights in being able to lock a row for our exclusive… Read more

  • Are the Fundamentals Too Much to Ask?

    Are the Fundamentals Too Much to Ask?

    I am submitting (or a better term would be “trying to”) an abstract to a conference that has announced their Call for Papers. Like many conferences, there is a list of tracks/streams that are the focus of the conference, and hence the organizers would like your presentation to fit into one of those categories. For… Read more

  • The junior programmer at your company might not be a human being

    The junior programmer at your company might not be a human being

    Prolog: I’m using the tweets in this post to demonstrate that what follows in this post is already a reality, not just an “old man yells at cloud” story :-).  But I stress, the tweets serves as examples, not as a call to action to go attack these developers, their companies or their product(s). Vibe… Read more

  • The first 10 years

    The first 10 years

    Long time friend and mentor Tom Kyte used to say that you could describe your career by the Oracle versions you have worked with. I started (in the main) with Oracle 6 in the mid 1990s, along with some occasional dabbles with Oracle 5, but 20 years later in 2015, chancing upon a tweet led… Read more

  • A new optimizer constant

    A new optimizer constant

    Warning: This one really just for the old nerds out there 🙂 Decades ago, one of the great contributions to the Oracle community was made by Wolfgang Breitling. This presentation and associated PDF was probably the first true deep dive into how the optimizer works. One of Wolfgang’s discoveries was the default selectivity’s the optimizer… Read more

  • Database timezone versus OS timezone

    Database timezone versus OS timezone

    Typically when you install a database on a local server, the database time zone an the OS time zone will all be alignment. However, in the world of global database access this is not mandated to be the case. For example, on the database VM I’m running my laptop here in the Perth, the database… Read more

  • Customizing the Oracle Documentation

    Customizing the Oracle Documentation

    I spend a lot of time in the Oracle database documentation, and because I like to be able to navigate it as efficiently as possible, I’ll typically download the entire set of the docs to have a local copy.  (If you’ve ever experienced the latency from Perth to … well … anywhere except Perth 😁… Read more

  • In-Database SQL formatter

    In-Database SQL formatter

    When I’m troubleshooting, a common workflow for me is extract a problematic SQL statement from V$SQL or V$SQLSTATS or an AWR report. drop the SQL text into SQL Developer or VS Code so that I can format it into a more readable format. That was starting to frustrate me so I thought: “Why not have… Read more

  • Old style export/import and Autonomous

    Old style export/import and Autonomous

    The docs state that the old classics of “exp” and “imp” for export/import are not a supported means for migrating data into Autonomous. But I know that a lot of people often decide there’s a difference between “supported” and “Can I crack on and see if it works” 🙂 So let’s give it a try… Read more

  • AWR extract – Why did SYSAUX explode?

    AWR extract – Why did SYSAUX explode?

    There is a cool little utility in $ORACLE_HOME/rdbms/admin called “awrextr.sql”. When you run the script, the opening prompt describes what action will be taken SQL> @awrextr ~~~~~~~~~~~~~ AWR EXTRACT ~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~ This script will extract the AWR data for a range of snapshots ~ ~ into a dump file. The script will prompt users… Read more

  • Statistics on Global Temporary Tables

    Statistics on Global Temporary Tables

    Something I’ve been seeing lately is a strategy of not collecting statistics on global temporary tables. The philosophy makes sense since typically global temporary tables (GTTs) are populated with an unknown or arbitrary amount of data, and thus rather than having a fixed set of statistics on them, you just rely on dynamic sampling to… Read more

  • Smashing a database on my PC

    Smashing a database on my PC

    Colleague Martin Berger posted this recently and it got me thinking: If we take out the network (by running a program locally on the database server) how many requests per second can a modern but affordable/consumer level PC do? After all, I’ve lost track of the number of posts I see on social media where… Read more