Despite others best attempts - "Just one more" - I managed yet another early-ish night and so by the morning I was in a better than expected state for my Oak Table World presentation at 9am. I certainly looked in a better state than Tim Gorman, but thanks to him for showing up! When I put my name down for this, I didn't really think through the 9am slot, but I *did* think through going for the smaller of the two rooms that OTW had expanded to. 50 rather than 100 seats suits my modest persona and, man, I love that circular room! Better still, it was absolutely packed. Your slides projected on the wall, strangely effective acoustics and feeling that you're almost sitting on the laps of the other people in the room, many of whom are people I think the world of! Weird. Check out a couple of Kyle Haileys photos here and here. Oh, and yes, I was wearing my Sinclair ZX81 T-shirt again! What can I say? I like it so it tends to turn up on special occasions.
I had fun!
Some days things just work and, whilst the actual content of the presentation might not be the best (but don't tell anyone ) good presentation days can compensate for that a little. Certainly, the feedback I had from people was very positive although as I tweeted at the time, when I have fun presenting then it generally means it worked well for other people too. Maybe there's a Best Practice in here?
When you're having fun doing something, the results are probably good too.
One or two people asked for the slides, which are now on Slideshare here but, even better (as long as it doesn't shatter my illusions) is that I think all of the OTW2013 presentations were videoed and should appear on the Oak Table World site at some point in the future.
There you go ... Sometimes I walk away happy! (Well the one thing I wish I hadn't done was .... Let's not start that!)
Actually, there was one follow-up item I should have covered better. I wish I'd had a much longer conversation with the guy who came up at the end of the presentation to discuss global statistics and aggregation on partitioned tables. It's not a straightfoward subject and in the absence of time to cover it properly I suggested he checked out the paper I wrote on the subject, but I think I might have been a little curt so if he's reading this, I would love to discuss it more! Hopefully he picked up one of the extremely bling but slightly out of date business cards I'd just had made up, with the *old* OakTable logo. It's the one including the .net and was changed just after I'd ordered the cards. Never mind, it will make them collectors items.
Thanks to Kyle Hailey and all of the sponsors for their contributions and hard work putting Oak Table World together. I didn't spend nearly enough time there because it was during my two days of presentation worry and the recovery, but the reports I heard back from others were consistently good and I hope every effort goes into continuing this event. It's not just a vendor party or some more free food and drink but some additional knowledge-sharing of a completely different but complimentary nature to the main conference.
So now I was FREE and full of adrenalin but just ready to do nothing at the same time. Strange feeling I vaguely remember just walking around the conference enjoying the sunshine, eating food and being happy before settling down in Howard Street to watch the second major keynote. Yeah, the one that was obviously less interesting than a boat race. However, perhaps with the advantage of the sun, some beer (you are allowed to sneak a carry-out in, right? ) and the infrastructure focus of the presentation on various as-a-Service offerings, I kind of enjoyed it. In fact, Thomas Kurian is growing on me as a speaker. Larry is so hit-and-miss these days and, working with the grown-up clients that I do, I think Kurian delivers what I expect from a keynote. Maybe not sexy and fun, but professional. Although the freakiest thing was when he kept saying 'Announcing' but he didn't need to because all I could see was that 'Announcement' slide from that template I was still trying to get out of my brain!
I know Oracle announced some Cloud stuff last year which always seemed a bit Mickey Mouse to me and the announcements this year will take some time to be fully developed, but it felt like they were finally starting to think about the professional services that real customers might actually want and clearly the Nimbula deal was a central part of this.
The thing I probably enjoyed most about the keynote, though, was an hour and a half of the sun on my face with no upcoming responsibilities
My final presentation of the day was the Maria Colgan and Jonathan Lewis tag-team effort - 'Oracle Optimizer Boot Camp - 10 Optimizer Tips You Can't Do Without'. (It probably needed two of them just to come up with that title!) With two terrific presenters on top form and lots of useful content, it was definitely one of the highlights of the agenda for me. You can grab the presentation slides at the Optimizer Development Group Blog.
By now the power on all of my devices was giving out (a theme of the week as I can be lazy about charging any my iPhone 4s is on it's last legs) so I decided to make moves back towards my hotel, only to bump into Graham Wood who persuaded me to have just one beer now that the presentation was done. The next thing I knew, and it really did happen quickly, a bunch of Oak Table types descended on Chevys and before I knew it I was being dragged off kicking and screaming to a very enjoyable Chinese meal. As well as being able to catch up with some friends, they were carrying charging devices which took some of the stress away! I had been keeping an eye out for Cary Millsap so I could give him one of my new business cards. As a man of taste and style who is obsessed with typography I just knew he would admire them deeply I think he truly appreciated the effort although they might be a bit Vegas for his tastes!
By the end of the evening I'd given quite a few out and so insisted on a group shot.
My thanks to Dan Norris' lovely girlfriend Anne for helping us out with the picture. We hadn't been in the bar of the W long, but she was still probably in better condition than most!
No drinking, an early night and a little work meant that the meeting with Graham the next morning went well and we were almost ready to go. Well, I had one more slide to do, but that was fine
Demogrounds time, then, particularly to catch up with the OEM performance guys and 12c multi-tenancy people. I was supposed to be scouring the exhibition for the perfect (or most imperfect) souvenir for Andy C, but I did a frankly awful job of that and just picked up a T-shirt or two. Eventually I gave in and went back to the hotel for lunch, a change of clothes (man it was *hot*) and to drop my laptop off. One of the beautiful aspects of a co-presentation is when the main presenter has to supply the laptop and carry it around all day while I just needed to turn up and speak!
I sneaked in to the back of the Real World Performance Groups session on working through a detailed analysis of why SQL is running slowly, looking at different possible problems and attempted solutions. What I saw of it was good stuff as is usually the case with those guys. Graham was in there too so I spent some time looking over the slides on his laptop and still managed to spot one last slide that needed to be removed - talk about cutting it fine - then left the session so I could pace around a bit outside and get myself ready.
I think the session went well enough in the end based on the responses we had and Graham seemed pretty happy so job done. I suppose I always walk away from things feeling slightly dissatisfied. But I was pleased that the messiness of real world examples didn't detract too much from the main message that AWR is really a set of reports (standard, compare period and SQL, to name three) that allow you to narrow your search through the data when identifying core performance issues. The number 1 message might be - before you start wading through detailed reports - 'What does ADDM say?'
A small difference to this years agenda which I think I'm right about and other attendees agreed was that there were slightly longer gaps between presentations - 30 mins. I liked this because it gave you a chance to do something useful or to take a break and not feel like you were constantly running from pillar to post. It had its downsides though
My next planned event was to go and see one of the key senior managers on the client project I'm working on present on that very project. I was interested in how he would cover it because he's delivering the project and I'm one of his customers, but wanted to meet him too because he's based in the US so I didn't even know what he looked like after working closely with him for 3.5 months. Alternatively (and you can probably guess where this is going) I could sit in Chevys having a few beers with a couple of friends from a previous client in Scotland who I only see at conferences.
I decided I would do both but we got so heavily into chatting about tech stuff and the conference that the time zipped by and I'd missed the presentation. I'm guessing people will think this is just an excuse but, as well as just liking these guys, all we really talked was tech and it's become one of the most valuable aspects to a conference - knowledge and idea sharing. I'm glad I stuck with them because, frankly, I probably knew the project too intimately and would have seen the slides lots of time already! There and then, I decided to catch some of the client guys second session later in the week.
Of course, I now had to get ready for one of my favourite events of the conference - the Friends of Pythian party at the W hotel. As I planned a #nevertrustaseahorse theme I had to go back to my hotel to change out of presentation style clothes into the related t-shirt and await Susan's arrival at the W. At this stage, all but the most insane or regular reader won't have a clue what the hell I'm talking about, so perhaps I'll just include a picture and leave it at that.
Other than to say thanks again to all the good folks at Pythian who know how to host a good party - but particularly Vanessa Simmons and Paul Vallee and to the other people there, who made it a fun night and a great way to celebrate getting the first presentation out of the way. Possibly not the best preparation for a 9am presentation at Oak Table World the next morning but, as I'd signed up for that slot, I only had myself to blame
Disclosure: The OTN Oracle ACE Director Program paid for my flights and accommodation. My conference pass was paid for by being a conference speaker. Pythian took wonderful care of me and many others, as always.
Most presenters would tell you that there are two distinct phases to conferences that they're attending. Before and after their presentations. It's difficult to truly enjoy the conference experience when the presentations that you've yet to deliver are rattling around in your mind. The effect is magnified, of course, if you're one of the bad boys like me, Alex Gorbachev, Kerry Osborne and a host of others (lets not even *start* on Tanel Poder) who haven't finished their slides before the conference starts. While that might sound like a scandalous dereliction of duty, it should be pretty easy to understand actually. Most people have busy work and personal lives and presentation work needs to be slotted in around those. As a contractor, I can't exactly work on non-client slides during office hours!
But this time was going to be different and I made sure of it by
1) Not submitting any abstracts for the Openworld agenda.
2) Putting myself down for one presentation at Oak Table World using slides that I'd already delivered several times over the past few months.
3) When Graham Wood asked me if I'd co-present with him on AWR, I started thinking about suitable examples in advance of the conference and went over to San Francisco the week before with enough time to agree on the examples and think how I would present them.
3) went kind of wrong when I realised that Graham thought I should put the examples as images over multiple slides which was probably always the best idea and I just hadn't thought it through enough. Suffice to say I'd underestimated the amount of work that needs to go into a co-presentation that you don't have complete control over. (Don't get me started on that Oracle Corp Powerpoint template either - we'd be here all week!)
Which meant that I didn't manage much in the first couple of days of the conference, but once I'd relaxed a bit, I was able to pop my head into Jason Arneil of e-DBA presenting 'Exadata From Installation to Go Live: Experiences in Banking and Retail'. As well as Jason being a mate from the user group and blogging communities, e-DBA and I share the same banking client, so I've worked with him a bit more closely over the past couple of years and know that he absolutely has real world experience! The stand-out things for me from the bits of the presentation I saw were that sizing the platform you need is extremely important, as is giving proper consideration to primary, standby and test environments. Fortunately our shared client thought about these things and had the money to implement them properly but I do think there's a tendency to think Exadata is expensive and so people skimp on their normal deployment models, which is a big mistake. Another personally enjoyable aspect was hearing Jason pronounce Exadata as only a Scot could, which I found hilarious but I suspect took the average US attendee a while to get used to
Then I was determined to go to the opening keynote before the ACE dinner at the Walt Disney Museum. The reason I was so keen on the keynote was that I knew there would be the In-Memory announcement and as there was likely to be a shout-out to the dev team that worked on it, I wanted to be in the hall for a change. So imagine my Xtreme (sic) disappointment when I had to sit there for over an hour being bored senseless by the Fujitsu section. I was pretty rude about it on Twitter but try to understand where I'm coming from. Yes, I know Fujitsu pay the big bucks to be on the stage. I even know that the content looked relatively interesting if I just focussed on the slides. I know the guy was trying his best. But when a lot of people have attended the Welcome Keynote for a kickstart to the conference and a bit of buzz, the last thing they want to do is to be bored senseless by an unengaging presenter. Sorry, but if you're at that level of a company you should be able to cope with the criticism and for the good of your organisation, let someone with some presentation skills do the job next time.
An hour in I was nicotine-deprived and could take no more and the bus to the ACE dinner was going to be soon, so I went outside and started watching the keynote on the massive monitors in the Howard Street chill-out area. A much better experience (and an approach I used for the rest of the week), particularly as the Oracle guys eventually started presenting on In-Memory Database.
Despite the announcement of the In-Memory Database Option (follow @db_inmemory for more on that going forward), several people agreed that the true innovation is that Larry seems to be able to use a clicker after all, although not hearing him saying 'Next Slide' is going to take some getting used to!
As for the keynotes and the big announcements, I've never really been one for blogging about them because I don't think I have the analyst gene inside me. But there's a few simple solutions to that. First, people like Mark Rittman cover them in so much more depth than I could hope to. Second, remember that anyone who cares can watch the keynotes online here ... and get this! You can skip Mr Fujitsu!
I got so caught up in enjoying it that I suddenly realised I was late for the ACE Dinner, still had some work to do for the next day's presentation and so ended up missing it completely I was pretty gutted to say the least because I'd promised a bunch of people that I'd be able to meet up with them at that, having hidden out to work on slides over the weekend and I hate missing a dinner invitation in any case.
It was worth missing it in the end, though, as I was able to look over my section and send some more notes over to Graham, before we arranged to meet for the last time the next morning.
Disclosure: The OTN Oracle ACE Director Program paid for my flights and accommodation and invited me to dinner at the Walt Disney Family Museum but I decided to work on presentations instead. My conference pass was paid for by one of Oracle Blogger program, Oracle ACE Director program or being a conference speaker. All three would have qualified for that. Fujitsu bored me to tears but recovered some ground by sponsoring the welcome party in Howard Street and dishing out free drumsticks.
Sep 28: OOW 13 - ACE Director Briefing
Having managed to get a few more days away from the high-profile client project I'm working on, I decided to go the ACE Director Briefing at Redwood Shores on Thursday and Friday after all, which meant a Wednesday arrival at the Sofitel (a hotel with Doggie items on it's room service menu!), a few beers and some room service and then an early night. Just the first of many time-adjusted days to come with the traditional early morning Twitter (used to be blog comment!) conversations with other attendees from Europe and 5am cigarette breaks outside, typically with Dutchmen
Arriving at the Conference Centre is a strange experience as there are a few dozen people there who have become friends and yet more faces I recognise from previous years. So a buffert breakfast break before we got started is a great idea to facilitate the hellos, as well as get so many electronic gadgets out and power points connected!
I confess that when I saw the agenda for the briefing, particularly the first day, it made me miserable. There seemed to be very little of interest for me on there and I think it's fair to say that this is a familiar feeling for others whose main focus is the database. As I discussed a few times, though, not everyone in the room is focussed on the same areas as me and my mates and it is a briefing and Oracle are paying for us to be there, so I can understand that they want to choose what they talk to us about and there is always something for me over the couple of days. I invariably appreciate the efforts of the speakers to make time for it too, just wish it could be database and server stuff all day
It actually turned out not to be as bad as I initially thought and the highlight of the day was probably Thomas Kurian's session when he went over the large number of announcements that were going to be made during the following week, which included several that were very relevant to my interests. What struck me was his command over his content and ability to spend an hour delivering so many details without referring to notes or slides. It encouraged me that the database guys had a lot to look forward to!
Some of which was delivered in the first session of the second day of the briefing, when three new Product Managers from Database Technologies went over the key areas of In-Memory, Multi-tenancy and Big Data. I might have had a slight inkling about the In-Memory announcement (one effect of which is that The Optimizer Lady (Copyright Me) Has become The In-Memory Queen! (Also Copyright Me, but don't expect it to take off the same way) It was great to see such a cool new feature on the horizon. I think it's probably at a fairly early stage of development but looks very promising. Unfortunately, this session, split over three sections was one that everyone seemed to enjoy but would have liked to see all three of those subjects given their own session and drop some areas of less interest. (See my comments in the last paragraph though). However, to show how hard it is to get right, most people in the room didn't seem that interested in the session on the Fusion Apps User Experience and it's not normally my cup of tea, but I thought the future UI looked extremely wizzy for something coming out of Oracle and that the presenter Jeremy Ashley had some genuinely different things to say. At least one person in the room seemed fascinated by the presentation and I was more interested than I expected to be. Go figure.
Wim Coekaerts is always extremely popular with a large minority of ACE Directors, talking Linux and Virtualisation. Again, he's someone who has such a command of his subject area that he can talk adhoc and honestly for an hour about what's going on in that space and for many is worth attending for the two days. I also had a great personal interest in the upcoming DBaaS/Cloud announcements, which seemed a bit more grown-up than last years ideas and were such a part of Oracle's Tuesday keynote this year. I even (and this is most unlike me) asked a question of whether Oracle Customers who are already trying to build Private DBaaS Clouds would benefit. The answer being that it's a goal of the program to offer a solution that can be implemented on the platform of your choice, including on-premise. Trust me, it's just important to me at the moment
The other great thing about the ACE D briefing on a personal level is the time I spend in the cafe in the 300 building with Oracle friends, just shooting the breeze, bitching and whining It's great that they make time in their schedule leading up to OOW, which is busy for everyone, but was particularly important this year as it gave me time for a couple of sessions with Graham Wood, discussing our upcoming co-presentation on AWR. The last of those was just before the final post-briefing drinks and food. Oh, I should point out how great the food was over the two days and just how well Vikki and Lillian and the OTN ACE people take care of us. That's not just sucking up, they really do a fine job of organising everything, including our bus that's probably the only smart way of getting so many geeks and their luggage into San Francisco.
However, the last thing I'd discussed with Graham was that I hadn't realised that instead of flicking through sample reports, he wanted me to take screen grabs and put them onto actual slides. Gulp! So the presentation that I thought I had no work to do on had suddenly become a different beast. Which meant another early night and time to get cracking on some slide work in between catching up with friends (and picking up my new business cards - more on that later), as we bounced slides backwards and forwards to each other. In the end, that tied me up until late Sunday morning, when I realised I'd done just about enough work that I could probably relax and eat some food!
Disclosure: The OTN Oracle ACE Director Program paid for my flights and accommodation and stopped me from becoming truly soaked on Saturday and chilly on several evenings with a very nice ACE Director cagoule. My conference pass was paid for by one of Oracle Blogger program, Oracle ACE Director program or being a conference speaker. All three would have qualified for that. Several companies plied me with much free food and drink, notably the folks at Pythian, but judging from my credit card statement I bought my share on several occasions. Despite all that and my appreciation towards all those people, all opinions are mine.
The last time was at the OUG Scotland conference and I had an interesting conversation with Tony Hasler afterwards that made me both question one of my assumptions about how the CBO works and also realise I could use a 10053 trace file to prove his argument one way or the other. We were discussing which statistics the Cost Based Optimizer uses on a Partitioned Table when there are no Partition-level stats but there are Global stats. For more on Global and Partition-level stats, see here.
I've done so much work with stats on partitioned objects in recent years that I was surprised when Tony came up with a strategy that I thought I must have tried and therefore understood, but it turned out that I hadn't or I had forgotten (just as likely!). The question was around which stats are used when a query is guaranteed to access only one partition. In that situation, the CBO will usually use the Partition-level stats, but what if they don't exist and there are only Global stats?
Tony was using this as a strategy that I'd never really thought of and still think is a little unusual because in most cases I'd be able to gather or set suitable Partition Stats fairly easily compared to the work required to maintain Global Stats but I was interested in how it would work.
To summarise a few different possibilities here :-
1) Global Stats / Partition Stats / Query accessing more than one Partition - CBO uses Global Stats
2) Global Stats / Partition Stats / Query accessing a single Partition - CBO uses the Partition Stats
3) Global Stats / No Partition Stats / Query accessing more than one Partition - CBO uses Global Stats
4) Global Stats / No Partition Stats / Query accessing a single Partition - ????
I thought the answer to the last case was that Oracle would perform Dynamic Sampling against the single partition being accessed and ignore the Global Stats. Tonys claim was that the CBO actually switches to using the Global Stats that are available and later on sent me an example to show that he was right by setting Global stats to specific values and then running a query which accessed one partition. The estimated cardinalities showed that the CBO was definitely using the Global Stats which are the only ones available.
SQL> set echo on SQL> CREATE TABLE t1 2 ( 3 n1 NUMBER 4 ,d1 DATE 5 ) 6 PARTITION BY RANGE 7 (d1) 8 ( 9 PARTITION p1 VALUES LESS THAN (DATE '2000-01-01') 10 ,PARTITION pdefault VALUES LESS THAN (maxvalue)); Table created. SQL> BEGIN 2 DBMS_STATS.set_table_stats (SYS_CONTEXT ('USERENV', 'CURRENT_SCHEMA') 3 ,'T1' 4 ,numrows => 1000000 5 ,numblks => 1000000); 6 DBMS_STATS.set_column_stats (SYS_CONTEXT ('USERENV', 'CURRENT_SCHEMA') 7 ,'T1' 8 ,colname => 'D1' 9 ,distcnt => 5 10 ,density => 1 / 5); 11 END; 12 / PL/SQL procedure successfully completed. SQL> EXPLAIN PLAN 2 FOR 3 SELECT * 4 FROM t1 5 WHERE d1 = SYSDATE; Explained. SQL> SET LINES 200 PAGES 0 SQL> SELECT * FROM TABLE (DBMS_XPLAN.display); Plan hash value: 1258445941 ----------------------------------------------------------------------------------------------- | Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time | Pstart| Pstop | ----------------------------------------------------------------------------------------------- | 0 | SELECT STATEMENT | | 200K| 4296K| 135K (1)| 00:00:08 | | | | 1 | PARTITION RANGE SINGLE| | 200K| 4296K| 135K (1)| 00:00:08 | KEY | KEY | |* 2 | TABLE ACCESS FULL | T1 | 200K| 4296K| 135K (1)| 00:00:08 | KEY | KEY | ----------------------------------------------------------------------------------------------- Predicate Information (identified by operation id): --------------------------------------------------- 2 - filter("D1"=SYSDATE@!) 14 rows selected. SQL> ALTER SESSION SET tracefile_identifier='TONY'; Session altered. SQL> ALTER SESSION SET events 'trace [SQL_Compiler.*]'; Session altered. SQL> SELECT * 2 FROM t1 3 WHERE d1 = SYSDATE; no rows selected SQL> ALTER SESSION SET events 'trace [SQL_Compiler.*] off'; Session altered.
Although Tony was able to use clear stats and our shared knowledge of how the CBO works to more or less prove his case (because 1,000,000 rows / 5 distinct values = 200,000 estimated cardinality, the beauty of a 10053 trace file is that we can use it to prove what the CBO actually does. By running his same example and generating a 10053 trace, I was able to look at the following section.
*************************************** BASE STATISTICAL INFORMATION *********************** Table Stats:: Table: T1 Alias: T1 (Using composite stats)
The '(Using composite stats)' is the notification that the CBO is looking at Global Stats. For contrast, here are two examples from the presentation. The first shows case 1) above because it accesses more than one subpartition.
*************************************** BASE STATISTICAL INFORMATION *********************** Table Stats:: Table: TEST_TAB1 Alias: TEST_TAB1 (Using composite stats) (making adjustments for partition skews) ORIGINAL VALUES:: #Rows: 11 #Blks: 660 AvgRowLen: 18.00 ChainCnt: 0.00 SUBPARTITIONS:: PRUNED: 2 ANALYZED: 2 UNANALYZED: 0 #Rows: 11 #Blks: 61 AvgRowLen: 18.00 ChainCnt: 0.00... and the second is for case 2), where the query is able to prune to a single partition and therefore uses the Partition Stats. i.e. There is no mention of using Composite Stats.
*************************************** BASE STATISTICAL INFORMATION *********************** Table Stats:: Table: TEST_TAB1 Alias: TEST_TAB1 (making adjustments for partition skews) ORIGINAL VALUES:: #Rows: 0 #Blks: 1 AvgRowLen: 0.00 ChainCnt: 0.00 SUBPARTITIONS:: PRUNED: 1 ANALYZED: 1 UNANALYZED: 0 Partition  #Rows: 0 #Blks: 1 AvgRowLen: 0.00 ChainCnt: 0.00 #Rows: 0 #Blks: 1 AvgRowLen: 0.00 ChainCnt: 0.00
Note that all of these examples were executed on 22.214.171.124
Thanks to Tony both for correcting my misunderstanding and giving me another example