Monday, December 31, 2007

11g New Feature - External table compression and encryption

HAPPY NEW YEAR... well, almost. I thought that I'd share an Oracle Database 11g New Feature with you now that the year is almost done. We will talk about external table encryption and compression! Both of these features require either a license for the compression option or a license for the advanced security option. Sorry, I don't determine what is licensed and what isn't, I just shell out information on the new features! :-)

External Table Compression

Oracle Data Pump supports compression of dumpfiles in Oracle Database 11g. As a side-effect, you can also compress external tables dump files when creating them. Simple add the compression enabled syntax to the access parameters section as seen in this example:

Drop table ext_new_emp;
host del c:\oracle\admin\orcl\dpdump\new_emp.dmp

create table ext_new_emp
organization external
type oracle_datapump
default directory DATA_PUMP_DIR
access parameters
(logfile DATA_PUMP_DIR compression enabled)
location ('new_emp.dmp')
as select * from new_emp;

External Table Encryption

Oracle Database 11g offers TDE, Transparent Data Encryption. The Oracle Data Pump driver supports encryption in Oracle Database 11g. Use the encryption enabled keyword when creating the external table to encrypt the resulting dump file as seen in this example:

Drop table ext_new_emp;
host del c:\oracle\admin\orcl\dpdump\new_emp.dmp
create table ext_new_emp
organization external
type oracle_datapump
default directory DATA_PUMP_DIR
access parameters
(logfile DATA_PUMP_DIR encryption enabled)
location ('new_emp.dmp')
as select * from new_emp;

Tuesday, December 25, 2007

Merry Christmas and an Oracle Database 11g New Feature - Password Changes

MERRY CHRISTMAS!!!! I hope you are enjoying this holiday!!

There are some new features in Oracle Database 11g with respect to user passwords you might want to know about.

1. DBA_USERS no longer displays the password hash at all. The column is there, but it's NULL.
2. You can still use user$ to find the password hash.
3. Common passwords are salted, thus the hashing is different as seen here.

The robert and robert1 account both have a password set to robert in this example:

SQL> l
1 select name, password from user$
2* where name like '%ROBERT%'
SQL> /

------------------------------ -----------------

Note that the hashes are different even though the passwords are the same. This is because the passwords are "salted".

4. Salting does not impact the ability to use the "using values" parameter with the SAME ACCOUNT as seen here:

SQL> /

------------------------------ ------------------------------

SQL> grant dba to robert, robert1
2 ;

Grant succeeded.

SQL> alter user robert1 identified by dodo;

User altered.

SQL> connect robert1/dodo
SQL> alter user robert1 identified by values 'F3042C3EBB6E134F';

User altered.

However, if you use the same hash value with a different account, it will not work. So here, we changed the robert1
account to use the hash password for the robert account (which is still the password robert). Thus, the hash is dependent on the user account (which provides the "salting" key)...

SQL> connect robert1/robert
SQL> alter user robert1 identified by values 'F26C10F60B4EFB98';

User altered.

SQL> connect robert1/robert
ORA-01017: invalid username/password; logon denied

Warning: You are no longer connected to ORACLE.

Thursday, December 20, 2007

My office view...

I just thought I'd share the view from my office window this afternoon. The snow on the mountains looks beautiful. For those of you not acquainted with Salt Lake City... The temple is probably pretty easy to recognize. It's nestled between the Church Office Building (COB) on the left and the Joseph Smith Building (JSMB) to the right. You can see the conference center to the far left of the picture too. Note the flag on the JSMB. The wind is blowing pretty hard today, pretty much out of the south.

Not a bad view if I say so myself. Have a great day and more 11g Features are coming soon!

Monday, December 17, 2007

11g New Feature - DBMS_COMPARISON!!

I thought I'd share an 11g New Feature with you today! This is in the form of the dbms_comparison package that is new in Oracle Database 11g.

With dbms_compare you can compare objects/schemas/data between two different databases or schema's. This is handy, say, in replicated environments when things get out of wack. You can use dbms_compare to help determine if there is some data divergence between two tables. If data divergence is found you can bring the objects to a consistent state.

For example, if I have two schemas in my database (scott and Robert in this case) I can compare the EMP tables in both schemas. First I create the comparison:

exec dbms_comparison.create_comparison('robert','robert','emp',null,null,null,'scott','emp');

This tells Oracle that I'm getting ready to compare these two objects. You can do this over a DBLink too by just defining the name of the dblink. Even more, while the local compare side must be Oracle Database 11g, the remote site can be Oracle Database 10g release one or later!!

Now I can do the actual compare as seen here:

compare_info dbms_comparison.comparison_type;
compare_return boolean;
compare_return := (

if compare_return=TRUE
dbms_output.put_line('the tables are equivalent.');
dbms_output.put_line('Bad news... there is data divergence.');
dbms_output.put_line('Check the dba_comparison and dba_comparison_scan_summary views for locate the differences for scan_id:'||compare_info.scan_id);
end if;

Here is the result in my case:

Bad news... there is data divergence.
Check the dba_comparison and dba_comparison_scan_summary views for locate the
differences for scan_id:13

As we can see here, the results send us to dba_comparison and dba_comparison_scan_summary where we find these results:

select a.owner, a.comparison_name, a.schema_name, a.object_name,
z.current_dif_count difference
from dba_comparison a, dba_comparison_scan_summary z
where a.comparison_name=z.comparison_name
and a.owner=z.owner
and z.scan_id=13;

------------------------------ ------------------------------
------------------------------ ------------------------------ ----------

There are actually a lot of views you can use here including:












You can also use the dbms_comparison.converge function to "fix" the data, as it were. This procedure will converge our objects, taking care of the data divergence. With this procedure you can either say that the remote or local table is to be the "master" table. Divergences will be sourced from that object. So, in our case we can update the robert.emp table so that it's no longer divergent with the scott.emp table. Here is an example:

compare_info dbms_comparison.comparison_type;
dbms_comparison.converge (

dbms_output.put_line('--- Results ---');
dbms_output.put_line('Local rows Merged by process: '||compare_info.loc_rows_merged);
dbms_output.put_line('Remote rows Merged by process: '||compare_info.rmt_rows_merged);
dbms_output.put_line('Local rows Deleted by process: '||compare_info.loc_rows_deleted);
dbms_output.put_line('Remote rows Deleted by process: '||compare_info.rmt_rows_deleted);

--- Results ---
Local rows Merged by process: 16
Remote rows Merged by process: 0
Local rows Deleted by process: 0
Remote rows Deleted by process: 0

Note that if you run this more than once, you are in no danger of duplicating your data as seen in this subsequent output from a second run:

--- Results ---
Local rows Merged by process: 0
Remote rows Merged by process: 0
Local rows Deleted by process: 0
Remote rows Deleted by process: 0

Something else to be aware of. If the data changes in either table, it can impact the compare/converge operations. Thus for best results, you should quiesce all activity on the tables being compared.

There are some other requirements with this feature that you will want to review (as always), but it is a very powerful new feature in Oracle Database 11g!

Fun fun 11g!!

Monday, November 26, 2007

Something a little different....

I was surfing around on YouTube and thought I'd share this with you...

Wednesday, November 21, 2007

The sadness of Extremism...

Irrational extremism probably turns me off more than just about anything else. I was surfing around today and saw a post somewhere that said something like "...human exterminating CO2 emissions". Besides the scientific inaccuracy of the statement, it just SOUNDS extreme, doesn't it? Doesn't something like that just set off warning bells in your head? Doesn't the sky is falling fare of Al Gore's "An Inconvenient Truth" just set off warning bells? Left or right, when someone is sounding an alarm THIS loud, I really start to wonder and worry. We are supposed to be reasonable, rational human beings.

I listen to talk radio. I listen to those on the other side who are just as polarized on this issue. I've heard them, some years ago, deny even the possibility of climate change. Again, an extreme position that sounds warning bells in my head. It's unfortunate that there isn't some good, middle of the road, less polarized talk radio.

I know fully well that this planet's climate changes over time. Anyone who has ever taken a basic science class or two, ought to know that. I can remember some time back (around the 70's as I recall) that there was talk about climate change in the cooling direction, and now it's warming. Just the term Ice Age seems to imply that some major cooling has occurred in the past, don't you think? Climate change in and of itself seems like a no brainier of a concept. Talk radio seems to have finally caught on about Climate change.... at least they do not deny it anymore.

With a topic as hot as Climate Change, enter opportunity, enter extremism, enter political objectives and designs. Enter polarization, enter bad science, bad data and downright fabrication of information for whatever purpose. Frankly, it all makes me sick. I've spent some time reviewing the points of view of both sides. Frankly, the following website seems to provide the clearest cut points of view with regards to Climate Change:

What do I like about Icecap?

1. It seems level headed to me.
2. It does not dismiss the idea of climate change, but challenges the current "Global Warming" is imminent thinking. It does so in quite a powerful way.
3. It makes a good case that the current polarization on the climate change issue may work to our detriment rather than to our benefit.
4. It seems to me to have some pretty good science. No melodrama, no mountains that should have snow and do not. Facts and some good opinion.
5. Check out the recent data on the "Hockey Stick"... One of the center piece datums of Al Gore's movie.

To me, the current Global Warming extremists are dangerous. While there are some clear issues on the front of pollution (China, get your act together and join the 20th century will you?), car emissions (the Utah valley when we have an inversion layer is a blah place to be) and the like, we need to step back and realize that this topic is not one worth the Billions of dollars that could be well spent in a wasted effort. Indeed, we need to ask ourselves *IF* warming is really a bad thing. After a great deal of reading, I'm not sure it is.

The bottom line is that somewhere, kids are starving... Somewhere a genocide is occurring... Somewhere a child is dying at birth because people are not properly trained... Somewhere a terrorist is being trained to kill as many people as possible. These problems seem more immediate to me than the long term potential of Climate Change (measured in decades and centuries) and much more worthy of billions of dollars. Climate Change is important, don't get me wrong, but we have incorrectly prioritized it above humanity in general.

That is a mistake.

The sad thing is, with polarized people, you have to hit them over the head with a brick to convince them.... Even then, that brick had better further their cause and agenda or it won't mater.

Shame human beings can be that way.

Friday, November 16, 2007

Back from OOW!!

I'm back from OOW in San Fransisco. Had a great time, went to some good sessions and saw some long time friends. I also realized that it's been forever since I posted anything on my blog!

I'll put together something 11g related this weekend for those of you who (rightly) feel I've just fallen off the blog band wagon. I think once I got the 11g New Features book done (it's now available on Amazon) I just took a writing break.

I'm off to Ottawa in a couple of weeks to teach a one day APEX class for the IOUG. I've never been there and I'm looking forward to it. One thing I'd like to know though is if the Coke company is still selling the Coke C2 product up there? I've heard it's still available in Canada. They quit selling the stuff here in the states much to my irritation. Anyway, if you live in the Ottawa area and if you know if they still sell C2 and where I might get my hands on some, please drop me a line and let me know. I love the stuff!!!

Finally.... I can't figure this out. Is there anyone out there that does not know what that little "fasten seat belt" sign is for on an airplane? I am constantly amazed how people will unbuckle the seat belt about 3 minutes after take-off to goto the bathroom. Now, I sympathize with the need to goto the bathroom, but really.... the seat belt sign is there for a reason. Particularity at lower altitudes inside the confines of Class B airspace, STAY IN YOUR SEAT!! It also irritates me to see parents let kids get up and run around when the seat belt sign is lit. What is it with parents? Control your kids and teach them discipline! As a pilot I can tell you that just because the air seems to be smooth and it looks nice outside, that is no guarantee that nastiness is not far away. Only your pilot has the information available to determine the potential risk that awaits you (and even there, the information available can be weak). You have not lived until you have encountered CAT (Clear Air Turblance) with a 1500FPM drop. Trust me, if you are not belted in something like that you will find your body laid flat on the ceiling and then the floor after the plane has recovered.

Monday, November 05, 2007

Ottawa!! I Forgot to mention Ottawa!!

Blast, I forgot to mention Ottawa!! ..... I'll be doing an IOUG University session in Ottawa later this month on Oracle Application Express (APEX)! It's a day long University session. I'll be introducing APEX, and teaching you how to build a basic application! You will see how easy it is to use! This will be on November 30, 2007!

If you are in the area, and curious about APEX, you can check out:

For more information!!

Back from Vacation, the book is out and conferences...

I am just back from a long (for me) vacation with my wife and 3 of my 5 kids. We had a nice week long Mexican Rivera cruise, and a day or so at Disney to boot. Well, we *were* going to go to Disney, but the kids decided they wanted to goto Knott's Berry Farm instead. I don't know, maybe they got some water ingested when they went scuba diving or something, because I can't see how one would NOT want to goto Disney.... but, alas, we took them to KBF.

The cruise was a blast, and I'll post a few pictures later in another blog entry and share more fun details about the cruise. Sure it's not Oracle but my life is not all Oracle!!

As for the book, I just got my copies today of Oracle Database 11g New Features!! So, it should be selling in the next couple of days!! Woo Hoo!! I hope you all will find it of help getting up to speed on Oracle Database 11g. I also hope that if you find a new 11g feature that is not in the book that you find invaluable, that you will share it with me and let me share it with everyone else out there.

I look forward to the rash of conferences coming up in the next few months! OOW is soon to come, then RMOUG and Collaborate. Conferences can be great, if you find the right people to listen too! I remember listening to Connor McDonald at the UKOUG some years back. I'd just done a 9i New Features presentation and Connor got up and started to pontificate on 9i. As I listened to him he mentions dbms_xplan.display which I believe was a new feature in release 2 of 9i. I sat there wondering how I'd never heard of it before! What a marvy tool dbms_xplan.display is I thought to myself. So, I humbly admit that I don't know everything (my kids might say I don't know anything).

I'll be at an author signing thing at Open World. If you are there, come look me up and say hi! I'll post more details shortly!

OH! 11g is now available for Windows! Download it and have a go!!

Saturday, October 27, 2007

Default Profile Changes in 11g.. Upgrade issue and Make A Wish...

A possible upgrade issue when you upgrade to Oracle Database 11g will be a change to the default profile setting for password_life_time. This parameter used to default to unlimited. In Oracle Database 11g it now defaults to a value of 180. The implication is that after your 11g upgrade, passwords will start expiring. You will want to be prepared for that and either change this default setting or prepare to deal with it's implications.

You will note the addition of the Make a Wish Foundation to my blog. Next to my church, this is my favorite charity. I hope you will join me in supporting the Make A Wish Foundation. I think they do fantastic things for children who are are going through very tough experiences.

Tuesday, October 23, 2007

A change from 10g to 11g... a short blog entry...

It's been so busy of late and the blog has suffered.... I thought I'd throw in a quick 11g related change...

EDIT: To avoid confusion, when I say OEM in the context of this post, I'm talking about Oracle Database Control, NOT Grid Control. I have NOT checked if the following is true for Oracle Grid Control. - Thanks!! RF

If you are using OEM in 10g, you will notice a slight change when you move to 11g. If your URL in 10g is something like this:

you will see that it changes to:

Note that Oracle Database 11g has changed to using secured HTML pages with OEM. So, after installing and upgrading to 11g, you will need to change any bookmarks to using https instead of http.

More on 11g soon...!!!

Wednesday, October 10, 2007

It's done!!

Well, I just finished up the 11g New Features title, it's done and on it's way to the printer! If everything works out right, we will have books for OpenWorld!! Woot!

I'll be at OpenWorld next month. Oracle Press is doing an author meet and greet. I'll be there on the 14th of Nov (thats Wednesday). I don't know who else will be there (they will have a number of authors at these meet and greets) but I hope if you have a moment you will stop by and just say hi!

It's a little late tonight and I'm beat, but I wanted to let you all know the book is done. I'll be speaking in Omaha next week on 11g, my first presentation on the subject!

I'll have another Oracle Database 11g New Feature for you sometime very soon, stay tuned!!

Friday, October 05, 2007

Oracle 11g - Snapshot Database

Oracle Database 11g...
What's in your server?

Greetings fellow DBA types. Here is another Oracle Database 11g New Feature, one in particular that I think is quite exciting, Snapshot Databases...

We take you into the bowels of a IT Shop where a conversation is just beginning...

(by the way, I love developers.... I really do. I'm just having fun with you if you are one!)

Developer: Hey DBA! We need to add an index!

DBA: Woops... the test database is being used for testing and I can't change anything now, so we can't test this new index.

Developer: Well, production is in a bad way, users are complaining and your job is on the line, we need to add this index. Do it or I call the boss, and you know he will tell you to do it, because everyone listens to developers and no one listens to DBA's. Of course, if the index does not work, they will blame you, not me!

DBA: Wait! I have an idea! We are using 11g, and our test database has a standby database! We can use Oracle's Snapshot Database!

Developer (stupid look on his face): What?? What is that??

DBA: A great new feature. I can make changes to our standby database like adding your index... we can test the changes, even changing data and the like. Then, just like magic, I flash the thing back and restart the capture process just like nothing happened.

Developer (still not quite understanding, but feinting that he does): WOW! What an amazing feature!

DBA: Yes, and now Oracle gives us easy commands to do this! I simply put the standby database in snapshot mode:

alter database convert to snapshot standby;

Then we add your index, and we test away. Once we are done I can revert the database back to a physical standby database:

alter database convert to physical standby;

and thats it, it's now a standby database again with all the changes, including the new index, rolled back and the redo being applied again from the main database!

Developer (lost, blank look... truly he does not understand): AMAZING! You DBA's have it made.

DBA: Yep!!

Yes, Oracle Snapshot Standby .... Coming in Oracle Database 11g. What's in your Server?

Wednesday, October 03, 2007

11g - OEM Secure Mode

As I was finishing off my writing on the Oracle Database 11g New Features book I came across this little gem that does not seem well documented. It appears that when you create the OEM repository now with emca, it creates it in what is called "secure mode". This means that there is an encryption key file created that is associated with the repositories encrypted data. Also during an upgrade Oracle will encrypt the existing repository for you. Oracle is so helpful!

The key file is called emkey.ora. It is located in the following directories:
  • For single instance databases:

  • For Oracle RAC databases:

Needless to say, this adds one more file to your backup strategy. Hopefully you already have OS level backups of $ORACLE_HOME occurring now, so you would be covered. Of course, the other option is to just drop and re-create your OEM repository after restoring your database, if the emkey.ora file was lost too.

However, this does not seem well documented, and I can't find anywhere that seems to describe what "secure mode" actually is.

Oracle Database 11g New Features is coming soon!! We are in the final stage before it goes to the printer (it's called page proofs). The book should be out in time for OOW!

End of line...... (for now)

Tuesday, September 18, 2007

Getting ready for 11g, how's your /dev/shm?

WOW I'm busy! Thats a good thing but it sure slows down my blog posting. I apologize for that. I've been working on my latest rant essay to post here, but it's not done yet, and I really should do something Oracle 11g related, so here it is!

As you may know, 11g now manages both the SGA and the PGA automatically though some new parameters, memory_size and memory_max_size.

Memory_size replaces sga_size and pga_aggregate_target, combining the two into one memory pool for Oracle to manage (well, not really one big memory pool, they are still separate, but Oracle deals with all the details under the covers).

Memory_max_size is roughly like sga_max_size + pga_aggregate_target, gobbling up memory for future use should you use it.

So, why the comment about /dev/shm? If you are going to move to 11g's flavor of memory management on Linux, then you might run into this little error:

ORA-00845: MEMORY_TARGET not supported on this system

and you might say to yourself, "Wow, that stinks, I can't use memory_target on Linux."

Well, thats not quite the case. In fact, the problem is likely that /dev/shm is not configured big enough. You will get this error if /dev/shm is not configured large enough to handle the memory you are allocating with memory_target. So, if you are planning on using these new features, be preparing now and increase the size if /dev/shm.

More on this and many other topics in my new Oracle Database 11g New Features book which is available for pre-sales now on It will be out VERY SOON!!!

Wednesday, September 05, 2007

Greetings from Denver

I'm in Denver this week teaching a class. Wow, what a week. I flew to Denver in my airplane to teach. It was about a 4.5 hour flight and it was great! Nothing like flying over the rockies at 12,500 feet to get your blood pumping! Especially when the reported density altitude at the airports nearest to you (which are at about 7500 feet) is something on the order of 9,800 feet MSL (above sea level). You just hope your fuel calculations were right!!

Today has been the anti-technology day. Everything has broken and all at once. My wireless would not work, my cellphone would not dial out, we are using iSQLPlus here and that went south... UGH!

On a good note, I finished up the last chapter in Oracle Database 11g!! Yeahhhh.... So now it's a process of going through the edits and getting it ready to print. I love the writing but hate the editing process!!!

I'll try to post a new 11g feature shortly...

Thursday, August 30, 2007

Oracle 11g - Statisticly speaking!

OK, it's time for another Oracle Database 11g New Feature! Today some new statistics related features.

In Oracle database 11g you now have two new kinds of statistics that you can collect. Collectively these are known as extended statistics. The two kinds of extended statistics you can collect are:

1. Multi-column statistics
2. Expression statistics

Prior to Oracle Database 11g Oracle had no way of understanding the relationship of data within multiple columns of a where clause. Oracle Database 11g adds multicolumn statistics to the mix to try to solve this problem. Now the optimizer can generate more intelligent cost based plans when you have multiple columns in your where clause, based on the combined selectivity of both columns. Multi-column statistics are not generated automatically, when you generate statistics. You have to define the columns you want to generate the statistics on when analyzing the table. Here is an example of generating multi-column statistics on the table DUDE for columns DUDENO and DUDES_JOB. Note the "for columns" syntax that defines the columns to build the multi-column statistics on:

exec dbms_stats.gather_table_stats(null,'DUDE',
method_opt=>'for all columns
size skewonly
for columns (DUDENO,DUDES_JOB)');

Expression statistics allow Oracle to collect selectivity information based on the application of a function on a column. This has direct relationship to the use of function based indexes. Again, you collect expression statistics with dbms_stats when you collect table statistics as seen in this example:

dbms_stats.gather_table_stats(null, 'DUDE',
method_opt=>'for all columns size skewonly
for columns (lower(dude_name))');

Now the optimizer can rationally make execution plan choices with regards to the selectivity of the data in the dude_name with the lower function applied.

There is even more in my new book, Oracle Database 11g New Features. It's available for pre-sales on Amazon and should be out in November!

There are more new statistics related features in 11g including publish/subscribe and restore of old statistics!! I'll talk about that in another post.

Monday, August 27, 2007

Oracle 11g Oops...

Been quite busy of late, so my blog has not had quite the number of updates that I'd like. One thing I thought I'd share with you is that I found my first Oracle 11g bug last week. Apparently when you are using the FRA with 11g it decides to archive redo logs to the FRA (as one would expect) AND to the default archivelog destination directory (which one does not expect). I've opened an SR with Oracle on this and we will see how it goes. I've heard a story or two of other bugs that have been discovered, but I've not heard details yet.

So, the moral of the story with 11g is, be careful out there!

I'm finishing up another chapter of my new book, Oracle Database 11g New Features. I'll have some more Oracle features to share with you in the next couple of days, so please standby and be patient.

Thursday, August 23, 2007

Landing on Insturments...

So, more Oracle Database 11g in a couple of days. I'm wrapping up another chapter right now and I'll post a bit or two soon.

For this post though, I'd like to share with you that I'm back working on my instrument rating. For me, the best part of flying is cross-country trips. Some people like to get out and just putter around, but I love the experience of actually flying somewhere. Seeing new things, new airports and so on. Because of this, weather is a bit more of an issue for me.

I started my instrument training back in Chicago after I got N7598U. I logged about 15 hours of training or so. Now, I'm back at it! I took my written a few months ago, so thats out of the way. I've just started the flying back up this week and I've logged about 4 hours. Here is one of the approach plates that I use for doing an ILS into Ogden...

I find this stuff pretty cool. This is a precision approach which means it pretty much takes you down to the runway both vertically and horizontally.

I flew this approach and a couple of others on Tuesday, and flew down to Provo on Wed. Saturday I'm back up again and I hope to be done by October if I'm lucky.

More on this later, and more Oracle Database 11g!!!!

Thursday, August 16, 2007

Oracle Support and 11g

There were some initial reports that Oracle Support had pushed back on providing SR support for Oracle Database 11g after it's initial release last week. I've not heard any reports in the last couple of days, so I hope this problem has been resolved.

However, this does bring up a good topic, dealing with Oracle support.

First and foremost, one has to realize that while Oracle support is a service organization, it is a big organization. As a result Oracle support sometimes lumbers slower than one would like, and sometimes you get a support analyst that is less than steller. All this is to be expected with a large organization. Because of this it's important to know how to move around such a beast.

First of all, when you open an SR and you need some form of response, make sure the SR is a priority 2 or better. Obviously if you don't want to work the thing 24/7 then you don't need it to be a priority 1, but I've seen priority 4's lag into forever before you get help. I've never seen a priority 3 I don't think (not that I've noticed), so I don't know if those even exist. How do you ensure that your SR is a priority 2? I've noticed that when you enter the SR, if you mark the last 3 questions as NO. These questions are:

Can you easily recover from, bypass or work around the problem?
Does your system or application continue normally after the problem occurs?
Are the standard features of the system or application still available; is the loss of service minor?

These will make you a priority 2. You can also always ask the person working your SR to escalate to a 2.

The next key is escalation. There was a very good post on ORACLE-L which references Chris Warticki's Blog with information about this very topic, so rather than rehash it, I'll just post a blog link here:

The bottom line with Oracle support seems to be the squeaky SR gets the oil. You pay a lot for that support, so squeak my friends!

[Edit: added some clarity to a sentence]

Wednesday, August 15, 2007

Oracle Database 11g Finer Grained Dependencies

So, here is a promised new feature for Oracle Database 11g!! Have you ever had something like this happen:

We have a view, emp_view built on EMP as seen in this query:
set lines 132
column owner format a8
column view_name format a10
column text format a50

select dv.owner, dv.view_name, do.status, dv.text
from dba_views dv, dba_objects do
where view_name='EMP_VIEW'
and dv.view_name=do.object_name
and dv.owner=do.owner
and do.object_type='VIEW';

-------- ---------- ------- ---------------------
SCOTT EMP_VIEW VALID select ename from emp

Now, we add a column to EMP and watch what happens to the view:

alter table emp add (new_column number);
select dv.owner, dv.view_name, do.status, dv.text
from dba_views dv, dba_objects do
where view_name='EMP_VIEW'
and dv.view_name=do.object_name
and dv.owner=do.owner
and do.object_type='VIEW';

-------- ---------- ------- ---------------------
SCOTT EMP_VIEW INVALID select ename from emp

Now.... Oracle database 11g has improved dependency management. Let's look at this example in 11g:

select dv.owner, dv.view_name, do.status, dv.text
from dba_views dv, dba_objects do
where view_name='EMP_VIEW'
and dv.view_name=do.object_name
and dv.owner=do.owner
and do.object_type='VIEW';

-------- ---------- ------- ---------------------
SCOTT EMP_VIEW VALID select ename from emp

alter table emp add (new_column number);
select dv.owner, dv.view_name, do.status, dv.text
from dba_views dv, dba_objects do
where view_name='EMP_VIEW'
and dv.view_name=do.object_name
and dv.owner=do.owner
and do.object_type='VIEW';

-------- ---------- ------- ------------------------------
SCOTT EMP_VIEW VALID select ename from emp

Note in 11g that the update did not invalidate the view. If the change had been to the ename column, then it would have invalidated the view since there is a direct dependency between the ename column and the view. This same new dependency logic applies to things like PL/SQL code too.

More on 11g New Feature topics in my new book, Oracle Database 11g New Features from Oracle Press.

Tuesday, August 14, 2007

All along the watchtower

11g SOON... However I was sitting here and thinking about some of my other passions. I watch almost zero TV. For some reason though, I seem to like Sci-Fi. There are a few shows that have a fond spot in my heart... I'm not one of those guys that walks around in some uniform at some convention, but they do speak to me.

They are:

Battlestar Galactica (the new rendering).... If you didn't catch the season 3 finale, here it is... simply amazing I think... Season 4 will be it's final season, very sad!

Another show with a soft spot in my heart, Babylon 5... Seasons 2-3-4 were during some times of very good, and very tough times. There is a new CD out just now, Babylon 5: Lost Tales. It was just released a couple of weeks ago. The two stories on it are not the best of Babylon 5 but it's nice to see some B5 again. Here is a YouTube link to the trailer:

and another bit on YouTube from the series, the season 3 finale (I love YouTube):

and finally, a campy old show that takes me back to about age five, UFO...Here are the opening credits with what I think is one of the coolest opening theme songs of all time (it *is* CAMPY):

Ok.... so I've bored you with enough personal stuff. Tomorrow something 11g related...

[Edit: misspelling...]

Monday, August 13, 2007

My ode to Disney

My Ode to Disney...

Walt thank you for what you have done,
for Disneyland is really truly fun.
However for me, I must confess,
that Disneyworld is truly the best.

Disneyland was first, it is true.
It's an amazing experience for one who is new.
Disneyworld though, I must admit,
I think it better, by just a bit.

Both have Splash Mountain, a super ride,
but Disneyworlds is better, I must confide.
At Disneyland, it's one person per seat,
At Disneyworld, two together is neat.

The Haunted Mansion, oh what a thrill.
In both parks it's great, that is until,
you get to the dead center of the room,
and our host betrays a sense of doom.

Alas, Pirates of the Caribbean at Disneyland,
must take the prize well in hand.
It is a bit better than Disneyworld I think,
since there is also a place to eat and drink.

The castles simply can not compare,
at the two Disney properties fair.
Disneyworld's is a grand sight to see,
Disneyland's looks, well, quite wee.

For some reason I must admit candidly,
the Contemporary makes my Disney experience handily.
I love the look, I remember as a child,
wanting to stay there and just go wild.

In the end, both will do fine,
when I need to escape the adult confine.
Mickey and pals, are great to see,
and a Disney experience is wonderful for me.

If you came looking for Oracle, do not fear,
Another installment is very, very near.
Angst not, more is soon to come,
for sharing Oracle goodies is way to fun.

Copyright 2007 by Robert G. Freeman
All Rights Reserved
Like anyone really cares or would ever want to reprint this anyway... :-)

Sunday, August 12, 2007

Oracle 11g is released and Invisible Indexes!!

I'm a bit tardy with a blog entry about this since it happened last week, but Oracle Database 11g for Linux has been released!! I've got it up and running on my Linux VMWare machine right now!

For those of you interested in yet another new feature, how about invisible indexes? No, invisible indexes are not a character in a Wes Craven slasher picture, but rather a way to kind of turn on/off an index from the point of view of the optimizer. For example, we have a table called TEST with an index called ix_test. Look at how the execution plan changes if I make the ix_test index invisible:

-- first the index is visible
SQL> alter index ix_test visible;
Index altered.

SQL> select * from test where id=1;


Execution Plan
Plan hash value: 416078300

| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |
| 0 | SELECT STATEMENT | | 1 | 13 | 1 (0)| 00:00:01 |
|* 1 | INDEX RANGE SCAN| IX_TEST | 1 | 13 | 1 (0)| 00:00:01 |

-- Now, make it invisible
SQL> alter index ix_test invisible;

Index altered.

SQL> select * from test where id=1;


Execution Plan
Plan hash value: 1357081020

| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |
| 0 | SELECT STATEMENT | | 1 | 13 | 24 (5)| 00:00:01 |
|* 1 | TABLE ACCESS FULL| TEST | 1 | 13 | 24 (5)| 00:00:01 |

One thing I noticed on the production cut is that you can not use a hint and have the index be used. So something like this does not seem to work:

select /*+ index(test ix_test) */ * from test where id=1;

The doc's I've seen so far seem to indicate this should work, but it might warrant some additional investigation before I call it a bug.

[Edited addition]
In looking at the production documentation now, all references to hints making the invisible index accessible by the optimizer are gone. So, it appears that hints, indeed, do not impact the optimizers ability to see an invisible index.


Wednesday, August 08, 2007

Robert goes to Mexico

So, I mentioned in an earlier post that I took a little vacation. My wife and I took a 3 day cruise to Ensenada, Mexico. We like to cruise, but we always find the end of the cruise very depressing. To avoid that depression, we decided to also spend a couple of days at Disneyland.

I'd never cruised before I got married, so I was not sure how much I would like it. I now find that it is my favorite thing to do on vacation along with Disney and riding trains. For me, a cruise is really the best of all worlds, you get to go places you have never been, you get to eat well, you can just be lazy and do nothing or you can get involved in a myriad of activities on the ship. My wife and I take different "kinds" of cruises. There are those that we take to actually goto the places and see the sights, for example we did an Alaska cruise which was incredible. Then there are our "don't get off the ship" cruises, which are usually to places we have already been. We take advantage of those cruises to sleep in, read, eat, swim and really enjoy the ship and having nothing to do for days on end.

Our cruise started with a flight from Salt Lake to Long Beach. After nearly missing our flight due to a long TSA line, we had a nice Jet Blue flight to Long Beach. Long Beach is an interesting airport. It's not quite modern, but just short of third world. I don't know if I've ever collected my bags, outside, at an US airport. No airstairs either, just a roll-up platform. After that we ate at the Airport Marriott (highly recommended!) and then headed to the ship.

One of the best things about cruising is the food. We were cruising on Royal Caribbean, and the food on this particular ship was above average for a cruise line.

One problem on the shorter cruises is that the clientele is younger, and a certain number of them are there, first and foremost, to get drunk. It was clear, that even before we left port, that the partying had begun. I don't mind it so much, except for the idiots that get rude and feel like they have to yell and scream at the top of their lungs. Other than that, I find drunken 21 year olds pretty funny.

I must admit, that I have a really hard time getting away from work, even when on the cruise. But there is nothing better than sitting on your balcony with the fresh sea air blowing in your face and the sound of the waves below as you cruise. It makes working so much less work.

On the way back from Ensenada, I was taking a bit of a restless nap in the late afternoon. I decided to get up and go out on the balcony. Lo and behold, WHALES!! Holly smokes, not just one but a whole pod of the things. It was amazing. I saw more whales on my 3 day quick cruise to Mexico than I saw on my 7 day Alaska cruise!! I yelled at my wife to come and see the whales and she was just so excited... I love it when she gets excited, it just makes my day to see her happy. It was amazing to watch them break the surface and see them exhale. Then you could see their big tails break as they headed back under the water. Amazing.

Every time I see whales though, I must admit.... I think of Star Trek IV and Mr. Scott's line, "Keptn', there be WHALES here!". I'm not a nerd, I'm not a nerd!

Disney was a great experience too, but I must admit that I prefer DisneyWorld to Disneyland. Thats just personal preference I am sure, and Disneyland is a perfectly wonderful place to go, but I miss seeing the Contemporary, for example. Plus, there is just so much more to do at DisneyWorld. I'll talk more about Disney in a later entry...

Well, enough goodies for now...

[Edited for spelling]

Tuesday, August 07, 2007

11g Security New Feature... A short one...

Two new security related features to Blog about this week. First, Oracle Database 11g comes with a new view called DBA_USERS_WITH_DEFPWD. What is for you ask? This view will show you the user accounts that are assigned default passwords, like scott/tiger. You can therefore change those passwords and be more secure. This view has one column, USERNAME.

Also, passwords in Oracle Database 11g will be case sensitive now! When you upgrade, your old passwords will not be case sensitive, but the first time you change the password of an account after an upgrade it will become case sensitive. New accounts will be case sensitive out of the box. The parameter sec_case_sensitive_logon will be provided to disable/enable this feature.

One other note. All the features I'm discussing in this Blog at this point are from Beta code. They can change between now and the time production code comes out, so be aware.

More on this and many other Oracle Database 11g topics in my new book from Oracle Press, Oracle Database 11g New Features. Check it out!

[Post edited for spelling error]

Wednesday, August 01, 2007

11g New Feature!! Revenge of Compression!!!

As promised, an 11g new feature for you. Today, Table compression.

While Oracle Database 10g offered limited table compression, Oracle Database 11g offers full blown table compression. Compression is supported in the following cases:

· Direct path SQL*Loader operations

· Create table as select commands

· Parallel inserts, or serial inserts with an append hint.

· Single row, or array insert and updates.

This allows you to use compression on any database table, any time. The result can be a much reduced storage requirement and potentially much better performance!

More on this and many other new features in my upcoming book Oracle Database 11g New Features.

Tuesday, July 31, 2007

10g New Feature - get yer execution plan!

I was doing some SQL troubleshooting today, and had occasion to use one of my most loved 10g New Features, so I thought I'd share it with you here. Don't worry, an 11g new feature is just around the corner.

Most of you are aware of dbms_xplan I'm sure. In 9i you could use it to format the contents of the PLAN_TABLE after running an explain plan command. Also in 9i, a new view was introduced, V$SQL_PLAN. This view provides you with the actual execution plan of any SQL statement currently in the shared pool.

In 9i there was no real simple way to query this view (Tom Kyte has a marvy view and SQL statement that makes it much easier on ASK TOM).

Oracle 10g makes it very easy to query V$SQL_PLAN and find out what really happened to that SQL statement (remember, the explain plan command can be wrong!!). Let's look at an example:

-- Our query
SQL> select a.empid, a.ename, b.dept_desc
2 from emp a, dept b
3 where a.deptid=b.deptid;

---------- ------------------------------ -------------
10 Freeman HARDWARE
30 Jose NOWARE

-- Get the SQL ID
SQL> select sql_id, sql_text from v$sqlarea where sql_text like '%empid%';

select a.empid, a.ename, b.dept_desc from emp a, dept b where a.deptid=b.deptid

select sql_id, sql_text from v$sqlarea where sql_text like '%empid%'

-- Using the SQL_ID, get the execution plan:
SQL> select * from table(dbms_xplan.display_cursor('dymt4gchudyk9',0));

SQL_ID dymt4gchudyk9, child number 0
select a.empid, a.ename, b.dept_desc from emp a, dept b where

Plan hash value: 844388907

| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |
| 0 | SELECT STATEMENT | | | | 6 (100)| |
| 1 | MERGE JOIN | | 3 | 72 | 6 (17)| 00:00:01 |
| 2 | TABLE ACCESS BY INDEX ROWID| DEPT | 3 | 33 | 2 (0)| 00:00:01 |
| 3 | INDEX FULL SCAN | PK_DEPT | 3 | | 1 (0)| 00:00:01 |
|* 4 | SORT JOIN | | 3 | 39 | 4 (25)| 00:00:01 |
| 5 | TABLE ACCESS FULL | EMP | 3 | 39 | 3 (0)| 00:00:01 |

Predicate Information (identified by operation id):

4 - access("A"."DEPTID"="B"."DEPTID")

Other options provide more or less detail as you desire.

Monday, July 30, 2007

HOV Lanes - Love 'em, hate em

If you are looking for something Oracle related, this isn't the post. More will come soon though!

Here in Utah, and many other places I've lived (Chicago, Seattle) we have High Occupancy Vehicle (HOV) lanes on some of the interstates. In Utah they offer what they call "Express Passes" which allow you to travel in the HOV lane, even if you are a OOV (One Occupancy Vehicle). These are limited passes (I think about 2000 are available) and are available by subscription on a monthly basis.

Of course, when they first came out (just a few months ago) I had to have one! They cut my commute time to about 20 minutes or so one way (from maybe 40-45 minutes one way on good days, an hour on bad ones). They are worth the $50.00! Nothing is more fun than driving by at 60MPH while the other lanes of traffic are sitting there, stopped. zoom.... zoom... zoom...

So, I was driving in the HOV lane, and getting really aggravated today. Let me list my pet peeves..

1. Why do people who, with only one passenger in the vehicle and no express pass, think it's OK to just pull into the HOV lane and drive? Why is it that people can't just follow the rules?

2. The HOV lanes have restricted entry areas designated by dashed lines. Most of the HOV lane is protected by solid lines that you are not supposed to cross. So, traffic to your right is at a stand still, you are in the HOV lane moving at a good clip and WAM, some person in a truck ten foot tall with only one occupant swerves into your lane illegally and at about 10 MPH.
Again, why can't people follow the rules? Ahhhh... for the days of Mad Max and 60mm machine guns mounted on your hood.

3. Then, there is always the person in the HOV lane who wants to drive at about 1.25 percent of the speed of the people in the other lanes. This is ok, until the other lanes are running at about 15 MPH, which means we run at around 20MPH. I don't get this..... You look about 8 cars forward and it's wide open lane. DRIVE FOR GOODNESS SAKE!!

So, there is my HOV lane rant. I fully realize that the importance of these problems falls somewhere between solving the question of the source of a rancid smell and what to have for dinner tonight, but if I don't rant about it, who will? :-)

Wednesday, July 25, 2007

An Oracle Database 11g New Feature to share...

So, I'm just back from a quick vacation... Spent a few days on a cruise with my wife and then a couple of days at the Mouse (Disney).... had a great time!! I'll talk about the trip in a bit more detail in another blog entry. It's late now, and I wanted to get something in about Oracle Database 11g, because I promised I would.

Oracle 11g has introduced a new kind of partitioning called interval partitioning. If you have done range partitioning in the past, then you know that there is a maintenance cost. Often you find yourself having to add partitions as time goes on. Wouldn't it be nice if you could just tell Oracle you wanted to partition every month and it would create the partitions for you? That is exactly what interval partitioning does. Here is an example:

create table selling_stuff_daily
( prod_id number not null, cust_id number not null
, sale_dt date not null, qty_sold number(3) not null
, unit_sale_pr number(10,2) not null
, total_sale_pr number(10,2) not null
, total_disc number(10,2) not null)
partition by range (sale_dt)
interval (numtoyminterval(1,'MONTH'))
( partition p_before_1_jan_2007 values
less than (to_date('01-01-2007','dd-mm-yyyy')));

Note the interval keyword. This defines the interval that you want each partition to represent. In this case, Oracle will create the next partition for dates less than 02-01-2007 when the first record that belongs in that partition is created. Other than the interval keyword, this statement is just like a regular create table statement....

Cool stuff. Note that the partition names are system generated, which I don't personally like, but you can rename them if you like. I've not yet found a way to create some form of template that Oracle will use for partition naming (would be nice, maybe another release).

There is also an optional store in clause that provides the ability to define the tablespace to store the partition in, much like with hash partitioned tables.

So, there is a new Oracle Database 11g feature for you. More to come, and much more in my Oracle Press book Oracle Database 11g New Features, which should be out soon after Oracle Database 11g is released. It's available on Amazon for pre-orders now, and I hope you will check it out!

Thursday, July 19, 2007

Frustrating Technology...

There is absolutely nothing Oracle related in this post, so if you only are interested in Oracle stuff, skip this one.

It never fails. When one thing goes wrong, there seems to be this domino effect. So last night I'm sitting at my desk trying to get some writing done. At 10pm, I have an automated backup that kicks off on my laptop to my new 1TB mybook WD drive. It has been magic for about the last two months since I bought the thing. My whole house backs up to it.

So, last night, my backup failed. For some reason, it could not get to the networked drive. So, as I'm looking over the network drive, my foot manages to catch one of my power strips (I have *way* to many of them!!) and hits the kill switch. Down go the dominoes... and enter silence. There is nothing worse than the sound of all your computers shutting down instantly .... only my one laptop kept running. My desktop, my poor wife's desktop, a laptop with a bad battery, the network modem, the router, the backup drive... all just died.

So, I sat and enjoyed the silence for a moment. No fans wuurring, no beeps, no green and orange lights... I just sat in the dark and enjoyed the total silence (the remaining laptop, a wonderful Dell XPS, is very quiet). Ah... how rare is silence these days.

Then I started it all back up. Everything came up ok, except I still can't connect to my MyBook drive which is irritating. I rebooted it, reset it, changed the network cables, and it's still not connecting to the network. BALDERDASH!!! So, if you know anything about WD MyBooks... please drop me a line. Otherwise it's a call to tech support tonight. *SIGH*

Wednesday, July 18, 2007

Everyone meet N7598U!!

So, this is one of my two airplanes... Everyone say high to N7598U. She's a Cessna 150M. We have been all over the place. From Florida to Chicago to Little Rock to Salt Lake City. She has a freshly overhauled engine in her with maybe 20 hours now. She needs a new coat of paint and some interior work, but she's just a blast to fly. Anyone have any ideas what color I should paint her? I'll post a picture of my Mooney when she gets done with her engine work.

Blasted bots and more 11g

So, I start my blog up again and what happens? Some stupid "bot" on Google determines somehow that this is a spam blog and locks it out. I had to go through a few minor hoops to get it up and running again, but it was still irritating.

Note: They had me back up and running after about 7 hours or so...

So, how about some 11g stuff. At the moment I just finished the section on virtual columns in Oracle Database 11g. Basicly a virtual column is a derived column. It derives it's value from other data stored in the table. Data in a virtual column is not stored in the database, so they consume no disk space. You can, within some restrictions, apply functions to the virtual columns, case statements and such things.

What is interesting about virtual columns is that you can use then as partition keys in partitioned tables. As Spock would say, most facinating! Here is a quick example of a table created using a virtual column:

create table emp (emp_id number, salary number, our_401k_addition as ( (salary/12)*.05) );
and the results:

SQL> insert into emp values (1,1000,default);
1 row created.

SQL> select * from emp;

---------- ---------- -----------------
1 1000 4.16666667

So, now we know our 401k 5% contribution!

Oracle Database 11g New Features provides even more in-depth coverage and examples!

More to come!!

Saturday, July 14, 2007


I'm in Idaho this weekend for a family reunion. It's 109 out here... 109??? Who's idea was it to have a family reunion, at a campground, in the middle of the SUMMER!?!?!?!?

Idaho is pretty, I'll give it that. From our Hotel room it actually looks a bit like Oklahoma, where I am from. It's a bit hilly (not all of Oklahoma it flat) and the grass is in it's summer hue, Yellow. It might sound ugly, but I actually find it quite pretty.

The 11g New Features book is moving along. I am about 90% done with Chapter 5 which includes Database Replay and the SQL Performance Analyzer. The good news is that Database Replay works great in the Beta. I was able to capture a workload from one database, move the related workload files to another database and replay them. Simply an amazing process. Oracle provides the ability to control things like think time and so on, so you can adjust the replay "volume" if you will. Database replay will make testing new upgrades or hardware so much easier.

SQL Performance Analyzer is another story. While it's documented in the Performance Tuning Beta documents, the Oracle supplied PL/SQL procedure is not in Beta 4, which is what I'm currently running. Beta 5 is out, but I was going to install it after I got done with Chapter 5, maybe I need to install it now though.

I'm running three different Oracle databases for this book, moving between the different ones as it suits me. I'm running on the Win platform, and also I'm running a Linux single node version on top of VMWare. Finally I've got a VMWare RAC cluster running too. All in all, a fun experience.

Well, off to the Saturday version of "How sunburned can you get?" - More later!!

Thursday, July 12, 2007

11g and other stuff...

So, did you watch the announcement yesterday about Oracle Database 11g? If not you can surf here:
and catch the announcement.
I am knee deep in writing the Oracle Database 11g New Features book for Oracle press right now:
and I have to say that there are a number of nice new features in 11g. Writing a book using Beta code is a bit of a bumpy ride though. It's made writing the book an interesting experience. Still, you get to see a great deal of what is coming, and play with it and that is quite exciting. It's also nice now that the announcement has been made, to be able to talk about 11g and some of the new features. So, in future blog entries I'll be talking about 11g. I should note that even though I'm writing the book using the Beta, I'll be going through every bit of the book after the production version of 11g is out, so you can be sure that there will be nothing in the book that is not in the production version of 11g!!

I'm working with Database Replay right now, a very interesting feature. Database replay allows you to capture a workload on a source system, and then replay it on some other test system. The setup is a bit involved but not too bad. I have noticed that replay seems to consume a bit more resources than the docs seem to indicate, but that could just be my system. Replay will allow you to manipulate certain parameters of the workload playback, such as the think time, and it deals with concurency issues too very nicely. All in all, once I can get past one minor problem I'm having, I have high expectations for this feature.
For now though, it's been raining in Salt Lake City which has been very nice. It helps to clear the air and cool it at the same time. I love rain... Give me a rainy Saturday with nothing to do but sit on my porch swing, with my wife and my wireless laptop. Some thunder is nice, but optional. I'm from Oklahoma, so you might think it weird that what I really long for is to hear those Tornado warning horns blare... but strangely it's almost a rite of spring for me and they are missed.

I am moving into a new office. For the first time since I lived in Seattle many years ago, I actually have my own window and the view is most excellent. My window faces the Salt Lake Temple of the Church of Jesus Christ of Latter-Day Saints. The mountains are in the background. I can't wait for winter and seeing snow on the mountains. I am more of a winter person myself and while summer is nice for things like swimming, I'd be more than happy if it never got above about 76F.
By the way, if you are reading this, and happen to be LDS and have some technical skills, the church is hiring. We need technical people badly. From DBA's, to Unix Admin's to project managers and more we need people. You must be LDS though, since we are a church we are allowed to hire only those of our faith, which makes sense to me.
More later!!


Sunday, July 08, 2007

I'm back

After a long hiatus, I'm back blogging. I was gone for a number of reasons, but now I have returned and you can expect that I will keep blogging on a regular basis.

A lot has changed in my life since my last blog. I've moved to Utah and now work for the Church of Jesus Christ of Latter-Day Saints. I love my work, saving souls is much more fun than helping someone meet their quarterly financial goals. I still am much involved with Oracle as I am a Principal Engineer and Team Manager of a great DBA team. We have a number of Oracle databases, and it's simply an amazing experience.

I've also bought a second airplane. I bought an M20A Mooney. For those of you who fly you will know that this is a bit faster than my Cessna and holds 4 people instead of two. I'll post pictures of my plane when I can (it's getting some engine work done on it at the moment).

I have opened the Blog back up to comments. I would ask that *everyone* be kind here. No personal attacks will be tolerated on anyone's part, this is not the place for that. Personal attacks just is not who I am (unless there is some clear moral issue), and I'll be no part of it, nor a part of any type of war between posters. I'm not opposed to a difference of opinion, but let's stick to facts and civility and we will all be just fine.

[Edit] One note, I've only opened the Blog to registered users. I am very much opposed to anonymous comments (I think they are gutless). So, you can leave a comment here but you will have to be a registered user and absolutely responsible for what you say. This seems fair to me.

Glad to be back!


Subscribe in a reader