Wednesday, March 13, 2013

NYOUG Spring 2013

I hate rain. I hate rain with winds blowing in all directions... But that's the cost to pay for going to NYOUG Spring Meeting! And to be fair I was glad to pay - too many good people were expected to be there... I've been presenting at NYOUG since 2002 (my first English-language presentation ever!) and got attached to MY audience...

Anyways, back to the story. Overall, this meeting was heavily DBA-centric from the very beginning. My good friend (and one of the best RAC specialists in the world) Alex Gorbachev did a pretty interesting keynote "Battle Against Any Guess". This notion is pushed by Alex for years, he even founded a special group some years ago with very well-respected list of members (http://www.battleagainstanyguess.com/). But still majority of big corporate IT solutions is badly instrumented and badly understood. So, there is a lot of room for improvement!

The second slot was mine. I've been scheduled against a talk about Oracle Enterprise Manager Cloud Control 12c by Mughees Minhas from Oracle (very corporate-oriented topic) - and as a result I've got about every person from small-to-medium IT environments, both DBAs and Developers. So, my tongue-in-cheek presentation about "Top5 Issues that Cannot be Resolved by DBAs" got absolutely perfect audience! And I've been not surprised when people were constantly nodding their heads when I was outlining my top picks. By the way, here they are:
  • Architect's side:
    1. "Smart" columns - Storing multiple data elements in the same attribute looks like a good idea until you need to run a report, or until you need to adjust the whole structure.
    2. "STUFF" tables - It is very tempting to create a table called PARTY to store objects of all kinds ranging from the company main office building to the name of your great-grandfather from the security clearance form. Yeah, until couple of years later you want to do a data quality check...
    3. Inefficient hierarchical structures – It is true that many things can be stored hierarchically. However, managing a lot of hierarchical objects is very expensive and resource-intensive. Unless developers are willing to work with some kind of denormalized structures, the performance “black hole” will be deeper and deeper with the growth of total data volume.
  • Developer's side
    1. Datatype misuse - If the date field is stored as text, you can forget about effective range scans and cardinalities because, for Oracle between 20123001 and 20130101, there are 7100 numbers and not one day! Poor, poor CBO...
    2. User-defined functions misuse - just try to ask youself a question, do you KNOW how many time this function from SELECT will be executed? And even more interesting - what would happen to this number of executions if you add another join to the FROM clause?
After lunch - another great talk by Alex Gorbachev: "Practical Hadoop by Example". Great job (as expected :-) )! If Alex would publish it somewhere - my strong suggestion will be to take a close look. It's a very well-articulated summary of how Hadoop (and BigData concept) currently relates to corporate IT world.

Final presentation of the day for me - yet another talk by Coleman Leviter on XML in the database. Yes, this topic have been covered by multiple speakers multiple times - but still (especially considering how many XML options we have in 11g database) there is a lot of confusion among developers. So, thanks to Coleman for constantly reminding us about proper ways of doing things!


Ok, enough for today...Time to do something useful in the office...h-m-m-m-m... write some PL/SQL?

P.s. In my presentation I briefly mentioned "dynamic sampling" - if anybody interested, here is a very nice overview of this feature by Maria Colgan: https://blogs.oracle.com/optimizer/entry/dynamic_sampling_and_its_impact_on_the_optimizer

No comments: