I have learnt the new mode clause back in 10gR1. There has not be any further development or marketing on the "SQL for Modeling" since then, just some fixes, but no real enhancement, and the number of limitation (where you cannot use model) is still way to big.
Is Oracle still investing R&D on the topic? Or are you looking for a CONNECT BY LEVEL replacement ;-)
this list of evergreens should not only apply to every dba but also to every software developer, no matter which tools she/he uses (just my thoughts on them)
Happy new year to you too! I am not able to figure out the tool that generates report on database performance and also show sql statement and their problem area. Hope will figure out soon.
I did a lot of research on the model-clause topic about 5 years ago. Oracle added a powerfull albeit quite complex and abstract capabilities to the SQL language. I consider it a procedural extension to SQL which is able to postprocess the results of a query.
Here's a small example of a model-clause empowered query. First a simple selection from dual is queried and the resulting row is extended by a model-clause by recursively compute the fibonacci number sequence and an estimation of the golden ratio. Try to achieve the same result in plain SQL without using any embedded procedural code like calls to stored procedures or table functions :-)
select i, to_char(fib) fib, phi golden_ratio from (select 1 i from dual) model dimension by (i) measures (1 fib, 1 phi) rules upsert ( fib[1] = 1 , fib[2] = 1 , fib[for i from 3 to 200 increment 1] = fib[cv(i)-1] + fib[cv(i)-2] , phi[ANY]=fib[cv(i)]/fib[cv(i)-1] )
I have to admit that I'm not as competent at the MODEL clause as I'd like to be. Better than a year ago, but not what I would call proficient - still a little ways to go :)
The views expressed are my own and not necessarily those of Oracle and its affiliates. The views and opinions expressed by visitors to this blog are theirs and do not necessarily reflect mine.
I've been using Oracle since 1988. I've been working at Oracle since 1993 (version 7.0). I spend way too much time working on asktom.oracle.com...
9 Comments:
I was saying to Alex Nuijten in the comments to the following post, I really need to look at the MODEL clause some more. :)
http://nuijten.blogspot.com/2012/01/generate-multiple-rows.html
Cheers
Tim...
Happy New Year Tom
I have learnt the new mode clause back in 10gR1. There has not be any further development or marketing on the "SQL for Modeling" since then, just some fixes, but no real enhancement, and the number of limitation (where you cannot use model) is still way to big.
Is Oracle still investing R&D on the topic? Or are you looking for a
CONNECT BY LEVEL replacement ;-)
Best wishes for 2012 to your family and yourself
Laurent
@Laurent,
you'll see some things for sure in the next release with respect to model and analytics in general.
still worked on - definintely
this list of evergreens should not only apply to every dba but also to every software developer, no matter which tools she/he uses
(just my thoughts on them)
Happy new year to you too! I am not able to figure out the tool that generates report on database performance and also show sql statement and their problem area. Hope will figure out soon.
http://instantkick.blogspot.com
Hi Tom,
I did a lot of research on the model-clause topic about 5 years ago. Oracle added a powerfull albeit quite complex and abstract capabilities to the SQL language. I consider it a procedural extension to SQL which is able to postprocess the results of a query.
Here's a small example of a model-clause empowered query. First a simple selection from dual is queried and the resulting row is extended by a model-clause by recursively compute the fibonacci number sequence and an estimation of the golden ratio. Try to achieve the same result in plain SQL without using any embedded procedural code like calls to stored procedures or table functions :-)
select i, to_char(fib) fib, phi golden_ratio
from (select 1 i from dual)
model
dimension by (i)
measures (1 fib, 1 phi)
rules upsert
( fib[1] = 1
, fib[2] = 1
, fib[for i from 3 to 200 increment 1] =
fib[cv(i)-1] + fib[cv(i)-2]
, phi[ANY]=fib[cv(i)]/fib[cv(i)-1]
)
Regards,
Denny
Hallo Tom,
another Happy New Year to you !
Did you manage to fulfil your last-years-resolutions ?
Are you now a top expert for the model-clause in SQL ?
Matthias
@Mattias
I have to admit that I'm not as competent at the MODEL clause as I'd like to be. Better than a year ago, but not what I would call proficient - still a little ways to go :)
Tom,
Will you be sharing your 2013 new year resolution with us?
POST A COMMENT
<< Home