11-16-2007
6,384,
2,214
Join Date: May 2005
Last Activity: 28 October 2019, 4:59 PM EDT
Location: In the leftmost byte of /dev/kmem
Posts: 6,384
Thanks Given: 143
Thanked 2,214 Times in 1,548 Posts
Let me tell you a story to emphasize what i have written:
For 2 years i worked in a data-warehouse project for a large bank. I was the systems administrator for a software development platform for ~120 developers: 1 IBM p595 in several LPARs, a DS8000 as storage subsystem and several small systems. Several DB/2 UDB instances. The "software developers" where of course not programming - they used a Meta-Data-Analysis-Tool to feed some other "Object oriented Meta-SQL generator" (or something such, may i have left out some buzzwords here) to finally generate SQL code. Most of the times the were in meetings discussing how they would click on icons if they were ever to find time between the strategy talks, the review meetings and the customer fulfilment presentations.
One day i was asked to do a performance review for one of the database machines (LPAR, 22GB RAM, 5 physical POWER5+-CPUs). It turned out someone had effectively managed to create a "left outer join" of almost the whole database onto itself, fed that into a shell script line for line, manipulated these lines there with some awk and fed that back into the database.
Clever solution, yes? Why use outdated non-OO, non-CRE, no-nothing SQL-statements like "select for update" when a streamlined process of clicking on a icon created that wonderful masterpiece of generator-output? It turned out the generator "thought" it was a really clever solution and on the test dataset with its 10 records it "worked well" - it just had to be cancelled after 36 hours, because shell script loops manipulating 160 millions of records tend to be somewhat slow....
Another day: "developer" (no, not one of the real ones) walks up to me and asks where the command lines size limit is defined in AIX. I point him to /usr/sys/include/limits.h and tell him that it is 4096 characters.
"Developer": "Can you make that bigger?"
Me: "What for?"
"Developer": "my SQL generator has created this statement, but it is 12k characters long and i always get an input line too long' error. You have to optimize the OS to.."
Me: "no."
"Developer": "why not?"
Me: "Because I am not here to make arbitrarily bad design possible."
The DBA and me then worked together and created an analogous code in old-fashioned, very non-streamlined SQL-code in about 300 characters. True, we did that using incomprehensible low-level techniques (like an "editor") instead of modern and reliable methods ("click on an icon"), but somehow we managed to create some readable statement instead of the blather the generator had come up with and our code even ran in about 5% of the time.
bakunin