User c0e481a82c
05-01-2006 17:21:58
Hi,
I'm trying to calculate the average similarity between a molecule and a set of molecules for an application I'm writing, using the 3.1.1 version of the cartridge. There are 2 points about this that I'd like to raise.
The first issue is one of performance. Because what I'm doing is calculating the similarity between my molecule and all molecules in an indexed table (SELECT AVG(JC_TANIMOTO(T.SMILES, 'myMolecule')) FROM TABLE T), the calculation is quite slow. In the previous data cartridge we were using the same approach and it was around 10 times quicker for the same calculation. I notice from the explain plan for this query, that the index isn't used (or at least if it is, Oracle doesn't know about it, which I can understand). Is there some other way of getting back this answer quicker?
The second issue is that if I use JCF_Tanimoto rather than the JC_Tanimoto in the SQL above, I get a different answer. I assume this is because one function uses the index whereas the other does not. However, why then is it that this doesn't dramatically speed things up (JCF_ and JC_ take approximately the same time, but JCF_ is marginally quicker)? And how can I make sure that both versions return the same answer?
Thanks for your help.
Regards,
Phil.
I'm trying to calculate the average similarity between a molecule and a set of molecules for an application I'm writing, using the 3.1.1 version of the cartridge. There are 2 points about this that I'd like to raise.
The first issue is one of performance. Because what I'm doing is calculating the similarity between my molecule and all molecules in an indexed table (SELECT AVG(JC_TANIMOTO(T.SMILES, 'myMolecule')) FROM TABLE T), the calculation is quite slow. In the previous data cartridge we were using the same approach and it was around 10 times quicker for the same calculation. I notice from the explain plan for this query, that the index isn't used (or at least if it is, Oracle doesn't know about it, which I can understand). Is there some other way of getting back this answer quicker?
The second issue is that if I use JCF_Tanimoto rather than the JC_Tanimoto in the SQL above, I get a different answer. I assume this is because one function uses the index whereas the other does not. However, why then is it that this doesn't dramatically speed things up (JCF_ and JC_ take approximately the same time, but JCF_ is marginally quicker)? And how can I make sure that both versions return the same answer?
Thanks for your help.
Regards,
Phil.