The ideas / intension of some MAL optimizers, such as alias removal, dead code elimination, (to some extend) join ordering, etc. are generic and traditional, both in database query optimization and progarmming language / compiler optimization. The genral optimizer design and architecture combining (to some extend) both database query optimization and progarmming language / compiler optimization, as well as some of the optimizers (e.g., mitosis, mergtable, dataflow, etc.), and obviously the very implementation of all MAL optimizers, is very unique to MonetDB5/SQL and MAL.
Stefan
On Wed, Aug 11, 2010 at 04:38:01PM +0800, kun ren wrote:
Thanks,professor Stefan Manegold,when I use explain,I get the optimizer MAL plan. I have another question, so we know that many classic optimizer for row-oriented database,and can I say the MAL optimizer is unique for column-oriented database such as MonetDB? or some of MAL optimizer is unique for column-oriented? Best regards!
2010/8/11 Stefan Manegold Stefan.Manegold@cwi.nl
On Wed, Aug 11, 2010 at 04:23:42PM +0800, kun ren wrote:
I read sql_optimizer setting in monetdb5.conf ,and default setting is: sql_optimizer=default_pipe
default_pipe=inline,remap,evaluate,costModel,coercions,emptySet,aliases,mitosis,mergetable,deadcode,commonTerms,joinPath,reorder,deadcode,reduce,garbageCollector,dataflow,history,multiplex
so there are many optimizer,but why when i debug MonetDB,and dump the mal
of
my sql statement,but i can't find the optimizer mal ,and don't enter
the
optimizer? like there are no optimizer,
if you prefix your SQL query with EXPLAIN to see the MAL plan, you get the optimizer MAL plan, i.e., all optimizers have already been called and done their work.
Stefan
2010/8/11 Stefan Manegold Stefan.Manegold@cwi.nl
Yes, if you write MAL "by hand" (or have some program create it) that
does
explicitly call a MAL optimizer, that MAL optimizer is indeed used to optimize the MAL code according to its very purpose.
Stefan
On Wed, Aug 11, 2010 at 03:49:47PM +0800, kun ren wrote:
It is only used by SQL? and how to designation the optimiser?but when
I
write MAL,for example, i:=0; b:= "done"; barrier go:= true; c:=i+1; d:="step"; v:=d; io.print(v); i:=c; redo go:= i<2; exit go; io.print(b); optimizer.aliasRemoval();
the last optimizer.aliasRemoval() is used for optimizing?
2010/8/11 Fabian Groffen Fabian.Groffen@cwi.nl
On 11-08-2010 15:25:15 +0800, kun ren wrote: > Recently,I am intersting in MAL optimize,and have read the
manual
of
the > MAL optimize, but it is so long, Possible if we want to use mal
optimize
,we > must degignation the optimize consideration, such as alias
removal,
> constant expression,join path optimizer;And then I dedug the
MonetDB,but
> default it don't use any optimize.so what do you think about the
mal
> optimize?
It is only used when you use SQL. The sql_optimizer setting in monetdb5.conf controls which optimisers are run, which by default
are
quite a few.
This SF.net email is sponsored by
Make an app they can't live without Enter the BlackBerry Developer Challenge http://p.sf.net/sfu/RIM-dev2dev _______________________________________________ Monetdb-developers mailing list Monetdb-developers@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/monetdb-developers
This SF.net email is sponsored by
Make an app they can't live without Enter the BlackBerry Developer Challenge http://p.sf.net/sfu/RIM-dev2dev
Monetdb-developers mailing list Monetdb-developers@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/monetdb-developers
-- | Dr. Stefan Manegold | mailto:Stefan.Manegold@cwi.nl | | CWI, P.O.Box 94079 | http://www.cwi.nl/~manegold/ | | 1090 GB Amsterdam | Tel.: +31 (20) 592-4212 | | The Netherlands | Fax : +31 (20) 592-4199 |
-- | Dr. Stefan Manegold | mailto:Stefan.Manegold@cwi.nl | | CWI, P.O.Box 94079 | http://www.cwi.nl/~manegold/ | | 1090 GB Amsterdam | Tel.: +31 (20) 592-4212 | | The Netherlands | Fax : +31 (20) 592-4199 |