jump to navigation

Friday Philosophy – Hello….?Dave? December 2, 2016

Posted by mwidlake in conference, Friday Philosophy, humour, Perceptions, UKOUG.
Tags: , , ,
8 comments

In 2 days time the UKOUG Tech16 conference starts. I love this conference, I’ve been to all but 1 one of them in the last 15 years – but I am not going to go on about why I like it so much again.

Gratuitous Minion Picture

Gratuitous Minion Picture

I’m going to tell you one reason I don’t like it. Names! Names of people I know. Names of people I have known for years and who I’ve seen and spent time with at many of the UKOUG Tech conferences. Yes, I have mentioned before that I am terrible with names (and all memory task to be frank) and I know others have the same problem. But for me, the annual UKOUG conference is particularly bad – and I’ve even started developing some anxiety about it.

Why is UKOUG Tech particularly bad for me?

  1. I’ve been going to it for so long I know many, many people there from prior conferences, some of whom I have met a dozen times now, had meals with, got drunk with… Let’s stop there.
  2. There are a lot of people there who I meet at other UKOUG events and other conferences. We have a LOT of speakers at this conference and I must know 75% of the database ones and half the others.
  3. As I present every year at UKOUG and now help organise the event, lots of people recognise me – but I don’t really recognise them!

That last point is an interesting one, it’s similar to when people who work in television met “the public”. Sometimes those members of the public assume they know the television personality – as they see them on TV so often. So when I present or chair a session people see me and are reminded who I am (I usually admit my name when I present). I might have spent time chatting to them so I DO know them – but with my memory and the fact that I do not have a regular reminder of their name, in my head they are either Dave or Sarah (if I can’t remember your name, mentally those are the names I give you. I can usually determine gender…).

One example is John Lancashire. I’ve known John for years & years, we get on really well. We always catch up with where we are in our jobs, what odd things have happened in our lives and the like. We had a chat on Facebook a couple of days ago and plan to meet up again this year at the conference. Only whenever I meet him for some reason I want to call him Richard or Patrick and I have to run through the counties of Northern England to try to remember his last name to trigger his correct first name. All the time I’m internally screaming “He knows I’ve forgotten his name! He knows, He’ll be offended!”.  Women seem to get particularly miffed if you get their name wrong. Maybe that is why, as a young man, I was utterly incapable of “chatting women up”. Name anxiety kind of makes you nervous.

So the name thing is particularly bad for me at UKOUG and part of the reason for this post is as an up-front excuse and to say “sorry!!!”

But the other reason for it is – I am not alone in this. Lots of us struggle with names and those who don’t probably can’t understand why we do – we just do!

So it would be really nice, everyone, if you could wear your badge so your name is easy to see. So not on your belt, not in your pocket and please try and not locate it near your groin or your breasts, as it unnerves people when I stare at them in those locations. I have to confess that I am a repeat offender for having my badge down by my crotch as, well, I’m short and the lanyards are long. I have to remember to shorten it. (The lanyard, not the crotch).

One thing I forgot to ask the UKOUG to do this year is do what the Bulgarian User Group do – make sure the name is on both sides of the badge. That really helps and the UKOUG ones seem to always spin to the none-name side.

So if I meet you at a conference and I look panicked, it’s probably name-anxiety. And if I call you Dave or Sarah you know exactly why. What’s bad is when I meet a Dave and call them Patrick.

Why oh Why Do We Still Not Have a Fast Bulk “SQL*Unloader” Facility? December 1, 2016

Posted by mwidlake in Architecture, database design, performance.
Tags: , , ,
6 comments

Way back in 2004 I was working at the UK side of the Human Genome project. We were creating a massive store of DNA sequences in an Oracle database (this was one of two world-wide available stores of this information, for free & open use by anyone {* see note!}). The database was, for back then, enormous at 5-6TB. And we knew it would approx double every 12 months (and it did, it was 28TB when I had to migrate it to Oracle 10 in 2006, over 40TB 6 months later and grew to half a petabyte before it was moved to another organisation). And were contemplating storing similar massive volumes in Oracle – Protein, RNA and other sequence stores, huge numbers of cytological images (sorry, microscope slides).

I did my little bit to work out how we all tick

I did my little bit to work out how we all tick

Significant chunks of this data were sometimes processed in specialist ways using Massively Parallel Processing farms (hundreds or thousands of compute nodes so we could do “2 years of compute” in a day or even a few hours). Oracle was never going to be able to support this within the database.

But Oracle had no fast, bulk data unloading offering, a “SQL*Unloader”. Other RDBMSs did. And that gave me an issue. I had to argue as to why hold this data in Oracle where it was hard to yank out chunks of it rather than keep it in say a simple file store or MySQL?

That year I was invited to Oracle Open World and I was given a slot with a senior VP in the RDBMS/OCFS area (as that is what were using – I know! But we were). I had been warned by someone that he could be a little “robust”. In fact my friend called him “Larry’s Rottweiler”. However my chat with the SVP went fine. Until he asked me for the one thing I would really want and I said “well, it’s been promised for the last 2 or 3 versions of Oracle, but it still does not exist in V10 – I’d like a SQL*Unloader so we can rapidly extract bulk data from Oracle into a structured file format”. He went very cold. I continued: “We need to do really intensive processing of the data with ‘C’ and if it is locked into the database we can’t do that. It’s hard for me to justify using Oracle as our primary data store if the data is now stuck there…”

I honestly thought he would bite!

I honestly thought he would bite!

He went ballistic. He was furious, he was raising his voice, leaning forward, I honestly thought he might hit me. I can’t remember the whole rant but one line stuck: “We will NEVER help you get your data out of Oracle!”. I ended the discussion as soon as I could – which obviously suited him fine also.

And here we are over 10 years later and no SQL*Unloader has appeared. And, as far as I can see, there is no longer even a suggestion that “one day” one will exist. You can obviously get data out of Oracle using SQL*Plus, SQLcl or PL/SQL’s UTL_FILE. But you have to write your own code and to make it parallel or fast is not that simple. And there are some commercial tools out there to do it. But fundamentally we do not have a simple, robust & fast data unloader tool within the Oracle toolset.

But I remain mystified as to why Oracle Corp will not provide a tool to do this. I can see the argument that doing so would help you migrate your Oracle Data set to a different platform and thus move away from Oracle, but I think that is a dumb argument. If you are willing to dump your Oracle environment for something else you are already not happy – and making life difficult is only going to make you less happy and almost certain to never come back! It’s incredibly inconvenient to extract all your data at present but compared to the cost to your organisation of changing a central part of your infrastructure, it’s just a bloody annoyance. It’s like domestic service providers (telephone, internet, TV) that make it easy for you to sign up but a nightmare to leave. Thus guaranteeing that once you leave (cos you will) you will certainly NOT be going back to them in a hurry!

So for the sake of what I see as a misplaced protectionist stance they close the door to rapidly extracting data from Oracle databases for processing in other ways. I’ve come across other situations like this, before and since, but the Human Genome issue threw it into sharp relief for me. The end result I’ve seen a few times (and effectively what we had at the Sanger) is the data gets stored at least twice – once in Oracle and then somewhere else where it is easy to access. Now that’s a daft and bad place to be, multiple copies and one of them at least lacking RI. Thanks for forcing that one on us Oracle.

Something that is changing is Cloud. Oracle wants us all to move our data and systems into the sky. Their whole marketing message at the moment is nothing but cloud-cloud-cloud and they give the impression that cloud is in fact everything, every solution. So how do you get 10TB of data into the cloud? It’s not so hard really. You can trickle it in over time, after all networks are constantly getting faster, but for bulk data this is a poor solution. Or you can ship your data physically. You can’t beat the bandwidth of a transit van. I’ve heard Oracle people at OOW and other conferences saying this is easy-peasy to arrange (as it should be, I’ve done it for clients doing migrations a couple of times).

But how are you going to get it out again? How well do you think that a company that has never provided SQL*Unloader is going to help you get bulk data back out of your Oracle cloud-based databases into on-premises systems? And how well are they going to help you shift it from one of their systems to another cloud system? One they have not sold you? Sometimes people talk about business relationships being like a marriage. Well once you gave gone cloud, you might have ensured any divorce is going to be really messy!

Update – see the comment by Noons on the fact that VLDBs and Data Warehouses are often not as static as you think – so there can be a constant need to move a lot data into and out of such very large data stores. Cloud is not currently going to support this well. And if you have a data life-cycle management policy, say archiving off data 3+ years old. Where are you archiving it off to and how will you do this once it is in the web?

* Please note, this was not human DNA sequence information gathered for medical reasons! It was mostly sequence information for other organisms (chimps, flies, potatoes, rice, viruses, bacteria all sorts) generated by the scientific and, in some cases, biopharma community. There was human DNA sequence in there but by consent and anonymised – you can’t have a human genome sequence without involving some humans! We did not hold your Dodgy Uncle’s DNA test that was taken for that court case…

Friday Philosophy – 3rd Normal Form, 3rd Normal People November 25, 2016

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

I was at a wedding a few months ago and one of the guests was wearing a pair of bear ears (I think – they might have been raccoon ears, they were not exactly anatomically correct). What made it a little unusual was that the guest was an adult and something like 2 meters tall (6’4″ in real units). So they were rather noticeable. But that was it. No tail, no strange mannerisms, just being there and chatting to people, wearing ears.

This is not the person, these are not the ears - but you get the idea

This is not the person, these are not the ears – but you get the idea

Later on in the day, at the afternoon reception, someone came up to me and said “what do you make of the person in the ears?”. Their whole tone said the rest of what they were indicating, which was they thought this was very odd and laughable. I looked at them for a few seconds and said “well, they took the ears off during the wedding service – but I guess you kept all that metal in your face?”.

The person making the comment had their hair dyed several primary colours and, as I indicated, had several studs in their face, a nose ring, a lip ring and a couple of other pieces of shiny stainless steel in strategic places. They were very much taken aback by my reply and went away.

For the first few minutes after the encounter I was really annoyed that someone who had so obviously decided to make a “statement” with how they appeared could be looking to share a laugh about another person who was doing similar – but in a different way. And in a less permanent way than the detractor had. I always get annoyed by people who seem to me to want to have their “thing” but be derisory about those who do their different “thing”.

Is this any less "odd" than the ears? (NB stock photo again)

Is this any less “odd” than the ears?
(NB stock photo again)

But thinking about it, there could be other factors at play. This be-metalled person may well be surrounded by people in their social circles where body piercing & extreme hairstyles are the norm. What we see as normal is very much influenced by what our peers think of as normal, even if the wider society we are in does not think of our clan’s actions as normal. You see this with each generation of youth (I’m thinking about 10 years) who have cohorts wearing daft things or take on mannerisms most of us regards as bizarre. Like trouser around your bum hole being held up by one hand whilst shuffling forward swaying from side to side. But in their world it is cool & normal and either not strange or being “strangely cool” to follow that trend. {With that particular fashion I could only see it being very inconvenient, limiting in movement and likely to lead to high washing machine use and constant danger of falling on your face, but ho-hum}. It also struck me that the detractor might have been looking for an opening to just talk about it as they were themselves a closet furry – though their demeanour was one of utter derision.

When I was in college there were various groups: The Goths; the small number of punks; the heavy metal crew (or crews, some groups seemed to really dislike other groups); the desperately dull & miserable “Smiths” fans; emos were just starting; and by far the largest group, the “I’m different” group. All of them striving to be individuals and yet all so very much the same. They were the ones with the face metal, wild hair, grungy clothes and extremely dismissive attitude. I often thought I was a member of the smallest, most exclusive club, the “normals”. No fashion sense {or care}, no desire for a tattoo, boring hair. Oh, I’m sorry, I was a nerd even then 🙂

The thing is, everyone is not-normal in some way. Not always as obviously as in the cases I have talked about above, where it is defined by attire, adornment or alteration. But if you spend time talking to and getting to know someone there is always something not-normal there. Almost none of us are 3rd normal form.

It took me a long, long time to realise this and be less scathing of people who do permanent physical things to themselves on a whim (I just do not understand why you would have tattoos or major body piercing where it is “for life” unless you do something almost as extreme to put things back). My saying “on a whim” is itself scathing and shows a lack of appreciation why people do such things. OK, it is not for me but that’s simply my opinion, it’s wrong of me to make a judgement call on people who make a different decision on these things. After all my utter lack of fashion sense or willingness to improve/change my looks will strike some people as very odd.

So, if someone looks different, they look different. And if it is a different you have never seen before (ie actually, honestly, really different) they could be a very interesting person to talk to. Or they could be not, you don’t know. But if you have changed any aspect of your own appearance, be it a tattoo, a chunk of iron-carbon-chromium through soft tissue, a pair of raccoon ears or just dying your hair, then they are fundamentally the same as you. And if they look normal. Well, there really are very few real “normal” people. Their not-normal is yet to be discovered. Now you have to chat to them to find it.

How much are a pair of raccoon ears? I might get a pair and a tail for the next UKOUG conference.

Gary Larson, making the complete, exact opposite to my point :-)

Gary Larson, making the complete, exact opposite to my point 🙂

Friday Philosophy – Your Experience can Keep You Ignorant November 18, 2016

Posted by mwidlake in Friday Philosophy, Knowledge, Perceptions, performance, SQL.
Tags: , , , ,
12 comments

This week I was in an excellent presentation by Kerry Osborne about Outlines, SQL profiles, SQL patches and SQL Baselines. I’ve used three of those features in anger but when I looked at SQL Patches I just could not understand why you would use them – they looked to me like a very limited version of SQL Profiles.

There is a prize for spotting Kerry without a baseball cap

There is a prize for spotting Kerry without a baseball cap

So I asked Kerry about it during his presentation (he had been encouraging us to ask questions and I was curious). The answer? They are almost identical in how they are used and the impact they have but, yes, they are more limited. You can only enter one line of hints (I think it can be more than one hint but I have not checked {update, see comment by Jonathan Lewis – it is 500 characters of hints you can add, so you can comprehensively hint most statements}) with a SQL Patch. But, and this is the crucial bit, they can be used without the tuning pack and can be used on Standard Edition. Which makes them very useful if you are limited to using a version of SE or have not paid for the extra cost tuning pack option on Enterprise Edition. Kerry told me the first part about no cost and Kamil Stawiarski the part about being available on SE.

That’s a really useful thing to know. Why did I not know it? Because nearly all my experience of performance work has been for clients who have Oracle Enterprise Edition and the tuning pack. Most companies who are willing to hire someone to do Oracle Performance work have paid for Oracle Enterprise Edition and usually for many of the options. A company who is saving money by having SE is far less likely to have the money to hire external consultants (more the pity, as I would really like to spend time working for smaller companies where you can usually get more done!)

My experience, or rather lack of it, had blinded me to the possible uses of an Oracle performance feature. I wonder how much other stuff I don’t know or appreciate about an area I claim to be knowledgeable and skilled in – because my experience is mostly for clients with a very full Oracle tool set? How true is this in all sorts of areas of my technical and personal life? Quite a lot I suspect. That can be a little dis-spiriting.

But mulling this over later that evening (with beer of course) four things occurred to me:

  • If someone claims skills in an area but does not know things you do, it could well be simply down to their personal experience to date. It does not mean you know more, it means you know different stuff.
  • How much does someone have to not know before you decide they are not the expert they claim?
  • Do we partial experts keep ourselves slightly ignorant by not asking questions – as we fear that second point?
  • I felt I did the right thing in asking a question about something I felt I should know – but did not. As now I know the answer (and two people at least got to show they know more than me).

I know I have said this before, as many others have. The more you know, the more you realise what you do not know. You just have to keep asking and remember that, we are all ignorant about something until someone tells us about it.

Top and Tailing Bulgaria. November 9, 2016

Posted by mwidlake in conference, Meeting notes, Presenting.
Tags: , ,
add a comment

Tomorrow I head off to Bulgaria for the BGOUG Autumn Conference 2016. I’ve only been to the Bulgarian user group once before, having heard from so many people what a fantastic user group conference it was – and they were right. Milena Gerova and her team do an amazing job of organising it and make everyone feel really welcome. So I am really looking forward to my return.

Bryn always gets a good crowd but this was typical for  Bulgaria (sorry it's blurry)

Bryn always gets a good crowd but this was typical for Bulgaria (sorry it’s blurry)

In one of those strange quirks of fate, I’m “opening” the conference and also “closing” it. I.e. my first session is in the first slot on the first day and my last is, well, the last slot on the last day. In between I’ll be enjoying the other talks, doing a third session myself and trying to avoid repeating the “6am with the crazy Ukrainians” experience of last time!

Having the first slot on the first day is just perfect for the session I am doing “The heart of Oracle – How the Core RDBMS Works”. A while back I realised that there are a lot of experienced and highly capable Oracle practitioners who do not actually know some of the basics of how the database software works {if I look in the mirror I see one of them}. That is, why redo is so important, what goes into the redo stream, that all table and index data is accessed via blocks (until you get to that fancy engineered systems stuff) and it is blocks that go into the SGA buffer ache, what a consistent get is or how Oracle finds a block of data in memory. That last one I had no clue about until about 6 years ago, I had made some stupid assumptions.

When you discover these things or tell someone about them, a common response is “Oh! That makes so many things make more sense! I wish I had known that from the start…”. So this talk tells people about these things and, though it understandable by anyone who has only got as far as writing their first SELECT statement and was originally aimed at those new to Oracle, most experienced people take something new from it that helps make all those more detailed talks make sense. It really suits all levels. Thus having it at the start of the conference will hopefully help give them a better understanding of the core framework of the Oracle RDBMS into which knowledge of specific areas can slot into.

The location in Pravets is lovely

The location in Pravets is lovely

The final session is equally suitable for everyone. Which is good as it is the only session available at that time! It is a “Discussion Over Beers About Oracle Database” – beers are available to all. It’s a fun and relaxed way to round off the event, with questions coming from the audience. I loved the session last year and this time I’m up on the panel. Bryn Llewellyn was sniping from the audience last year (as only Bryn can) so they are doing what you should do with any troublemaker, which is to put them in charge :-). So Bryn is also on the panel, along with Joze Senegacnik and Tim Hall.

Sometime in between those two bookends I’ll do my talk on clustering data for better SQL and overall database performance but more importantly I’ll be listening to many of the other great talks. I’ve looked over the agenda and I know I will have the complaint common in any conference with good contents – more than one talk I want to see at most points in the day. Thankfully, having been a bit of a conference tart this last few months, I have seen some of them already which makes my decision making easier.

Traditional Dancing is a Traditional Entertainment (and my shot is traditionally blurry!)

Traditional Dancing is a Traditional Entertainment (and my shot is traditionally blurry!)

Another thing I am looking forward to is enjoying the hospitality & entertainment that BGOUG is so famous for. The conference is in a hotel that is not that near many other things, which could be a problem. But the organisers make sure that we are entertained in the evening and the food last year was great. This made even better by spending time talking with the delegates and other speakers in the evening. Last year I was struck by how engaged the audience was during sessions and how enthusiastic they were to learn & share outside of them.

Just like The Polish user group conference I went to in October, BGOUG has the three things a great conference needs: Excellent presentations; good organisation; an engaged audience. For some people there, this will be their 10th or 20th time (or even more) at the BGOUG conference. Nothing says more than that.

From Forms to DB v12.2 via Ask Tom, the Real World Performance Team, & The Optimizer Lady – UKOUG TECH16 next month November 7, 2016

Posted by mwidlake in conference, UKOUG, User Groups.
Tags: , ,
2 comments

In just under 1 month the annual UKOUG conferences are happening – Tech16, Apps16 and JDE16

screenhunter_124-nov-07-13-05

All three run from Monday the 5th December through to Wednesday the 7th in the centre of Birmingham, at the International Conference Centre – and if you are registered for the main conference you can register for free for Super Sunday the day before the main conference kicks off. Places on Super Sunday are limited and are allocated on a first come first served basis.

{I do not usually sat this but -this post is my opinion, not sanctioned by UKOUG. I may do a lot for the UKOUG but I’m just a volunteer not a member of the board or employee}.

I’ve been coming to the UKOUG Tech conference for pretty much the whole of this century. I think I started in 2002 and I have only missed one year since then and I come for the whole event every time. Why am I so keen to make it to this particular conference? Because it has a huge breadth of technical content and the UKOUG is independent of Oracle – that last point is vital and some people do not realise that UKOUG is an independent user group. They are not financially supported by Oracle and they can put on whatever talks they want to. I like to think we have a mutually beneficial relationship with Oracle but it is not a marriage!

As a result of that independence we (and I can & should say “we” as I am involved in organising the conference) do not have to follow the current sales and marketing direction of Oracle Corporation. If you have seen any Oracle marketing activity over the last 2 years you would have picked up on a slight “cloud” bias from them. If you went to Oracle Open World 16 then you would have had 5 days of being force-fed cloud, cloud and more cloud. Cloud is going to save the world it would seem.

Only Cloud is not everything. Many companies that use Oracle are not going to cloud-based systems yet, some have no interest in cloud offerings and though only a fool would ignore Cloud, most technicians are here and now still mostly dealing with traditional services that are hosted somewhere on your premises.

So what do we have at Tech16? Up to 14 concurrent sessions running through each day. Have a look at the agenda here. There are 3 or 4 database streams on each day, at least two streams covering development and pretty much 3, at least one whole stream dedicated to Systems (including engineered solutions like Exadata), Big Data and Business Analytics, plus other streams on each day.

The 12.2 version of the database is out. But it isn’t. It’s in the cloud but it is not in OTN to download. So where exactly is it? Even now, that is not clear and Oracle Corp is not helping to make it clear. But it will be at the conference. We have talks on 12.2, what is in it, what is new. So if you want to know the latest, you will be able to get a lot of information about it at UKOUG Tech16. It’s not 100% clear if it will just be called “next generation” or not. After all, when it is generally available maybe Oracle will call it something else. I’m hoping for Oracle Twelveteen.

A complaint I hear from people over and over again every year is that there is nearly always 2 or more talks of interest at any time, for almost any point in the conference. Whilst I sympathise with how annoying that is, what this indicates is that we get so many excellent talks submitted to the conference that we are able to pick only good ones :-).

This is not to say we get the scheduling totally right. With so many streams, with each delegate’s sphere of interest being different and with the juggling that happens as some speakers have to ask for slot changes or pull out (stuff happens, sometimes a speaker cannot make the event no matter how much they would like to), the ball is occasionally dropped and talks on very similar topics occur at the same time that would have been better spread apart. If this happens, please let one of the organising staff know so we can track how often we get it wrong and learn for next year. (But please, don’t shout at anyone – a lot of people put a lot of effort into this).

As for the content, it is across the board. We have talks on Forms as we realised is was a missing area and is still used by lots and lots of people. We have our introductory pathways that are explained in the conference brochure – a recommended itinerary of talks for people new to that area of tech. We had deep dive stuff for the ner… very technical people. And we have some of the best speakers in the business plus the official word from Oracle. Connor McDonald is doing the Database keynote and a couple of other sessions and the other half of “Ask Tom”, Chris Saxon, is presenting too – and both will be taking questions. “SQL Maria” Colgan will be talking about in-memory and the Real World performance team is represented by the evergreen Graham Wood. I know I’ve concentrated there in the DB part of the conference but it’s the area I know best and the one the majority of you looking at this blog will be interested in.

This did not happen at one of the socials. You did not see this

This did not happen at one of the socials. You did not see this

There is another reason I come to the conference (overlooking the slight issue that as I help organise it I am not going to miss it!) which is the social side. Other conferences have social events that secretly we at the UKOUG are envious of – but the larger you get the harder it is to organise special events but we try to ensure there is plenty of stuff going on after the talks. We make sure there are a couple of events each evening that we can all get together at – Exhibition Drinks, Community Drinks and the Tuesday party. Drinking is not obligatory but meeting people is!

Or this - move along, nothing to see

Or this – move along, nothing to see

I go to UKOUG TechXX for the content. I stay up until late for the social. If you have never been before and you have the opportunity, well I’ve been coming along for 13 or 14 years. I must think it’s worth it.

Pint with Oracle User Group – First International POUG (Polish) Conference October 14, 2016

Posted by mwidlake in ACED, conference, Friday Philosophy, Meeting notes, Presenting, User Groups.
Tags: , , ,
4 comments
Kamil kicks it all off: Apparently water has bacteria in it - so drink beer! (stolen from Pieter v.Puymbrooeck)

Kamil kicks it all off: Apparently water has bacteria in it – so drink beer
(stolen from Pieter v.Puymbrooeck)

Last week I enjoyed being at the first international conference that the resurrected Polish Oracle user group has put on. I say enjoyed – I actually mean really enjoyed! Why did I like the conference so much? Three major components came together.

(Before anyone rushes to mention the Polish custom of entertaining you with alcohol, that was not one of the three parts. It was the fourth instalment of the trilogy…)

Let’s start with a little history. I first came across Kamil Stawiarski just a year or so back. I had blogged about Pragma UDF and how it improves the performance of PL/SQL functions called from SQL – and then came across his blog post on it. About the same time he came across mine and we got in touch. He’s an “Oracle DBA type” and his company is called ORA600! {if you had not noticed, so is mine}. The similarities do not stop there. He loves beer+presenting (for some reason I have this reputation…) and using an axe. I am a little more technical – as I use a chainsaw as well as an axe. In respect of Oracle Technical, I’ll give Kamil the prize in that. The biggest difference is I am old enough to be his dad. I might adopt him. Anyway, Kamil came to the UKOUG Tech15 conference, we met up and he asked me (as well as several others) if we as international speakers would support him running a conference in Poland? Of course! I had so much in common with Kamil, he and his travelling companion Adam were so friendly, positive and knowledgeable that it was an easy decision.

A date was chosen, Kamil let us all know and those of us who could went along. The conference took place in Warsaw on Friday 7th to Saturday 8th October, with a speaker’s meal on the Thursday. There were two streams during the conference, one mostly on database topics and the other mostly on development & BI. We had a lot of well-respected and talented speakers including Jim Czuprnski (who has Polish roots), Joze Senegacnik, Piet de Visser, Heli Helskyaho,Phillipe Fierens, Neil Chandler, Sabine Heimsath… Apologies to the others I have not mentioned. Why did we all turn up? Because we were asked to. Most of us presenters just enjoy presenting (as we crave attention and being asked to present appeals to our egos 🙂 ). Being serious, if you want to organise an Oracle conference or user group meeting, don’t be afraid to ask people to consider coming along. The worst we will do is say “no” (and please be cool if we do; we all have other calls on our time).

What a set of Mug Shots :-)

What a set of Mug Shots 🙂

With this cunning trick of simply asking people he thought could speak well to come speak at his conference, Kamil had got himself a bunch of good speakers, one of the three things you need for a good conference.

Speaker gifts

The speaker gifts were just so apt!

The next part that is key is the organising of the conference. So Kamil set too organising it. Well, I say Kamil orgainised it, he actually got Luiza Koziel to organise most of it, which he says was one his best moves! So he, Luiza and probably half a dozen people I should thank but have not (I really should get a list of the volunteers), spent a lot of time and effort planning the event. Update – Kamil let me know the names. In his words:

Rafal Rebecki- he found all sponsors.
Pawel Chyliński, Adam Jagielski and Radosław Kut – always ready to help with every issue we had challenging us
Kamil Kozieł – directly responsible for all marketing stuff like website and social media
Adam Boliński- help with organising speakers and preparing agenda he was also one of the sponsor
Of course Luiza Kozieł – she was responsible for everything 🙂 finding venue, organising hotel and gadgets. she did most of the work

I’ve helped out with many conferences & meetings, from the huge behemoth that is the UKOUG Tech conference to small SIGs and special interest groups. It takes a lot of work – much, much, much more work than you can appreciate until you do it yourself. They sorted out a suitable venue, they compiled the abstracts for the talks and speaker profiles (often not an easy task, some of us are such prima donnas), put together the web pages for it and advertised the event well. During the event they smoothed out the issues that invariably crop up and they looked after all the delegates and speakers. The food at the venue was excellent, both the speaker’s meal and the conference party were fantastic, signage at the venue was good, crowds were managed and encouraged back into sessions at the appropriate time. There are a dozen other things that go to making the mechanics of an event work and, from what I could see, it was all done well or quickly resolved such that I did not notice.

Heli Helskyaho's crowd is a nice example of how busy the sessions were

Heli Helskyaho’s crowd is a nice example of how busy the sessions were

The organisation was great, the speakers were fantastic, what is the third thing you need?

The final thing is sort-of beyond the control of the organisers. For a conference or meeting to work you need an engaged audience. The audience does not have to be huge (though full rooms really help) but they have to be there mentally as well as physically. POUG got an excellent, large crowd of delegates. As a presenter I like it when I feel looked after. A speaker’s meal is great, havng registration and any admin done for you by the “office” is a help. There are lots of “nice” things you can do for the speakers but, for me at least, there is only one absolute. What makes a conference great for a speaker is actually having delegates who want to be there and want to hear presenters speak – and who then are chatting between themselves, challenging the speaker “experts”, asking questions in sessions, continuing discussions outside the presentations and generally making that “buzz”. Lots of things can be done by both the organisers and, to some extent, the speakers to help this. But in the end it comes down to having an involved audience. And in Poland we had that in spades. It was very, very “buzzy”.

Don't water the speakers after midnight!

Don’t water the speakers after midnight!

Obviously the organisers can prime the pump by getting the speakers and organisation right and I think it helped that the people leading the conference were relaxed and yet determined that everyone had a good time. But in the end, I think the delegates take some of the credit for making the conference so good.

All in all it all came together wonderfully in Poland last week. It’s in my top three conference experiences. (I won’t confirm where or which the other three are – It changes depending on what aspects I am thinking about).

The end of the conference summed it up. Just as in Ireland earlier this year, the last session was an open, “panel” affair with some speakers at the front and an intention to get the audience involved. At POUG we had a discussion about why DBAs are so arrogant and Developers so useless. Of course, neither statement is true all the time and it led to a lively, good-natured and often very funny discussion. The organisers had ensured that this could roll on if there was the desire to do so and the audience demonstrated that there was. I am sure we went on for twice the allotted time! Finally POUG stepped in and closed the conference (in a very nice way).

The DBA-Dev "love" - thanks to Kiran Tailor

The DBA-Dev “love” – thanks to Kiran Tailor

I’ve got lots of stories to tell about the POUG conference but that can be in another post – or simply when chatting at other conferences or in a a bar. Some of them involve the use of alcohol as an enabler in IT.

I hope there is another POUG next year. I hope it is even half as good. I especially hope they let me come back!

OTN Appreciation Day – Instrument Your Damned Code. Please! October 11, 2016

Posted by mwidlake in ACED, performance, PL/SQL.
Tags: , ,
1 comment so far

Today is OTN Appreciation Day.

This day is the idea of Tim Hall, Mr OracleBase, and you can See his post here. The idea is that as a sign of appreciation to OTN we do a technical (or not so technical) post on a feature of Oracle we like. I’m going to visit an area I have mentioned before…

DBMS_APPLICATION_INFO.

In my opinion, one of the key differences between good code and poor code is that it is instrumented in someway. I certainly believe that an application that is instrumented is much easier to live with and, over the lifetime of that application, runs much more smoothly and significantly more efficiently as (a) problems can be resoled easier and (b) any change in code performance is easy (and thus more likely) to be identified. It is because of this second point that I feel the overhead of instrumentation is not 10% or 20% but rather -15% – it improves overall performance.

The easiest way to instrument PL/SQL code is to use DBMS_APPLICATION_INFO. You use simple calls to set the values for the columns MODULE and ACTION in V$SESSSION and you can also populate a third column CLIENT_INFO.

ora122> desc v$session
 Name                                      Null?    Type
 ----------------------------------------- -------- ------------------------
 SADDR                                              RAW(8)
 SID                                                NUMBER
 USERNAME                                           VARCHAR2(30)
...
 MODULE                                             VARCHAR2(64)
 MODULE_HASH                                        NUMBER
 ACTION                                             VARCHAR2(64)
 ACTION_HASH                                        NUMBER
 CLIENT_INFO                                        VARCHAR2(64)

It is incredibly easy to use the DBMS_APPLICATION_INFO built-in package to set these columns via the procedures set_module(module_name,action_name), set_action(action_name), and set_client_info(client_info). The values set are held in memory, and there is no inserting or updating of any table rows – so it is incredibly quick and light-weight. V$SESSION is a view on top of memory structures.

Part of the reason that DBMS_APPLICATION_INFO is so powerful is that nearly all performance and development tools that are used for Oracle will show you this information. Of course this is especially true of Oracle tools such as OEM/Grid Control and SQL*Developer. Thus when you are looking at what code is taking up time or running slowly, you can use MODULE and ACTION to identify the exact code and area where the issue is – you are not having to guess. One of the reasons that performance tuning and problem resolution can be so hard is that you are guessing as to the source of the problem. Instrumentation means you know, you are not guessing. DBMS_APPLICATION_INFO is simple and thus, almost as a direct result of this, efficient at identifying where the problems are without blinding you with too much information.

The below is from OEM Express, showing which modules and actions are taking up the most time.

OEM Express showing what modules take up time

OEM Express showing what modules take up time

I go into more details about DBMS_APPLICATION_INFO at this post about it and I go into a lot of detail about this and other types of PL/SQL instrumentation in the book I contributed to – click on the link on the right of this web page for details on that 🙂

The OTN Program
Like many people I am doing a technical blog today in order to publicly thank the Oracle Technology Network for what they do. Why do I want to do this? Well, because they have helped me for years and they support me helping others.

As I write this blog I am rudely ignoring Ludovico Caldara explaining 12c dynamic optimizer features to a carefully listening crowd in Denmark, as part of the OTN Nordic tour. They help fund some of us on the ACE program to go on these tours and spread knowledge with people. I would struggle to do all the talks I do if, as an ACE Director, the OTN ACE program did not help cover some of my expenses. They do not pay everything but, heck, I can’t go complaining about them *only* paying for some of it!

OTN provide huge amounts of information on their web site(s), the place you go to download the software and documentation for free.

The final thing for me personally is that they help me contact people in Oracle who can help me better understand parts of the tech or even report back issues and help get them resolved.

Thank You OTN

Nice Social Media Profile Picture! Oh… Err… September 30, 2016

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

A few (months/weeks/days/hours)* ago I saw a friend request on Facebook. I looked at their profile which indicated that they were kind-of in my technical arena and the profile picture made me think “Wow – that’s an attractive person!” and I was about to click on the accept button.

And stopped.

I only friend people on Facebook who I know. By that I mean I have either met in real life and liked or have had a LOT of contact with through social media and liked. People who, if they were delayed at Stansted airport at midnight and needed a place to sleep, I’d be happy to go pick them up and bring them home to stay in my spare room.

This person did not pass this criterion. I was going to add them to one of my social media cohorts based on a superficial, image-based reaction, based on a pretty weak “they mention Oracle and DBA in the profile” and a much stronger “that’s a nice looking lady”. Whether this is Facebook, LinkedIn, Twitter, whatever – it struck me that if I am adding people based on looks then that is the wrong reason and is “appearanceist”. When I link to someone on LinkedIn it is supposed to be all about “are they in my area of I.T.” not how hot they are. But I do notice that attractive people, especially ladies, seem to get a lot more followers. That made me think about the whole tricky subject of whether we are allowed anymore to comment on someone’s looks, what is sexism, how some people get ahead by being attractive or even get held back by it.

I could now write a long, meandering, and probably pretty much worthless analysis of sexism in IT and how social interaction should be different to professional interaction. But I will keep my point brief. I’ll just state three thoughts and three brief paragraphs:

1) How often do we socially link to someone based on their physical image?
2) Is this wrong?
3) How often do we attempt to improve the physical appearance of our own online profile picture?

I am guilty of 3. I have Rosacea – a long-term reddening of the facial skin a bit like teenage acne. I don’t really like it so I use an older image of myself for my profile picture. I know that many people use a photo of themselves from when they were younger (sometimes a lot younger) or one taken by a professional photographer to show themselves in the best (and let us be frank, atypically flattering) light. i.e. a picture to make us look more handsome/attractive than we really are.

If we all accept that, especially on a professional level, we should all be judged on what we do & who we are as opposed to our physical appearance – why are we so careful of our own online physical appearance?

If we falsely manipulate our own online physical image have we any moral basis for criticising anyone who uses their good looks to gain exposure, acceptance or advantage? No matter how subtle or blatant it is.

So my premise is, if you manage your own image you have to accept others doing so and, to some extent at least, lose the right to object to anyone making judgements based simply on physical appearance. Can I now feel justified in only hiring women who I personally find attractive ? (I don’t find many men attractive, sorry guys).

I’m sure many of you feel that combing your hair, putting on nice cloths and perhaps using a touch of make-up is absolutely nothing like using a salon hair stylist, most of Max Factor’s product line and slightly revealing clothing to get a job. But where on that spectrum is OK, where isn’t and how are you making that judgement call?

A final thought. I did not link to the person who sent me the Facebook request as they were, in my opinion, attractive and I would be doing so for the wrong reasons. Was that morally strong or morally weak? In this case I would like to feel the former as I use Facebook only for established friends. If this was in, say, LinkedIn which I use totally on a professional level, if I did not link to that person as I felt I was doing so partially influenced on their looks… That’s a very interesting take on positive/negative discrimination. Especially if their image turned out to be old…

(*) I get so few Facebook friend requests that if I stated when I saw this one, the person I think is attractive might realise who she is and then I would be very British Reserved uncomfortable around her 🙂

Friday Philosophy: Be A Hero – OR Be The Best August 26, 2016

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

There is a crisis! The database is not responding, the apps can’t work and the business is suffering. Management are doing what management are there for – panicking and demanding “Someone Do Something!!!”.

Step forward a DBA who logs into the server, checks the alert logs, spots what is wrong and fixes it. The database starts processing requests, the applications are all working fine and the business is back on track. What a hero!

The Mantra of the DBA Hero

The Mantra of the DBA Hero

Such situations are not just the preserve of the database and the DBA of course. You get the hero System Administrators who step in and sort out the lack of storage space at 3am. Or the programmers who look at the code that has been running slow for weeks, that others have not been able to fix, and make it run in 5 minutes rather than 5 hours. All heroes who then bask in the gratitude of management and colleagues. Thank goodness for the Hero Developer/DBA/Sys Admin or whatever. You even get articles and advice on how to be The Hero in some quarters. I’ve even seen job ads like “Are YOU our next Developer Hero?!?”.

Only, 9 times out of 10, whatever was wrong should never have occurred. Yes, there are always going to be hard-to-predict failures or unavoidable catastrophes. But the majority of situations I have seen when the database goes seriously wrong, a critical program messes up badly, or a server goes offline, it is down to something that could and should have been spotted before hand – or never set up in the poor manner that it has been. These are things like Archive Redo log areas filling up, an “innocuous” network tweak taking out a major connection or a data processing program that goes wrong if it is run with no data to process. Just a little bit of thought or testing will avoid these sorts of issues.

As you get better at your role, and I mean really, truly better and not just older, you learn about better ways to do things. Either you make mistakes yourself and have to fix them (the best way to learn, even though it does not often feel like it), correcting something someone else did poorly or you read about how to set up systems to be more fault tolerant. You become more experienced with the tools and you grab hold of any new features that are going to make the systems run better. I’d hope we also all learn skills and working practices that help avoid disasters, such as proper testing methodologies (something that we seem to get less and less time & resource for) and proactive rather than reactive monitoring of our systems. If I am owning a database and it unexpectedly runs out of space for the data files or archive redo – I failed. The database did not, I did – as I know how to set up checks for those things.

The best technicians (in my opinion) that I have worked with are all like this. They don’t monitor for things that have gone wrong so much as monitoring for things that are going wrong. Every week or month they will change something that was OK – but it could be better, more resilient. The end result is a much quieter life and a substantially better service provided to the business.

But that’s where the rub is. That’s where things become unfair. When you are being the Best DBA or the Best Developer, things just work without a fuss. There are no disasters that impact the business and thus no need for The Hero. The systems run smooth & fast and management figure you are probably not doing that much. Heck, you seem to be spending all your time tinkering rather than fixing stuff! They often don’t get that the “tinkering” is what stops the disasters and the need for Heroes. That can lead to a lack of appreciation for what you are doing and it is extremely hard to see someone get praise for fixing an issue that they should never have let happen and even getting a pay rise and you get just a “yeah, thanks for, like, keeping the lights on I guess”.

I had this in spades in one role. I turned up and the critical databases would all be going down once or twice a week. People just accepted it. I worked on the problems, got my team together (and trained them!) and improved the service. For a couple of years I was a card-carrying member of the cape and spandex pants club. I was a Hero. We provided more services and incidents became very rare. And then they decided I was not doing enough. No problems were occurring so what did they need me for? After I calmed down from that (it took a few months) I decided I agreed with them and left. But I left behind a fantastic team and rock-solid systems. {It actually took me years to stop resenting the way they handled it, to be fair, but I never stopped being proud of what I did and that team}.

blowing you own trumpet can help - a little

blowing you own trumpet can help – a little

So what do you do when you are being the best you can and not the hero and, as a result, you are fading into the woodwork? Well, I advise people to do several things, some of which you can see from a slide (taken from my “disasters” presentation) shown to the left. Record the number of incidents and how they go down as you improve things. Document improved up-time and better performance (which might be the same response time under higher workloads). Generally blow your own trumpet. However, it never seems to be enough to counteract the prestige people get from being the hero. It’s not “Right” but it just seems to be the way it is. I know some people take the other approach, which is to actually let (or even create?) disasters in which they can be heroes. After all, this is your career.

One fix is to just move on. After all, in the situation I described above I had actually completed my job – I had been hired to put in place a professional service and I did. So it would have been best if we had all been grown up and decided it was job done and time for me to move on. As a contractor/consultant this is a lot easier to do. Turn up at a client, be a hero for a while and then do your real job of making the systems solid. And then move on.

But not everyone has that luxury to move on. There may be few opportunities where you live or you would lose other aspects to your job that are very important (good child care is one example I have seen). Or moving roles might be something that gives you a lot of stress. So if you are “stuck” in your role and you are doing the best that you can, it is massively demoralising to fade into the woodwork as a result. What is the reward for all your work – pride and less interrupted nights are good but not getting the credit you deserve is hard.

But in the end I think you have a choice. Be a Hero or be The Best You Can Be. I have to aim for the latter, I can’t knowingly allow disasters without trying to at least warn management it could happen. And if you decide to be the best you can be perhaps you have to accept that, unless your management is very unusual, it may well mean less respect than you deserve. But *you* will know. I suppose it is a pride thing.

Are you a Hero? Or are you Simply The Best!