• Blazingly fast documentation search with APEX

    Blazingly fast documentation search with APEX

    The Oracle documentation set is my bread and butter for day to day work. With AskTom questions, StackOverflow question, Einstein (our internal Q&A site), whenever I’m trying to help someone, the first thing I’ll typically do is see if there is some existing information in the documentation set that might be of use. Doing is Read more

  • APEX_DATA_PARSER turbo boost!

    APEX_DATA_PARSER turbo boost!

    One of the most common recommendations I’ll make to customers who post questions on AskTom is “Install APEX even if you do not plan to use APEX”. That may seem an odd recommendation but APEX is a database-centric tool and hence, even if you never use APEX, the utilities for doing data processing within the Read more

  • SQL*Net and the CONTAINERS clause

    SQL*Net and the CONTAINERS clause

    Complete separation of pluggable databases is naturally a good thing when it comes to protecting the rights and data of the stakeholders of those databases.  For example, on a shared infrastructure system, you really want that isolation from your unknown neighbours sharing the hardware. But for many customers, in particular, those running on-premises, whilst the Read more

  • The performance report you are NOT using

    The performance report you are NOT using

    Just a quick post today to inspire you to look further than the standard options for performance monitoring. Quiz most DBAs on which performance reports they are using and they will quickly rattle off two: awrrpt.sql – for getting a performance report out of the Automatic Workload Repository ashrpt.sql – for getting a similar report Read more

  • Why does SUM look broken for window functions?

    Why does SUM look broken for window functions?

    TL;DR: SUM is NOT broken A quandary from a work colleague this morning about rolling totals via the SUM aggregation in a window function. “My rolling sum works fine for the EMP table…” SQL> SELECT empno, ename, deptno, sal, 2 SUM(sal) OVER (PARTITION BY deptno order by sal) AS total_sal_by_dept 3 FROM emp; EMPNO ENAME Read more

  • Much ado about (paying) nothing

    Much ado about (paying) nothing

    A couple of days ago, we announced some more free goodies to Oracle Cloud. As most readers will know, we already had two free forever database offerings, our Autonomous Data Warehouse and our Autonomous Transaction Processing services. Smaller services? Both of these are fully fledged managed databases in their own right, and the new free Read more

  • Big bits – really long bit strings

    Big bits – really long bit strings

    A while back we had an AskTom question about arbitrary length addition and subtraction, and so I whipped a small PL./SQL in this post. A similar question came in recently about converting decimals to binary, but once again for decimals of arbitrary length. So here’s a quick piece of PL/SQL for anyone wanting really a Read more

  • New Podcast Episode! Every index is a bug

    New Podcast Episode! Every index is a bug

    Every database has indexes…but should they? In this episode, lets consider a different proposition. What if the indexes you have on your database are a mistake…A bug… An implementation error. Give me 30 minutes to convince you of a whole new mindset when it comes to indexes on your database. Enjoy! I look forward to Read more

  • Better performance when querying the V$ views

    Better performance when querying the V$ views

    I’m a big fan of giving developers the tools they need to tune their applications in Production if that is possible. Clearly some times that will not be the case due to data sensitivity etc, but if a controlled, secure facility can be built for developers to see their applications “in the wild”, then my Read more

  • UNLONG my dictionary – those pesky LONG columns

    UNLONG my dictionary – those pesky LONG columns

    We’ve have all seen those TV crime shows where the psychiatrist does word association games, such as: Question: “Blue?” Answer: “Sky” Question: “Cat?” Answer: “Mouse” Question: “Up?” Answer: “Down” etc etc. And here’s the association that plagues developers and DBAs alike when they are querying the data dictionary. Question: “LONG?” Answer: “Aggghhhhhh!!!!” Anyone that has Read more

  • (Offtopic) Month 1 is in the books…Thanks Sarah

    (Offtopic) Month 1 is in the books…Thanks Sarah

    Just a quick end of month blog post to give a shout out to Sarah Craynon Zumbrum who posted this on Linkedin a few weeks back. I think this is a wonderful call to action for an extremely worthy reason, so I figured I should a) show my support, b) get my fat ass off Read more

  • Column names you should NOT use

    Column names you should NOT use

    We all know from our data modelling days… (Sidenote: Remember those days? You know…when we used to think about good design, good names, table and column comments etc …Ah good times. How I miss them )  … that naming objects is half the battle when it comes to a self-documenting your database and ultimately your Read more