I love technology- ALL TECHNOLOGY. This includes loving my Mac Air and loving my Microsoft Surface Pro 4. I’ve recently went back to a Mac when I joined Delphix, trimming down the power I had on my Surface Pro 4, knowing the content I was providing would be required to run on hardware with lesser resources.
We all want more experience. The fastest way to get it is by helping solve other people's problems. I'm talking here of online forums and similar venues in which you can grow in skill by taking your current knowledge and applying it to scenarios others are struggling in. Because those others will present with far more problems in a shorter period of time than you could ever cause or encounter on your own.
Here's a snippet from a recent email I received offering some paid work:
"We would like to have someone whom we can contact who can assist us on occasion with Squarespace and are wondering how much you would charge for occasional help?"
Nice! Isn't it?
Here's another, asking my help on a project:
https://uhesse.files.wordpress.com/2016/11/set_interval.png?w=578&h=600 578w, https://uhesse.files.wordpress.com/2016/11/set_interval.png?w=144&h=150 144w" sizes="(max-width: 289px) 100vw, 289px" />
An existing RANGE partitioned table can easily be changed to be INTERVAL partitioned with the SET INTERVAL command. My table has been created initially like this:
Some people get very excited with roles, and quickly the number of roles proliferates to huge numbers…Until this happens
ORA-28031: maximum of 148 enabled roles exceeded
But in helping someone out on AskTom, I just found a nice touch in 18.104.22.168. I had granted my account 200 roles (since the max_enabled_roles parameter is capped at 148), fully expecting to get the standard error when attempting to connect. But I didn’t – all was fine. You can see what is going on via the following demo.
In the previous post I threw out a couple of options for addressing the requirement to transfer data from one table to another (“cut and paste” rather than just “copy”) without running into odd inconsistency errors. This triggered of a wonderful comment trail of alternatives based on how large the volume might be, how relaxed the concurrency requirements might be, and so on.
A comment by SydOracle1 picked up on my failure to get Oracle working with the “as of SCN” syntax because it kept reporting ORA-08187 and suggested a straightforward use of the VERSIONS strategy. I thought it was quite surprising that this could work given that “as of SCN” didn’t, so I whipped up a quick test to check it – adding a couple of little refinements to the supplied sample – and it worked.
Continuing the example of the previous blog post (is it possible to Smart Scan GTTs?), I am investigating if Smart Scans against GTTs can benefit from Flash Cache, or “optimised reads”. The easiest way to see this in your session is to calculate the change in session counters based on v$mystat or v$sesstat. Other tools might also provide information about the amount of data read from Flash Cache, but there are quite often extra licenses required …
If you’re using AQ, then it’s simple to setup simple enqueue and dequeue facilities on your local database to provide all sorts of asynchronous style processing in your applications. As long as you’re applications are designed and built to handle it, the “fire and forget” model to keep user applications responsive, and all of the “heavy lifting” done in the background is a very attractive one.
You can also use AQ to achieve the same concept across multiple databases, and the database will take care of propagating the messages from one database to the other. Here’s a simple demo of that.
I’m off to UKOUG again this year. It’s an awesome conference, and I’ll be doing three talks there.
On Monday at 3:30 it’s my first keynote talk “12 Things You’ll Love About the Oracle Database 12.2”, followed up at 6pm by “AskTom – One Year On”.
On Tuesday, at 3:30 I’ll be doing a talk for anyone want to come up to speed on all of the partitioning features with “Partitioning 101”.
A question that has come up while preparing to deliver another Exadata Optimisation Class is whether you can offload queries against Global Temporary Tables (GTT) or not. There are subtle differences between heap tables and GTTs such as how statistics are handled and where they are stored that merit a little investigation.
I have used the lab environment on the X3-2 (Exadata 22.214.171.124.0, 126.96.36.199.160419 RDBMS) to test if I can Smart Scan GTTs. There are some enhancements in 12c regarding GTTs that are mentioned on the Optimiser blog here: