It’s time to announce the 4th episode of Gluent New World webinar series by James Morle! James is a database/storage visionary and has been actively contributing to Oracle database scene for over 20 years – including his unique book Scaling Oracle 8i that gave a full-stack overview of how different layers of your database platform worked and performed together.
The topic for this webinar is:
When the Rules Change: Next Generation Oracle Database Architectures using Super-Fast Storage
We had an unusual problem with datapump this week when exporting a large schema. A couple of small 'static data' tables were consistently throwing the error: ORA-01466: unable to read data - table definition has changed
These tables were done towards the end of the export (which ran for 3 hours by the way even with parallel 6) so i could more understand a snapshot tool old error but this was actually saying the table (more...)
A question came up on the Oracle-L list server a few days ago about a query whose plan showed several bitmap operations. The problem was that the A-Rows column reported by a call to dbms_xplan.display_cursor() was showing numbers that semed to be far too small. In fact the query was producing a parallel execution plan, so the “actuals” for the parallel server operations were reporting zeros because the OP had used the “allstats last”(more...)
A few weeks ago, I received a request to review an AWR report for a database suffering from instance-level performance issues. Here are the the key parts of that report (with some masking):
WORKLOAD REPOSITORY report for
DB Name DB Id Instance Inst Num Release RAC Host
------------ ----------- ------------ -------- ----------- --- ------------
XXXX XXXXX XXXXX 1 10.2.0.5.0 NO XXXX
Snap Id Snap Time Sessions Curs/Sess
--------- ------------------- -------- ---------
Topic: In this short post you can find examples of how to use IPython/Jupyter notebooks for running SQL on Oracle.
IPython/Jupyter notebooks are one of the leading free platforms for data analysis, with many advantages, notably the interactive web-based interface and a large ecosystem of readily available packages for data analysis and visualization. Moreover IPython/Jupyter notebooks are a very handy format for sharing code and data as you will see in the examples. See also (more...)
This is just another solution of this problem for a chessboard, but you can choose any size of the checkerboard:
t as (select level i, cast(level as varchar2(1)) c from dual connect by level<=&d)
,x(l,s,n) as (
select 1 l, c s, chr(97)||c||' ' from t
select l+1, x.s||t.c, n||chr(98+l)||i||' '
and not exists(select 0 from dual
where L+1 - t.i = level (more...)
For those that are based in or near Canberra, I’ve created a new page on my website to host information on upcoming events that might be of interest to you. The first of these is a session for Oracle partners on the data challenges that customers face. Just to give you a few more reasons to come along, it’s also the first in a series of Beer and Pizza nights we will be hosting, so (more...)
There is no such thing as Unstructured Data. All data has structure. If it didn’t have structure we wouldn’t be able to use it.
What about free text? Well, that’s just a single column value (stored in a CLOB in Oracle, for example) and the free text is, more often than not, on a row with other columns, such as identifiers and timestamps, i.e. (more...)
Here’s a surprising (to me) execution plan from 184.108.40.206 – parallel execution to find one row in a table using a unique scan of a unique index – produced by running the following script (data creation SQL to follow):
set serveroutput off
set linesize 180
set trimspool on
set pagesize 60
alter session set statistics_level = all;
variable b1 number
exec :b1 := 50000
select /*+ parallel (3) */ id, v1 from (more...)
Most of us have probably seen the standard demo when it comes to emphasizing the need for sharable SQL, aka, using bind variables where appropriate. The demo traditionally compares two similar scripts, where one of them generates a lot of SQL statements with literals, and the other recasts the same script with bind variables for dramatic improvement.
Here’s a simple version I’ve whipped up:
SQL> create table t ( x int primary key) organization (more...)
So there are some cool features that are built into the GPIOZero library/module. One of the challenges I think many of us that have a lot of projects that we want to work on, is that we end up having to translate it to the version of RPI that we just happen to be working on or have available. This can be frustrating when the code is available (more...)
Quite often you can get into trouble with Oracle when you start combining different features.In this case of one my clients it is the combination of user-defined PL/SQL functions that can raise exceptions (think of currency conversion and a non-existent currency code gets passed into the function), DML error logging and attempting to improve performance by wrapping the PL/SQL function call into a scalar subquery to benefit from the built-in scalar subquery caching feature (more...)
This course will introduce you to the concepts of the Oracle Private Database cloud. You will be taught techniques for building, configuring, and managing a private database cloud with Oracle Enterprise (more...)
A nice little feature in 12c is the FETCH FIRST n ROWS syntax, which is a simple shorthand to avoid using inline views and the like to get a subset of the rows from what would normally be a larger resultset.
Here’s a simple example showing the syntax
SQL> select *
2 from t
3 order by 1
4 fetch first 8 rows only;