jump to navigation

Friday Philosophy – Is Dave Working? October 17, 2014

Posted by mwidlake in Friday Philosophy, humour, Perceptions.
Tags: , ,
17 comments

Is Dave across the desk from you working at the moment? Or is he goofing off? You can’t see his screen but I reckon you can make a fair stab at what he is up to, without recourse to any sort of IT monitoring systems at all. How?

How fast is Dave typing?

If Dave is typing fast, he is almost certainly not working. He’s goofing. There are very few things you can do when you work in IT where you type fast – and especially not type fast for more than a few seconds. If Dave is typing fast he is almost certainly emailing a mate or instant-messaging Sandra in the development team. If Dave is typing fast, pausing for a few seconds and then typing fast again, he is *certainly* conversing electronically with a friend. This will be 100% corroborated if he smiles, sniggers, smirks, laughs or just glances around furtively.

Longer periods of typing (say a minute or two) and then pausing for a similar time then Dave is probably working, say documenting something or writing a work-related email {or,perhaps a blog post – *cough*} . The clinchers here that indicate work is being done are (a) he will not be smiling or showing any signs of happiness and (b) there will be bursts of “tch-tch-tch-tch-tch-tch-tch” where the delete key is being pounded to remove an offending line or block of text. {People in IT always seem to delete text by repeatedly hitting the delete key. Higher forms of life, like secretarial staff, are more likely to select the text and hit the delete key once. Or, even, the first character of what they are going to type next. Why do those of us in IT just pound the delete key?!?}.

I hope the people around me have not noticed I am less miserable than usual, else they will know I have stopped documenting and I am now blogging…

Fast key tapping but in an oddly “monotone” way (the same key or keys over and over again) and a fixed stare and maybe the odd bit of bobbing the head or ducking – Dave is playing a game. Naughty Dave. Huge amounts of mouse woggling will also be evidence of game playing. That or doing graphical database design – but who does any design work these days….?

Any periods of fast typing for more than seven seconds are a sure indicator that no coding is being done. The seven second ceiling is a scientific fact, derived from 25 years of coding and goofing off :-). I have only ever known one person who can write code fast without pauses and he was a very odd chap indeed. A very, very good programmer though.

So, if Dave is staring fixedly at the screen, typing for a few seconds (probably slowly), pausing for a minute and frowning/muttering/swearing, he’s coding. Probably. He could be Googling for a new blue-ray play or something – googling for stuff you want to buy and coding seem to have the same sort of typing pattern and even the same air of general annoyance and confusion, with the very occasional “whoop” of success.

I think you can make a pretty accurate guess about whether someone is working or goofing, and even what type of working or goofing they are doing, purely from the sound of the keys and the facial expression.

I love the “techie” bits in films where the designated nerd sits down at the keyboard and goes “tap-tap-tap-tap-tap-tap-tap-tap-tap-tap-tap-tap-tap-tap-tap-tap-tap-tap-tap” at high speed and windows of data pop up and scroll up the screen at 30 lines a second or images flash by quicker than you can follow. They never delete anything they type, no typoes occur, they never have to check the correct flag or format for a command. And they never. Ever. Ever. Use the space key.Those thumbs never clatter the big bar, the fingers just bounce up and down on the main keys as though they were playing a rather odd piano.

You check next time the techie nerd bit on a film comes up. (S)he will not use the space key at all. Even if spaces appear on the text on the screen :-)

So, any fast typing and any sign of happiness and Dave is probably goofing. Both together and he certainly is. And if you never hear the space bar rattle, Dave is in a film.

Friday Philosophy – Network to Work or Work to Network? December 20, 2013

Posted by mwidlake in Friday Philosophy, Private Life.
Tags: , , , ,
11 comments

A couple of months ago my friend Big Dave Roberts blogged about the benefits of networking – as in social/business networking as opposed to using hairy string to connect bits of IT kit together – after we had met for a drink in Birmingham.

His point was that, though he had made a positive effort to network more to help his career (along with several other steps) networking had not in fact, as far as he could tell, helped his career. But he still did it because of the other benefits – meeting diverse people with different experiences and ideas and enjoying it.

By the way, I really do dislike the use of the word “Networking” in the social/business context as it smacks of PR/Sales type people just developing more contacts in order to make more money out of them, somewhat akin to milking cows. IE, in a totally self-centered manner where they really don’t give a hoot about the people they are fawning to. This is what business networking is anyway, isn’t it? I mean, do people really play golf for enjoyment?!? Or just to schmooze and get the contract or a promotion? :-) {Apologies to Carol and Rob, I know you really do enjoy golf. Oh and Neil. I think I just lost some friends…}.

I also made a decision way back in about 2002 to meet more people and build better links in the community. I was having to design some very large databases and there was not a lot of information out there about doing so as most people building VLDBS would not or could not talk about them officially. Then when I went self-employed again in 2007 I once more made a conscious effort to promote myself and network more, in order to help me get more work (in exactly the way I don’t like PR/Sales people doing it!).

I can’t say it helped me much either time. For one thing, despite the presenting and blogging and London Oracle Beers, I’m rather poor in the social skills area. I can come across as a bit of an idiot to my friends, who only let me off as they are friends. I actually find it a little hard to keep a conversation going with someone I do not already know, I can end up either being silent or I just come out with a random and never-ending stream of rubbish. For another, I just can’t fake sincerity. I could never be an actor. If I am not enjoying talking to someone I think it is obvious to them and I fall flat on my face. I can’t make myself laugh at someone’s anecdotes if, to me, they just are not entertaining. And I certainly can’t pretend to like someone who just isn’t someone I get on with. I can manage to be civil to them and work with them but I just can’t make myself spend any social time with them if I don’t have to. I’ll just invent dead Grandmother’s funerals to escape – see, I can’t even come up with convincing reasons to avoid networking with people who I don’t mesh with.

So I stopped networking. I just couldn’t do it.

I am now in the situation where I am aiming to only do only consultancy work and recruitment consultants are useless at getting you short-term consultancy work. Well, most of them are just useless at being human beings, but not many companies go to them to fill short-term needs and the agencies would make less money than they would spend filling the position. So if this is going to pan out for me, I need to get my work from my contacts, my network. Hell, I surely need to start Networking like some sort of crazed PR madman!

Well, I am not. I know it is just not in my nature and I am poor at it.

Something odd struck me about 4 years ago. I realised that half my work was coming about via friends. And when I was getting work via agencies, it seemed that either a friend had mentioned my name to the agent or the person interviewing me knew a friend of mine. Not someone I had networked with, but a proper friend, someone I would go out of my way to share a beer with or a coffee.

What I am going to do is what Big Dave and I have both ended up doing. I am just going to socialise more, for the primary reason of just wanting to socialise. A big part of the presenting and going to conferences is, for me, simply about meeting friends and having some fun. The London Beers is totally about that. I’ve discovered that despite me having no memory for names, an ability to insult people without trying and at times a total lack of comprehension of what is going on in other peoples’ heads, I actually enjoy meeting people. Well, most people. And Dave? I think having more friends does indeed lead to more work, but it takes a long time to pay dividends. Longer than most people (well, I) can fake it for via Networking, and the other benefits are more significant and immediate than the financial ones.

In fact, when my wife and I were talking about my “retiring” and she was asking me what I wanted to do over the next few years, one of them was to keep going to conferences and presenting. But that costs money. “So how are you going to pay for that Martin?” she asked – ” I’m not going back to work to pay for you to swan off to conferences and drink and discuss bloody block buffer latch chains and enjoy yourself!”. Well, I am still going to try and do this mythical consultancy work. Our agreement is that I can go to conferences if I earn enough to pay for it.

So, I am not networking to work. I am working to network.

And in fact the title of this blog is a lie. I am working to socialise. In my experience, for me, Networking fails. I hate Networking. I can’t Network. I can just about manage having some friends. Like Big Dave, Networking has not really got me any work, but being more sociable has allowed me to meet some very nice and/or interesting people and has led to *some* work.

So get out there and socialise more, it’s great. Just don’t Network and don’t play bloody golf.

Re-forming the Martin Cluster in Norway April 5, 2013

Posted by mwidlake in Friday Philosophy, Meeting notes, Presenting, Uncategorized.
Tags: , ,
7 comments

Later this month, on April 17-20th, I am presenting again at the Norwegian Oracle user group (OUGN) spring conference {modern browsers will allow you to translate any Norwegian if you need to} . I loved it last year, as you can see from my third-day post on it. I’ve been lucky to attend some very good conferences over the last few years but those three days at the OUGN conference last year were, I think, my favourite single event to date. If you are within striking distance of Oslo and can negotiate the time out of the office, I would strongly recommend the event. If you can’t negotiate the time, heck, take a holiday and go anyway :-)

Part of what I really enjoyed about the event was the fact that two of the days are spent on a ferry/cruise ship from Oslo to Kiel and back. And oddly enough, that is what initially put me off going to the conference – I am very susceptible to Sea Sickness. I had no problems though, partly due to the large quantities of travel calm pills I swallowed, partly due to the good weather, but mostly because the talks were excellent and the atmosphere was fantastic. I don’t mean “hey, it was a bit like a holiday” {though in some ways it was as it was such fun} but because the speakers and the attendees can’t escape, at least not without a long swim, everyone is around all day and all evening. It just adds to the whole event. I spoke to more “new” people during that conference than I ever have before.

At most conferences the presentations at the end of the day tend to be less well attended and there can be a feeling of wind-down, especially on the last day. A fair number of people feel the need to make an early exit to get home before the worst of the traffic or are under pressure to get back to the office and just sort out some issue that is pressing. The people around in the evening tend to be the presenters and the conference die-hards and so are usually the same sad old bunch of geezers and gals :-) . However, on the OUGN Boat this is not the case. All sessions tend to be well attended and in the evening nearly everyone is out having something to eat, a few drinks (those North Europeans sure do like the odd drink, but in a relaxed and affable way) and just being sociable.

Over the last few years the conference has developed a reputation for being technically strong too. This is of course partly due to the excellent atmosphere attracting good presenters and the good presenters in turn help make the conference better. popular and well attended – and that in turn attracts presenters. A nice positive feedback loop. I certainly learnt a lot of stuff last year and I cannot think of a poor presentation that I attended. Hmm, maybe one of mine was a little weak :-| . The organisers do an excellent job of helping the presenters feel relaxed and appreciated too. For example, I was nervous about the boat part of the trip to they gave me one slot on the mainland the day before we sailed and suggested I could bail out at Kiel if I was suffering. As a presenter, that sort of consideration counts for a lot. I don’t want or expect to be treated like some minor celebrity and I was not, but for the whole conference I just felt like the organisers appreciated my taking time out from work and flying out to come and present.

The final reason I am looking forward to the event (and thus the odd title) is the re-forming of the Martin Oracle Cluster :-) – this is myself, Martin Nash and Martin Bach. We all do several conferences a year, we all used to go along to the London Oracle Beers and we have become good friends. Other Oracle Martin’s are welcome to join us – At the OUGN last year there was also Martin Büchi, who I had not met before, but this year I think we are the only Martins presenting. We just don’t seem to have managed to re-from the cluster for many months now, partly as Mr Bach returned to Germany.

Martins_1

Martin Nash – Martin Büchi – Martin Bach – Martin Widlake
Thanks to Øyvind Isene for the picture.

I suppose I should mention what I am presenting on? Well, as I mentioned in my last Friday Philosophy, I am concentrating more on introductory presentations. You can see my official agenda here. I am doing:

  • an introductory presentation on Row Level Security, VPD and hiding rows or columns of data {it will be interesting to see how large the audience is for that one!}
  • an introduction to SQL tuning where I cover the absolute basics, but hopefully in a way that allows those new to it (or maybe even not so new) to treat tuning as a logical and sensible process, as opposed to Black Magic of favourite hints and arcane practices
  • my disasters talk. I love giving my disasters talk. I’ve “been in the vicinity” of a lot of disasters and I only ever talk about things I have seen first hand, so no urban myths.

Friday Philosophy – Level of Presentations March 8, 2013

Posted by mwidlake in Exadata, Friday Philosophy, Perceptions, Presenting.
Tags: , ,
7 comments

This FF is a bit of a follow-up to the one I posted last week on PL/SQL skills and a comment made by Noons on how much knowledge you need to be an OakTable member.

I have a question to answer and I would appreciate other people’s opinion. Should there be more intro talks at conferences? If so, should the experts be giving them?

I am an OakTable member (and really quite worryingly proud about that) and I guess that means I know a lot about some aspects of Oracle. But also, and this is a key part of being asked to be a member of the OakTable, I both try and base my “knowledge” on scientific testing of what I think I know (be it by myself or others willing to show their workings) and I try and pass that knowledge on. I don’t think there is a member of the OT that does not abide by those two concepts.

This is not false modesty on my part, but most other people on the OT know a shed load {UK colloquialism for “really quite a lot”} more than I do about the Oracle database and how it works. Some of them are so smart I can’t but secretly dislike them for it :-). But I have a reasonable stash of knowledge in my head and I am a stong proponent of those last two factors. In particular, I want to put what I have in my head about {ohh, let’s pick partition pruning} in other people’s heads. Which is why for the last 4 years most of my presentations have run over horribly. I must get every detail into the audiences’ heads, even if they don’t want to know it!

Of late I have started to feel that I present in the wrong way. I take a subject, I write down what I know about it and I try to present that knowledge. I’ve only picked topics I feel I know well and in which I can handle almost any question the audience asks. For me to be that confident I have to have used that aspect of Oracle technology a lot and had months, if not years of experience. You cannot pass that on in 1 hour. I’ve already said I am not that smart, but I learn over time. So I started to strip out the basics and present just the clever stuff, which shows how fabulous I am. {British self-deprecating sarcasm, please}. Just like so many other experts. Hell, if we are experts, we should be talking expert stuff!!!

To balance that I think there is a gap in what is talked about at conferences. I know this is felt by some conference organisers and attendees too, but there is just way too much “impressive smart stuff” and not enough “how X works in the real world, for people who have never done it”. Not 10,000 feet up sales pitch rubbish that gives no substance, but talks on a topic where you can go from level 1 for knowledge-free beginners to level 5 for the 25 people at the conference who know this stuff inside out – and the talk stops at level 2. I’ve made a decision to try and address that gap, which is why I now offer more talks on “an intro to Exadata” and “how to get going with performance tuning” than the smart stuff.

The problem is, how many people, probably mostly young people, go to conferences? Am I wasting my time trying to offer these talks if no one going to the conferences wants them? Do people going to conferences, generally speaking, want the technical nitty-gritty or do they want the intro stuff? Yes, I know there is a spread but where is the real need? I suppose I thought of this recently when I did a talk on Index Organized Tables and almost everyone in the room already used them. Then, a few hours later, I did an intro to database design. Almost everyone in the room was a seasoned database designer… I doubt I said much of real value to either audience.

That leaves my last point about should the experts do intro talks? A problem with experts doing intro talks is the expert knows it all. It can be hard to remember what you really needed to know at the start (and also, my own problem, knowing what to drop out the talk as, really, it is “being smart as an ego-trip” that the new people can do without). But if you are not an expert, can you handle the What If questions? I have played with this issue with my Intro to Exadata talk. I wrote the draft when I had very little real experience and I have only modified it as I gained more experience. I’m glad I did as when I revisited the presentation recently I started putting loads of stuff in that only makes sense when you are used to it’s peculiarities. Thankfully, I realised this and stripped most of it out again. So well, in fact, that one person who wrote about the talk said “it was nice to see someone talk about it who was an Oracle expert who obviously knew little about the topic”. Well, something like that :-)

Enough. I would appreciate other people’s opinions and experiences on this.

Friday Philosophy: It’s Not What you Know – It’s What you are Getting To Know. December 7, 2012

Posted by mwidlake in Friday Philosophy, Meeting notes, Perceptions.
Tags: , , , ,
add a comment

This has been a good but tiring week. It started with the UKOUG TEBS conference where I saw lots of people I know, a few who I didn’t but now do and I had good times in pubs and restaurants. One evening culminated in my singing part of “Two out of Three ain’t bad” in the style of a munchkin with Nial Litchfield in a pub at 1am, which I am sure he woud rather forget about – so if you know him, ask him about it. For me that was the indicator to go lie down in the dark and sleep. Irrespectve of drunken singing, I must had talked about 20 topics with 40 people over the conference, exchanging ideas, tricks and war stories.

I also presented on the Sunday, teaching people. I went to many fine presentations through the week and learnt stuff, balancing the knowledge books. This included one talk on Wednesday where I found out I had been teaching people wrong on Sunday! *sigh* Oh dear. And it is something I have been getting wrong for years. I’ll check the fine detail before I blog about that though. I now hate SQL Maria for pointing out my error – which is unfair but that’s life. Sorry Maria, I’ll buy you a beer sometime to make up for it.

After all that, I came back to work to find we had some big issues with one system. I won’t go into the details but there were half a dozen of us working on it, coming up with ideas, knocking each other’s suggestions down or agreeing with them – and coming up with working solutions. None of us could have done it alone and I reckon most of us learnt a couple of things in the process (such as how bad some of the app design was :-) ).

So all in all, a week of learning that has worn me out but left me happy and that is what I like about my work life at present. I am working with people who know stuff and who want to know stuff. I am in a role that exposes me to a lot of issues. I am working for a boss (and team) who let me take time out from the official job to learn stuff too. I suspect it is going to end soon though as the company I am working for are taking large numbers of people to the carpark and shooting them (figuratively speaking only, I should point out). It will be a shame if it does end. But then, just as when I worked with the best IT person I ever worked with, I’ll be happy I had the experience.

Yes, I know I am lucky to have such a good working life at present {but, you know something? I did take efforts to make it like this – maybe a future FF on that}.

So having said I like my working life so much, who is willing to bet I’ll be complaining like a spoilt child all next week?!?

Friday Philosophy – The Tech to Do What You Need Probably Exists Already November 30, 2012

Posted by mwidlake in Friday Philosophy, Perceptions.
Tags: , , ,
4 comments

How many of you have read the Oracle Concepts manual for the main version you are working on?

This is a question I ask quite often when I present and over the last 10 years the percentage number of hands raised has dropped. It was always less than 50%, it’s been dropping to more like 1 in 10 and Last year (at the UKOUG 2011 conference) was the nadir when not a single hand was raised. {Interestingly I asked this at the Slovenian User Group 3 months ago and something like 40% raised their hand – impressive!}.

Why do I feel this is important? Well, do you know all the technology solutions available across just the core RDBMS with no cost options?. No, you don’t, you (and I) really don’t. If you read the concepts manual, even just skimming it, you will be reminded of a whole load of stuff you have only dim memories of and perhaps you will even see some features that passed you by when they were first introduced.

Of course, you would need to read a few more manuals to get the full picture, such as the PL/SQL Packages and Types References, as so much good stuff is introduced via built-in packages, and the SQL Language Reference, as SQL has been extended quite a lot over the last couple of versions. Dull reading indeed but I’d estimate that if you read those three you would be aware of 90%+ of the Oracle technologies that are available to you out-of-the-box and considerably more than all but a handful of Oracle Experts. You’d know more than I as (a) I have not skimmed the PL/SQL one for years and (b) I have a rotten memory.

My point it, you can’t consider using Oracle technologies you don’t know about or remember – and they could be just what you need to fix the problem you see in front of you.

I’ll give a couple of examples.

Problem, physical IO is too high, your storage system is bottle-necked.
Answers, Reducing Physical IO:
-First up, Index Organized tables. Some of you will be aware that I am very keen on IOTs and the reason I am is that I’ve used them to physically group data that the application needed to select over and over again. It can make a massive improvement to that sort of system. They are rarely used.
-Clustered Tables. Even less used, in fact has anyone reading this used them in anger in the last 10 years? Great for situations where you need parent-children or parent-children-type-1+parent-children-type-2 data. I confess, I have not used them in anger for years.
-Move table (and order them as you do it!) and re-build indexes to remove “dead” space. This one got a bad name, especially the index rebuilds, as people were doing it needlessly without appreciating what the intention was, but now I hardly ever see it done – even when it is of benefit.
-Compress your tables and indexes. With normal Oracle compress (no need for HCC). In tests I’ve done I pretty much always see a drop in physical IO and run time. Being candid, I can’t remember doing any tests and NOT seeing an improvement but I usually only test when I expect and improvement and I don’t want to give anyone the impression it will always help.

All the above were available in Oracle 7 or 8 and all have improved over the versions.

Problem, you want to carry out some long,complex data processing in PL/SQL and if a step fails, be able to handle it and carry on.
Answers:
– Savepoints. You can rollback to a savepoint, not just to the last commit. In this way you can break the task into chunks and, if something towards the end fails, you roll back one step (or several, your choice) and call an alternative routine to handle the exception.
– Autonomous Transactions. You want to record that an error occurred but not fail the original action or not save anything it has done to date. An autonomous transaction runs in it’s own sub-session and commits in it do not effect the calling session.
– Temporary Tables. You can put your working information in them as you progress and if you need to bomb out (or some evil DBA kills your session for running too long) the temp table contents just disappear. No clean up needed.

Maybe the above is not so fair, I have not been a proper PL/SQL developer for a while now, but I hardly see the above used. Especially Savepoints. I can’t remember not having savepoints available (hmm, maybe Oracle 6) and Autonomous Transactions and Temporary tables are Oracle 8 (I thought Temporary tables might be 9 but Tim Hall’s OracleBase says 8)

Another thing I have noticed over the years is that so often I will read up on some oracle feature I know little about, only for it to come up in the next few weeks! There is a psychological aspect to this, that we only remember these “coincidences” and not the more common situations where we read up on something which does not subsequently come up before we forget about it, but I think that it is also that we tend to use only a few solutions to solve the problems we see and adding another solution to our list means the chances are high it will be suitable for something soon.

OK, so it would help us all to read the manuals (or other Oracle technical books) more. Now the big problem is finding the time.

Friday Philosophy – The Importance of Context November 23, 2012

Posted by mwidlake in Friday Philosophy, Perceptions.
Tags: , , , ,
1 comment so far

A couple of weeks ago I was making my way through the office. As I came towards the end of the large, open-plan room I became aware that there was someone following behind me so, on passing through the door I held it briefly for the person behind me {there was no where else they could be going}, turned left and through the next door – and again held it and this time looked behind me to see if the person was still going the same way as I. The lady behind gave me the strangest look.

The strange look was reasonable – the door I’d just held for her was the one into the gentleman’s bathroom. *sigh*

I was doing the correct thing, I was attempting to be helpful to a fellow person, I was in fact being very polite. But because I had utterly failed to consider the context, there is now a lady who works on the same floor as I who considers me, at best, as strange. At worst she thinks I am very strange – and more than a little creepy. I fear the latter given her reaction when she saw me in the kitchen area recently and turned around. {By the way, if anyone can think of a good way I can clear this up I’d appreciate it. After all, I can’t exactly go up to her and say “sorry about holding the door to the gents for you the other day, I did not realise you were a woman”}.

My point is that you can do what you believe is the right thing but, because you are not thinking of the context or are unaware of the full situation, you end up giving utterly the wrong impression. I had a work situation like this a while back.

Without going into too much detail, I was working with a client on a data warehouse project. The Oracle database bulk-processed large quantities of data, did classic big-data queries and was sitting on some fairly expensive hardware with dedicated storage and the intention of implementing Dataguard. One of the issues they had was with a subsidiary part of the system that created a very large number of small transactions, lots of updates. High volume OLTP on a DW setup. It was hammering the storage and eating up all the available IO. The data for this subsidiary system was transient, no need to protect it.
I realised that the hardware was not correct for this subsidiary system and it needed no archived redo. Archiving redo is an all or nothing situation for an Oracle instance. So happy that I had worked out what to do I proposed {with a smile} moving the subsidiary system to it’s own database on it’s own hardware.
When I said this to the client, their response was a stony look and the comment “We’ve just spent a fortune on this platform……”. Having dug my hole I proceeded to jump right in there “It’s OK, what I am proposing is only about 5, 7 thousand pounds of kit – nothing compared to what you spent already!”. The client now got very, very annoyed indeed.

You see, the context is that they had been sold a system that was very expensive – it was to do a demanding job. They had been getting poor performance with the system and that is partly why I was there. They also did not really understand the technical nuances well (at least, not the chaps I was talking to) and they did not appreciate why I said what I did. From their perspective, this smiling loon was suggesting that a system costing 2-3% of what they had spent on their data warehouse platform was going to be able to do the processing that the expensive system could not. Either they had spent waaay too much, this new “expert” was an idiot or else I was lying to them. And they did not like any of those options.

Looking back it is clear I should have been more aware of how they would receive what I said. I’ve done this before {several times}, bounded into a situation like a wide-eyed puppy and gone “Look! We can just do that!” without considering things like upsetting the guy who had suggested the original solution, or making the on-site expert look stupid or blowing away a salesman’s pitch. Or that I have missed a glaring and valid reason why they can’t “just do that”.

I suspect that a few people would say “no, you just tell them the way it is and if they don’t like it or you upset someone then tough”. Well, maybe, but not if you want to be there to help fix the next problem. Also, I know I am not great at appreciating the context sometimes. That is part of why I will never run a company or be a senior manager, I lack the skills to judge the impact of what I propose or say sometimes, in my rush to be helpful. I am slowly learning to just hold back on ideas though and to run things past friends or colleagues with more “whole picture” skills first though. I might be rubbish at it but I can learn I am rubbish at it.

In the case of the situation above, the expensive system was correct for what they wanted to do – and maybe not quite expensive enough. I was suggesting a slightly unusual fix for a specific problem and I should have been more laboured in explaining the problem and more circumspect in leading them to the solution. I should have taken more time.

I should have checked who was following me and where I was going before I held the door open.

Friday Philosophy – Is the CBO becoming way too complex? October 19, 2012

Posted by mwidlake in Friday Philosophy, performance.
Tags: , ,
20 comments

I was at the SIOUG annual conference in Slovenia this week (and a very good conference it was too) and I was watching a presentation by Christian Antognini about how the CBO learns by it’s mistakes. This was of course mostly about adaptive cursor sharing and cardinality feedback. Chris was also able to share a few tid-bits about 12c enhancements in this area. I can’t go into details, but basically it looks like the CBO is going to not only enhance those two features but there is a new one where the CBO can change the plan on the fly, as the same query progresses.

As I watched the presentation I found I was in two minds about this. Part of me was thinking “Yes, these features do help in the CBO realising it has chosen a poor plan and improving things for the next execution – and it will get better at it”. The other part was thinking “Oh dear, yet another source of confusion and of performance of queries changing when ‘nothing has changed’“.

It also solidified an idea I have for a new presentation, about how what you see in the execution plan may well not be what is actually executed. ie there are optional bits in there that do not get run at execution time, depending on the results of prior steps.

But I digress. What I ended up wondering at the end of Chris’s talk was this. Is the CBO getting just too complex? It is all very good that extra abilities are being added so that there is a better chance of a good plan being chosen in the first place and the various ways we can control the choice of the plan grows and grows. But we are long past the point when you could write even a simple sql statement and know what the plan will be before you explain it – let alone run it, check the plan and then run it again a few minutes later and be sure the plan will be the same.

Why does this bother me? For three reasons:

1) Performance will not be stable, so the user experience will not be consistent – and so they will be unhappy. Users will generally be happy if they run a report and it takes one minute, if it takes one minute each time. If it takes one minute and then it takes 5 seconds, they want it to always run in 5 seconds, else they fell cheated or that the system is broken. In fact, I am pretty sure a user will be happier if a report always takes 2 minutes rather than it take 5 seconds or 40 seconds but they never know which! (So long, that is, that they never, ever see it run in less than 2 minutes).

2) If performance of a particular SQL statement is absolutely crucial, I need to know how the CBO can and probably will satisfy it so that I can work that into my solution. Otherwise I am reduced to trying out informed options (or maybe random changes :-) ) in order to find the optimal solution – and I cannot be sure that the plan won’t suddenly swap later unless I fix the plan. OK, it might swap to be faster, but I only notice when it swaps to be a lot slower.

3) I’ve said this before, but I am starting to really wonder how anyone new to this starts understanding oracle performance tuning any more. Reading blogs and books about how Oracle works and what impacts the CBO teaches you a lot about what is possible but it only makes sense when you do little tests and proofs of concepts. ie you actually run simple examples and see what happens. But with all these options, considerations and now on-the-fly alterations to plans by the CBO, it is very confusing. Even I, after 20 years of doing performance tuning on and off, am constantly finding myself looking at relatively simple SQL and having to work out why the plan is as it is and satisfying myself that it has not changed. I started with the CBO when it was a lot simpler and I’ve been introduced to the complexities gradually, as they have been introduced, so learning about it has been easier for me.

Perhaps I should not worry about this. I mean, the CBO is getting better at doing what it does, that is good. It is getting hard for those younger and smarter than me to learn about it, so my career is protected. And there is more stuff to talk about so I can keep going to conferences and talking about them.

And with that happy idea, I’m off to start the weekend. Where was that cork screw?

Friday Philosophy – I Am An Exadata Expert August 10, 2012

Posted by mwidlake in Exadata, Friday Philosophy, Perceptions.
Tags: , , ,
5 comments

(Can I feel the angry fuming and dagger looks coming from certain quarters now?)

I am an Exadata Expert.

I must be! – I have logged onto an Exadata quarter rack and selected sysdate from Dual.

The pity is that, from some of the email threads and conversations I have had with people over the last 12 months, this is more real-world experience than some people I have heard of who are offering consultancy services. It’s also more experience than some people I have actually met, who have extolled their knowledge of Exadata – which is based solely on the presentations by Oracle sales people looking at the data sheets from 10,000 feet up and claiming it will solve world hunger.

Heck, hang the modesty – I am actually an Exadata Guru!

This must be true as I have presented on Exadata and it was a damned fine, technical presentation based on real-world experience and I have even debated, in public, the pros and cons of point releases of exadata. Touching base with reality once more, I did an intro talk “the first 5 things you need to know about Exadata” and the “debate” was asking Julian Dyke if he had considered the impact of serial direct IO on a performane issue he had seen and he had not only done so but looked into the issue far more than I – so he was able to correct me.

But joking aside –  I really am a true consulting demi-god when it comes to Exadata

I have years of experience across a wide range of Exadata platforms. That would be 0.5 years and I’ve worked intensively on just one system and am in a team now with some people who are proper experts. So a range of two. Yes, tongue is still firmly in cheek.

This situation always happens with the latest-greatest from Oracle (and obviously all other popular computing technologies). People feel the need to claim knowledge they do not have. Sometimes it is to try and get consultancy sales or employment, sometimes it is because they don’t want to be seen to be behind the times and sometimes it is because they are just deluded. The deluded have seen some presentations, a few blog posts and maybe even got the book and read the first few chapters and are honeslty convinced in their own minds that they now know enough to make effective use of the technology, teach {or, more usually, preach} others and so proclaim on it. {See Dunning Kruger effect, the certainty of idiots}. I’m certainly not arguing against going to presentations, reading blogs and books and learning, just don’t make the mistake of thinking theoretical, second-hand knowledge equates to expert.

With Exadata this situation is made worse as the kit is expensive and much of what makes it unusual cannot be replicated on a laptop, so you cannot as an individual set up a test system and play with it. Real world experince is required. This is growing but is still limited. So the bullshit to real skills quotient remains very, very high.

If you are looking for help or expertise with Exadata, how do you spot the people with real knowledge from the vocal but uninformed? Who do you turn to? {NB don’t call me – I’m busy for 6 months and I really am not an expert – as yet}. If your knowledge to date is based on sales presentations and tidbits from the net which may or may not be based on a depth of experience, it is going to be hard to spot. When I was still without real world experience I had an unfair advantage in that I saw email threads between my fellow OakTable members and of course some of those guys and gals really are experts. But I think I was still hoodwinked by the odd individual on the web or presenting and, I can tell you, though this background knowledge really helped – when I DID work on my first exadata system, I soon realised I did not understand a lot about the subtulties and not-so-subtulties of using a system where massively improved IO was available under key conditions. I had to put a lot of time and effort and testing to move from informed idoit to informed, partially experienced semi-idiot.

I know this issue of the non-expert proclaiming their skills really frustrates some people who do know their stuff for real and it is of course very annoying if you take someone’s advice (or even hire them) only to find their advice to be poor. Let’s face it, is is simple lying at best and potentially criminal mis-selling.

I guess the only way is for peopel needing help to seek the help of someone who has already proven themselves to be honest about their skills or can demonstrate a real-world level experience and success. I would suggest the real experts should do that most difficult task of pointing out the mistakes of the false prophets, but it is very tricky to do without looking like a smartarse or coming over as a big head or jealous.

I’ll finish on one thing. Last year I said how I thought maybe I should do more blog posts about things I did not know much about, and be honest about it and explore the process of learning. I did actualy draft out about 3 posts on such a topic but never pushed them out as I was way too busy to complete them… That and, being candid, I really did not want to look like an idiot. After all, this Oracle lark is what puts beer in my hand, hat fabric on my wife’s millinary worktop and food in my cat’s bowl. The topic was….? Correct, Exadata. Maybe I should dust them off and put them out for you all to laugh at.

You Will Be Our Slave – Err, no, I Won’t May 27, 2012

Posted by mwidlake in contracting, Friday Philosophy, rant.
Tags: , , ,
10 comments

For the sake of current clients, this posting has been time-shifted.

I’m looking at the paperwork for a possible new job in front of me. Document seven out of 13 is the Working Time Directive Waiver. It’s the one where you sign on then dotted line saying your proposed new client can demand more than 48 hours of work a week out of you. {This may be UK or European Union specific but, frankly, I don’t care}.

I’m not signing it. For one thing, I doubt the legality of the document under EU law – especially in light of the issues the UK government had with this and junior doctors {who often, and still do, end up making life-deciding decisions on patients when they are too tired to play Noughts and Crosses, having worked 80 hours that week}. For another, well, I don’t give a damn. I ain’t signing it.

Now, I’ve just completed about 60 hours this week for my client. Not a problem at all, something needed doing, I could do it and so I have. I have done, am doing and will continue to do long weeks for clients when there is a business need and it fits in with the rest of my life and it is not a chronic situation {chronic is a medical term that means “long lasting and on-going”}.

If I am doing 60 hours plus every week, that means I am trying to do 2 people’s job at the same time and doing both of them badly. I don’t care how great I am at doing what I do, if it is 60 hours each and every week, I’m doing it badly because I am too stressed and tired to be doing it well. Also, where is the rest of my life? I have no “rest of my life”.

If my client is asking me to do 60 hours this week and I say “no” and they sack me under the Working Time Directive waiver – that means it is not a request, it is an enforcible demand. I am their slave. Nope. Not happening. It is best all round if it is acknowledged up front before I arrive on site that the client may ask and I may well say yes – but I can say no.

I know, some of you will be reading this and saying “but I need my job and if that is what it takes, I do it”. Well, I’ve worked for 20+ years and I’ve realised that (a) there are organisations that don’t abuse you and (b) you actually get little real payback for those ridiculous hours. But it can ruin your non-work life, even your family life. I don’t need any individual job and I am bloody well not playing those games any more. Employment in a modern, democratic society is supposed to be a mutual agreement and, if is it not, I ain’t playing. That is my small win for all those years of grind and I’m insisting on it.

I know, some of you will say “look, it never comes to anything, just sign it and ignore it like the rest of us”. No. If you are right, it is a corporate lie and is not required. And, to my detriment, I know you are wrong and sometimes there is an attempt to enforce it. If you cannot get me to do the 60 hours by asking and explaining, either you do not have a valid reason {and history proves I am an utter push-over to a half-reasonable request} or there is a reason very important to me why I can’t comply. If you try and insist, you really are treating me like a slave. That empty space? That’s me having gone for a looong walk.

I am not signing a document saying “you can demand I work over 48 hours any and all weeks you like”. Your are not signing a form saying “I can demand any time off I like week in and week out”. All contracts have a clause saying “this is not working between us, we will curtail the agreement”. We will use that if need be, not a bullying document that says I am your slave.

I am not signing.

Follow

Get every new post delivered to your Inbox.

Join 163 other followers