In this series of blogs about Continuous Delivery and the Oracle database, I describe how to automate deployments (installations). In the previous two Blogs I have described the tools and techniques used to create and install migration scripts.
In this Blog I will describe the ‘(un)happy flow’ for a database deployment: what to do if the deployment (installation) is correct (the ‘happy flow’) and what to do if it goes wrong (the ‘unhappy flow’)?
Today i was doing a small proof of a concept with a materialized view - i don't use these that often as use cases don't come up too much. In this particular case i was doing a test of what is/isn't possible when having a fast refresh-able mview on a table join.
For my initial basic test i just set up the following example (there are no PK's here - not my choosing - it's (more...)
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 […]
It’s not important that you know the answer. It’s important you how to get the answer!
I’m pretty sure I’ve written this before, but I am constantly surprised by some of the questions that come my way. Not surprised that people don’t know the answer, but surprised they don’t know how to get the answer. The vast majority of the time someone asks me a question that I can’t answer off the top of my head, (more...)
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...)
At last wearable technology makers are getting it: The fashion or style dimension of wearable tech (or #fashtech) is critical to user acceptance and market success.
They’re all at it now, hiring fashionistas left, right, and center to consult on, design, and wear their wearables. The hot wearabletech space at the moment is, of course, smartwatches with seemingly everyone offering a device (Swiss Army?) while now considering impact of how fashionable (more...)
We know that user experience (UX) is increasingly an emotional concept and we need to design accordingly.
UX is about how people feel about using applications. User experience design also enables us to express emotion too: Just look at the growth in popularity of emoji for example.
Here’s another emotional design feature I like: the Digital Touch capability on the Apple Watch that lets you share your own very heartbeat with another Apple Watch (more...)
This is the 10th installment of my blog series around Stream Processing and Analytics.
Two days later than planned, was traveling and had again trouble with my power supply😦
So what happened in the world of Stream Processing? For me the most interesting news last week was the release of Storm 1.0.
I’m a storm user for more than (more...)
Lots of information about the configuration and operation of a PeopleSoft system is stored in the database. Of course, most of the application itself is stored in the PeopleTools tables, for example, there are also performance metrics, particularly about batch processes.
PS360 is a new tool that I am working on that will use just SQL scripts to extract that data to flat files, and package them up in a zip file so that (more...)
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:http://www.slideshare.net/MishaRosenblum/plsql-userdefined-functions-in-the-read-world
- updated version of my "Printing without Printers" talk. As usual, I (more...)
My Oracle Public Cloud DBaaS instance did not respond. On closer investigation, it turned out to be down. Mounting the database ended with an ORA-3113 End of Communication Channel. Investigation of the startup log and the database alerts indicated that no new archive log files could be created. The DBaaS instance is in archive log mode – and has created quite a chunk of archive log files over the last few months – now causing (more...)
Some months ago I worked on a project where we thought it would be a good idea to use multiple guaranteed restore points to be able to navigate through time back and forth. Sadly we ran into some unexpected behaviour of the Fast Recovery Area.
This was basically a consolidation project. A rather complicated one: many tables had to be read from five other databases and its data needed to be inserted into the (more...)
Patrick Joliffe alerted the Oracle-L list to a problem that appears when you combine fixed length character columns (i.e. char() or nchar()) with column group statistics. The underlying cause of the problem is the “blank padding” semantics that Oracle uses by default to compare varchar2 with char, so I’ll start with a little demo of that. First some sample data:
rem Script: col_group_char_bug.sql
rem Author: Jonathan Lewis
rem Dated: Apr 2016
"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...)