Thanks a lot Rick, Really Helpfull
On Tue, Aug 13, 2013 at 6:29 PM, Rick Hillegas <[email protected]>wrote: > On 8/10/13 2:47 AM, Madushanka Fonseka wrote: > >> Hi, >> >> I Have been working with Apache derby for last few months as I am into >> innovating Apache derby to support "Fuzzy Query". >> >> I want to know why apache derby prfers bytecode generation over >> reflection ? >> > Hi Madushanka, > > A SQL interpreter needs to evaluate lots of expressions. Consider the > following statement: > > select a+b from t where c*d > e*f; > > In this statement, the SQL interpreter has to evaluate > > a+b > c*d > e*f > > For this expression evaluation, all SQL interpreters generate bytecode. At > least, all SQL interpreters which I know about. For most SQL interpreters, > the bytecode is something proprietary. At runtime, the bytecode is > evaluated on a special virtual machine built into the SQL interpreter. What > is different about Derby is that Derby doesn't define its own proprietary > bytecode and Derby doesn't supply a special virtual machine in its > execution layer. Instead, Derby just uses Java bytecode and the Java > virtual machine for expression evaluation. For a pure-Java database like > Derby, the traditional approach would mean that every expression would be > evaluated on 2 virtual machines: first the proprietary virtual machine and > then ultimately the Java virtual machine. The advantages of the Derby > approach are supposed to be: > > 1) Derby doesn't have to maintain its own proprietary virtual machine. > > 2) Eliminating one of the virtual machines ought to result in measurable > performance boosts for queries involving expressions and lots of rows. > > Reflection is a further issue for expressions which invoke external > routines coded in Java. When the bytecode generator was created 15 years > ago, Java reflection was an expensive operation. I believe that the > performance of reflection has improved significantly since then. > > Hope this helps, > -Rick > > >> >> Then I would like out of those two mechanisms what would be the best >> approach to execute fuzzy queries ? >> >> FYI - Fuzzy Query will look like this. >> >> Select * good students from student, >> >> Select students where avg is rather above 60 >> >> >> >> Madushanka Fonseka, >> B.Sc (Eng), M.Sc (reading), >> Snr Software Engineer, >> Virtusa Inc. >> >> >> >
