Archive for November, 2011
Spam Poetry
Here is a spam comment that I thought deserved publishing in its entirety but without the spam links. I hope you all enjoy the lyricism as much as I did.
Incomparable Blog. I tot up this Blog to my bookmarks.Thanks for alluring the in the nick of time b soon to examine this, I lean to strongly yon it and fondness information more on this topic.
Possibly Related Posts:
New Defaults, Old Side Effects
When 11.2 came out I posted about deferred segment creation at http://orawin.info/blog/2010/04/25/new-features-new-defaults-new-side-effects/ and a couple of odd side effects. Oracle published a Note 1050193.1 that makes the quite extraordinary claim that
Sequences are not guaranteed to generate all consecutive values starting with the ‘START WITH’ value.
It’s absolutely true that sequences don’t guarantee no gaps – but the fact that start with no longer specifies the starting value either is a bit rich in my view. Anyway Martin Widlake ran into this issue and has blogged about it here today. I posted a quick comment and then was going to re-run his scripts with and without deferred_segment_creation=true on my 11.2 instance. My test script is exactly the same as his (copy and paste is wonderful) but includes an initial SHOW PARAMETER line and the addition of a set serveroutput on line. My results are not the same.
<pre>NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ deferred_segment_creation boolean TRUE Table dropped. Sequence dropped. Sequence dropped. Table created. Sequence created. Sequence created. 1 row created. I have just created male name number 1 PL/SQL procedure successfully completed. 1 row created. 1 row created. 1 row created. 1 row created. 1 row created. 1 row created. 1 row created. 1 row created. 1 row created. I created 10 men and last value was 10 PL/SQL procedure successfully completed. 1 row created. I have just created female name number 1 PL/SQL procedure successfully completed. 1 row created. 1 row created. 1 row created. 1 row created. 1 row created. 1 row created. 1 row created. 1 row created. 1 row created. I created 10 women and last value was 10 PL/SQL procedure successfully completed. S MIN(FORN_ID) MAX(FORN_ID) - ------------ ------------ M 1 10 F 1 10 SQL>
The difference. This database has been upgraded to 11.2.0.3, however there doesn’t appear to be a reference to a fix for this behaviour in either the 11.2.0.3 bug fix list or that for 11.2.0.2 . I guess the lesson is the same old one, make sure you run your regression tests on all new releases including patch sets and be alert for silent behaviour changes.
Possibly Related Posts:
UKOUG Agenda
As in previous years the UKOUG allows you to create a personalized agenda for the upcoming conference. To give you a flavour for some of the excellent presentations and to encourage you to register I’ve reproduced mine below, as with previous years this is a ideal wishlist, I’ll probably “die” halfway through various days and so take a break, or get caught up in the many networking and informal learning opportunities this conference gives.
Sunday
12:15 – 13:15 Tales From The OakTable – Mogens Nørgaard
Mogens is always entertaining and thought provoking, a great way to start the Oak Table Sunday.
13:25 – 14:10 Faster, Leaner, More Efficient databases – Index Organised Tables - Martin Widlake
If you’ve been following Martin’s excellent IOT blog series (start here if not) you’ll know what I’m expecting.
14:35 – 15:20 Optimizer Statistics – a fresh approach - Connor McDonald
Connor is always worth listening to, for both content and style (not to mention slide count).
15:30 – 16:15 Statistics Gathering and Histograms – DOs and DON’Ts - Wolfgang Breitling
Wolfgang has huge experience specifically in this area and a great clear style
16:40 – 17:30 Performance & High Availability Panel Session
Well the word beer is mentioned
, I believe there will also be various giveaways including books that I and other Oakies have contributed to or written.
Monday
10:00 – 10:45 SQL Tuning - Kyle Hailey
I’ve never yet seen Kyle present, but his written material and design flair are both excellent, to this day he remains the only Oakie to be nominated and win for a fashion photography award!
11:05 – 12:05 Partitioning 101 - Connor McDonald
It’s that aussie again.
12:15 – 13:15 Going deeper into Real Application Testing – Learn how to make smoother migrations to 11g - Mariusz Piorkowski
RAT is a product with huge promise, hopefully Mariusz will let us know if the promise is fulfilled.
14:30 – 15:15 Automatic Diagnostic Repository – a look at how and when it can be used - John Hallas
John blogs here and we share a number of interests, including performance management and Grid Control. Another first for me.
15:25 – 16:10 MySQL: the least an Oracle DBA needs to know - Patrick Hurley
Criminally Patrick doesn’t appear to have a blog so pester him to get one via twitter at @phurley.
16:35 – 17:35 Database I/O Performance: Measuring and Planning - Alex Gorbachev
Alex is the founder of Battle Against Any Guess, oh and CTO at Pythian, always well worth hearing.
17:45 – 18:30 Performance and Stability with Oracle 11g SQL Plan Management - Doug Burns
Yep, another Oakie and another favourite subject for me. Maybe the Cuddly Toys will yet see him present.
18:45 – 19:45 Learning about Life through Business and Software - Cary Millsap
A keynote I’ll actually attend – that’s because Cary speaks well, has clear insights to share and is an all-round nice guy.
Tuesday
09:00 – 18:35 RAC Attack workshop - Jeremy Schneider
Clearly I won’t be here all day, but I do intend to be there for at least some of the time.
10:10 – 10:55 First Things First: Getting the basics right - Niall Litchfield
This is a presentation I gave (and got positive online reviews!) a while back covering the things you really really shouldn’t get wrong.
11:15 – 12:15 Troubleshooting RAC - Julian Dyke
I’ve know Julian for a very long time now, but it’s been nearly 4 years since I last heard him talk about RAC. Time for an update methinks.
12:25 – 13:25 Instrumentation: Why You Should Care - Cary Millsap
Yep, Cary again.
14:40 – 15:25 ASH Outliers: Detecting Unusual Events in Active Session History - John Beresniewicz
JB always speaks well, played a core role in the engineering effort for the EM performance pages and improvements introduced in 10g and the subject is great.
15:35 – 16:20 Oracle on the Amazon Cloud – What should you consider - Stephen Priestnall
Over the next decade (maybe even 5 years) many databases will likely end up somewhere “in the cloud”, this is a must attend for me as a result.
16:40 – 17:40 My Case for Agile Methods - Cary Millsap
I’m not a fan of Agile – Cary is.
17:50 – 18:35 Challenges and Chances of the 11g Query Optimizer - Christian Antognini
Again another presentation on a personal hot spot by the author of the excellent Troubleshooting Oracle Performance
Wednesday
09:00 – 10:00 Redo - Jonathan Lewis
No UKOUG conference is complete without a Jonathan Lewis session, and redo is an often misunderstood area of the database.
10:10 – 10:55 Using Oracle GoldenGate to Minimize Database Upgrade Risk - Marc Fielding
Another excellent writer, who blogs here, whom I have yet to meet or see.
11:20 – 12:20 Oracle Database Smart Flash Cache Overview -Harald van Breederode
The advent of affordable reliable, enterprise ready SSD storage, for example FusionIO cards or SSD Arrays likeViolin, is probably the biggest game changer for I/O intensive workloads such as database operations for years. I’ll be interested particularly on whether and how the smart flash cache works compared to, say, locating datafiles directly on reliable low-latency flash storage.
12:30 – 13:30 Oracle RAC One-Node: What, Why, & How - Asif Momen
I’ve followed Asif through the OTN forums for some while now, so I’ll be interested to hear what he has to say on this new Oracle feature.
14:25 – 15:10 Six Easy Pieces: Essentials of Database Tuning for Packaged Applications - Mike Swing
This and the following presentation may not make the cut depending on the state of my mind regarding the final presentation of the day. Here I’m mostly interested in the message.
15:20 – 16:05 Simulating Workloads with RAT and Simora - James Morle
Those of you who can stay till my final session will realize that good workload simulation is a big part of getting performance design right.
16:15 – 17:00 What shape is your data? - Niall Litchfield
That nice Dawn R blog|twitter says she’ll be there. If you come perhaps they’ll be 2 people in the audience.
Possibly Related Posts:
Black Boxes and Product Complaints
Update — My attention has been drawn to this follow up. Had I read the follow up before the blog entry was written I’d have worded it somewhat differently or not published at all.
There’s a rant against the document oriented database MongoDB doing the rounds. You can find it on PasteBin. You can also find a somewhat official response on YCombinator. I’ll leave you to assess which is the more reasonable and professional. Having read through the original rant and the response it seems to me that the root cause is listed in this early paragraph from the rant, emphasis mine.
Databases must be right, or as-right-as-possible, b/c database mistakes are so much more severe than almost every other variation of mistake. Not only does it have the largest impact on uptime, performance, expense, and value (the inherit value of the data), but data has *inertia*. Migrating TBs of data on-the-fly is a massive undertaking compared to changing drcses or fixing the average logic error in your code. Recovering TBs of data while down, limited by what spindles can do for you, is a helpless feeling. Databases are also complex systems that are effectively black boxes to the end developer. By adopting a database system, you place absolute trust in their ability to do the right thing with your data to keep it consistent and available.
Wikipedia defines Black Box in computing in the following 2 key ways:
- In computer programming and software engineering, black box testing is used to check that the output of a program is as expected, given certain inputs.[4] The term “black box” is used because the actual program being executed is not examined.
- In computing in general, a black box program is one where the user cannot see its inner workings (perhaps because it is a closed source program) or one which has no side effects and the function of which need not be examined, a routine suitable for re-use.
- that databases are absolutely critical and important to the success of application development and migration.
- databases internal workings are not understood by the developers.
**1. MongoDB issues writes in unsafe ways *by default* in order to win benchmarks** If you don’t issue getLastError(), MongoDB doesn’t wait for any confirmation from the database that the command was processed.
================The reason for this has absolutely nothing to do with benchmarks, and everything to do with the original API design and what we were trying to do with it. To be fair, the uses of MongoDB have shifted a great deal since then, so perhaps the defaults could change.The philosophy is to give the driver and the user fine grained control over acknowledgement of write completions. Not all writes are created equal, and it makes sense to be able to check on writes in different ways. For example with replica sets, you can do things like “don’t acknowledge this write until its on nodes in at least 2 data centers.”
- changing sharding scheme under load.
- recovery model implications.
- replication operational implications.