jump to navigation

How Much Knowledge is Enough? June 13, 2009

Posted by mwidlake in Blogging, Perceptions, performance.
Tags: , ,
8 comments

I’ve had a bee in my bonnet for a good few years now, which is this:

How do you learn enough about something new to be useful when you are working 40, 50, 60 hours a week?

Another bee is how much do you actually need to know to become useful? The bee following that one is if you do not have enough time to investigate something, how do you find the answer? Buzzing up behind is to fully understand how something works, you often need a staggering amount of back knowledge – how do you get it? Oh dear, it’s a hive in my head, not a single bee.

I am of course in this blog mostly thinking about Oracle and in particular Oracle performance. I think that these days it must be really very hard to get going with performance tuning as it has become such a broad topic. I don’t know if you have noticed but nearly all the performance experts are not in their teens. Or twenties. And precious few in their thirties. Forties are pretty much the norm.  We {and please excuse my audacity in putting myself in such an august group}  have been doing Oracle and performance for many years and have stacked up knowledge and understanding to help us.

For me this issue was thrown into sharp relief about 4 or 5 years ago. I had become a manager and, although I was learning lots of other skills and things, when it came to Oracle Technology I think I was forgetting more than I was learning. Oh, I was learning some new Oracle stuff but it was at a more infrastructure level. The real kick of reality was going to presentations on performance and Oracle internals. At the end of the 90’s I would go along and learn one or two new things but knew 90% of what was said. By the mid 2000’s I would go along and know 50% , the other 50% would be new. Then I went to one talk and found I was scribbling away as I knew precious little of what was being presented. More worryingly, I was struggling with “How does this fit in with what I already know?”.  I just didn’t know enough of the modern stuff.

That was a pivotal moment for me. It had the immediate effect of making me start reading blogs and books and manuals again. It’s not easy to find the time but I soon noticed the benefit. Even if I learnt only a little more one evening a week, I would invariably find that knowledge helping me the very next week or month. I was back on the road to being an expert. {Or so I thought}. Oh, it had a long term effect too. I changed job and went back to the technical, but that is for another day.

But hang on, during my decline I had not stopped being useful. I was still the Oracle performance expert where I worked and could still solve most of the performance issues I came across. It made me realise you do not need to know everything to be useful and you could solve a lot of problems without knowing every little detail of how something works. A good general knowledge of the Oracle environment and a logical approach to problem solving goes a long way.

I actually started to get annoyed by the “attitude” of experts who would bang on and on and on about how you should test everything and prove to yourself that your fix to a problem had fixed itas otherwise it was just being hopeful. I thought to myself “That is fine for you, oh exalted expert, as you have time for all this and don’t have 60 hours of day job to do every week. Give us a break and get real. Most of us have to get the problem solved, move on and get by with imperfect knowledge. Doing all that testing and proving, although nice in a perfect world, is not going to happen”.

Yep, I had an attitude problem :-). I was getting angry at what I now think is just a difference in perception. I’ll come back to that in a moment.

I don’t think I am going to go back on my opinion that for most people in a normal job, there simply is not time to do all the testing and proving and you have to move on, Making do with received knowledge. It just is not an ideal world. However, we need the experts to uncover that knowledge and we need experts who are willing to communicate that knowledge and we need experts we can rely on. I am very, very grateful to the experts I have learned from.  

All the time on blogs, forums and conversations the issue of “how do we know what sources we can trust” regularly comes up. Well, unfortunately I think that if you do not have time to do the testing and learning needed to become an expert yourself, you have to simple chose your experts, accept what they say but remain slightly skeptical about what they say. Everyone makes mistakes after all. I would advise you only accept someone as an expert and rely on their advice if they are willing to demonstrate why they believe what they believe. Everything else is just an unsubstantiated opinion. 

But I’ve come to some conclusions about most of the above questions I started with.

  1. If you are judicious in choosing your sources, you can learn more reliably and easily.
  2. Even a little bit of more knowledge helps and it often comes into use very quickly.
  3. The hard part? You have to make that time to learn, sorry.
  4. Although testing and proving is good, life is not perfect. If you did (1) you might get away without it. But don’t blame the expert if you get caught out.

But I’ve not addressed the point about needing all that back knowledge to fully understand how something works. Well, I think there is no short cut on that one. If you want to be an expert you need that background. And you need to be sure about that background. And that is where it all has fallen apart for me. I started a blog!

I already knew you learn a lot by teaching others, I’ve been running training courses on and off for a few years. But in writing a blog that is open to the whole community, I’ve realised I know less than I thought. A lot less. And if I want to be a source of knowledge, an expert, I have to fill a lot of those gaps. So I am going to have to read a lot, test things, makes sure that when I believe I know something I’ve checked into it and, when I fix something, I know why it is fixed {as best I can, that is} . All those things experts tell us we need to do. And that brings me back to my perception issue. 

Those who I think of as the best in this field all pretty much give the advice to test and prove. And they have to do this themselves all the time, to make sure what they say is right. And they are the best as what they say is nearly always right. It seems to be excellent advice.

However, I think it is only good advice, as it is advice you can’t always take, because there is too much else to do. I think sometimes experts forget that many people are just too pressured at work to do their own testing, not because they don’t want to test but because you can only live so long without sleeping. 

Anyway, I said something foolish about becoming an expert. I better go and check out some other blogs… start reading some manuals… try out a few ideas on my test database.  I’ll get back to you on how I’m progressing on that one in about, say, a year or two? All those gaps to fill….

Blogtastic June 7, 2009

Posted by mwidlake in Blogging.
Tags:
2 comments

I wonder how many blog entries world-wide have the title “blogtastic” or “blogging about blogs” or something similar.

I’ve been blogging properly for about 3 weeks now. Why did I start? 3 main reasons.

  • I forget stuff {I’m getting to that age} so I thought a blog was as good a place as any to stick stuff where I could find it.
  • I like to teach.  I know, it sounds a bit naff, but I honestly like explaining things and teching people stuff. If I was starting out on my career again, I would do more training.
  • Narcisism. There has to be an element of wanting to be noticed in anyone who blogs! I’d like to be a “C” list Oracle Name :-)

After a few weeks blogging, what have I learned?

  • I really like it when I get comments. It is less like talking to an empty room.
  • I am talking to an empty room! When I linked back to my blog from Jonathan Lewis’s blog my hits jumped from a half dozen to 80. They are heading back to a half dozen now.
  • Google does not pick up stuff just because it is on a blog. Which is maybe good as think how many spurious hits you would get for 99% of stuff and it is bad as, not only are people missing out on the great stuff I say, more worryinlgy, when I ask Google about some aspect of Oracle I know nothing about, how much great stuff am I missing?
  • It takes a lot of time to do rigorous explanations of oracle facts, which is what I have always demanded from my Oracle sources (and is why I use “-burleson” in my google searches).

I know my blogs are too long, I’ve been told. But then, they are supposed to be for my own benefit and I like to see why I decided what I think I know.

It takes a loooong time to say what you want to say. I’ve put a few basic techie things up and have not touched on my 2 other areas, VLDB and management. It is going to take me a long time to put down things I want to put down. I have a list of , ohhh, maybe 50 things to blog about already.

And last for now? It’s addictive. I want to put down everything now.I want people to find and read my blog now. I want my stats to be high.Why? Narcisism of course :-) But also because if I’m going to teach people there has to be people listening.

And really for last. Why do I want to teach? Well, the post on Consistent Gets says it all. When you teach people, you learn. The hardest questions often come from people who know the least about a topic.

Single Table Hash Selects Investigated May 30, 2009

Posted by mwidlake in performance.
Tags: ,
2 comments

I think I mentioned in an earlier post that Piet de Visser had posted a nice example of the fastest way to select a single row, via a single table hash cluster. Well, I somehow missed his followup until now (I think because he has two blogs and I was checking the other one).

This is the follow up and he once again provides scripts to repeat his tests. What a nice chap. He shows how care in setting up the hash cluster is a good idea.

Here’s looking forward to his next long train trip so he can add to this thread. I might even spot it sooner next time!

More testing code layout May 19, 2009

Posted by mwidlake in Blogging.
Tags:
2 comments

Well, I pinged an email to the nice support guys at WordPress.com about whether I had missed something about turning off the gutter (line numbering) from the sourcode view, but there is no flag I missed and no mention was made of it coming in the future. I also am a little concerned that using sourcecode slows down the rendering of the web page. So I might save it for special code.

I also found out that if your code sample is more than about 60 characters long, you exceed the width of the text area and get scroll bars to the bottom and side (not of course helped by not being able to suppres the line numbering):

select count(*) "Invalid count:" from dba_objects where status != 'VALID';
select substr(owner,1,14) ownr
,substr(object_name||' - '|| object_type,1,36) obj_name
,to_char(created,'DD-MON-YY') CREATED
,to_char(last_ddl_time,'ddmmyy hh24:mi') last_ddl
from dba_objects where status !='VALID'
order by 1,2
/

compared to:

select count(*) "Invalid count:"
from dba_objects where status != 'VALID';
select substr(owner,1,14) ownr
,substr(object_name||' - '|| object_type,1,36) obj_name
,to_char(created,'DD-MON-YY') CREATED
,to_char(last_ddl_time,'ddmmyy hh24:mi') last_ddl
from dba_objects where status !='VALID'
order by 1,2
/

But the nice support desk person did suggest I try pre tags;

select count(*) "Invalid count:"
from dba_objects where status != 'VALID';
select substr(owner,1,14) ownr
,substr(object_name||' - '|| object_type,1,36) obj_name
,to_char(created,'DD-MON-YY') CREATED
,to_char(last_ddl_time,'ddmmyy hh24:mi') last_ddl
from dba_objects where status !='VALID'
order by 1,2
/

Hmmm, nope, not really better than code.
I am starting to think I duffed slightly in chosing this style, Regulus. I suspect it does not respond to many formatting tags.

On the plus side, the nice helpdesk person did agree to putting the issue of access to the flags for sourcecode on the list of requested enhancements. Nice people.

Testing code layout May 18, 2009

Posted by mwidlake in Blogging.
Tags:
4 comments

Well, as a new blogger, I am having the usual issues everyone does – with layout. Specifically, code. Code takes up space and it looks best if it is in a fixed font. I can’t see an option to set the font for specific parts of the text, so I need to use tags I guess. So let us try.

Piet de Visser gave me a couple of hints

First, I shall use the code tag

 test102>select a.result-b.result
  2  from (select max(pers_id)+1 result,1 eric from person) a
  3  ,(select min(pers_id) result,1 eric from person) b
  4  where a.eric=b.eric
  5  /

Hmm, it looks fine in the box I enter my text in, a nice small courier font. But now you are looking at it on the published page, it is in larger text and in a shaded box. The shaded box is nice, the large text is a pain. Code tend to be long, based on 80 characters per line or more.

Let’s try sourcode with language=’sql’ (sourcecode uses square brackets not angle brackets)

  test102>select a.result-b.result
  2  from (select max(pers_id)+1 result,1 eric from person) a
  3  ,(select min(pers_id) result,1 eric from person) b
  4  where a.eric=b.eric
  5  /

Now, that is more like it but the addition of the line numbers is a duplication, I will have to edit all my sql*plus output to get rid of it. Can I just have the layout with the code structure highlighting?…

  test102>select a.result-b.result
  2  from (select max(pers_id)+1 result,1 eric from person) a
  3  ,(select min(pers_id) result,1 eric from person) b
  4  where a.eric=b.eric
  5  /

Whoops, it demands a language, so that it can parse out and highlight the syntax. At least you can see the kind of syntax used though. Check out This note by wordpress on what they suggest. This link here says something about the underlying javascript but I guess wordpress have wrapped this feature as they don’t support javascript (as otherwise some swine would abuse it to damage the site). A shame as I would like to turn off the line numbering. Hmmm, I tried a few things like the below but no luck:

test102>select a.result-b.result
2 from (select max(pers_id)+1 result,1 eric from person) a
3 ,(select min(pers_id) result,1 eric from person) b
4 where a.eric=b.eric
5 /

I’ll see if using the direct syntax works, I expect not…

<pre name=”code” class=”sql”
test102>select a.result-b.result
2 from (select max(pers_id)+1 result,1 eric from person) a
3 ,(select min(pers_id) result,1 eric from person) b
4 where a.eric=b.eric
5 /</code>

No.

So, if I edit my text a little and use the sourcecode language=’sql’ tag…

select a.result-b.result
from (select max(pers_id)+1 result,1 eric from person) a
     ,(select min(pers_id) result,1 eric from person) b
where a.eric=b.eric
/

Well, it is OK but it does not show it in fixed font in the post but you can click on the option to do so. It is a shame that it is not possible to set the simple (what looks like courier) text to be used in the formatted box via a flag or something.

I could pay for the CSS feature, that would probably make all of this easier.

What can I achieve with changing font size? I Looked here for some instructions.
In the below I try and use font size=n tags…

eric eric eric
eric eric eric
eric eric eric

but it does not work.
How about span? font is, after all, depricated…

eric eric eric

No. No luck. Span is not working for me either. Maybe it is my theme that does not allow it.

OK, enough on that and back to the day job. I now know I can improve the layout but I’d like to be able to do more… I guess I could sell the cat to science and buy the upgrade? :-)

Follow

Get every new post delivered to your Inbox.

Join 176 other followers