<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META http-equiv=Content-Type content="text/html; charset=us-ascii">
<META content="MSHTML 6.00.5450.4" name=GENERATOR></HEAD>
<BODY>
<DIV dir=ltr align=left><SPAN class=146461622-06112006><FONT face=Arial 
color=#0000ff size=2>Did you try to use a map instead of a hash_map? I have 
found (empirically) that in most cases std::map will perform better than 
std::hash_map.</FONT></SPAN></DIV>
<DIV dir=ltr align=left><SPAN class=146461622-06112006><FONT face=Arial 
color=#0000ff size=2>Also for SDF I&nbsp;used a&nbsp;linear search approach -- 
look in PropertyIndex.cpp, line 121. The provider maintains a list of&nbsp;the 
class properties and their data type for quick access. The advantage of this is 
that if you list the geometry property first, you will be paying essentially no 
overhead to get the index of the geometry property. However,&nbsp;linear hurts 
more than std::map if you have a large number of attributes or you are getting 
too many of them.</FONT></SPAN></DIV>
<DIV dir=ltr align=left><SPAN class=146461622-06112006><FONT face=Arial 
color=#0000ff size=2></FONT></SPAN>&nbsp;</DIV>
<DIV dir=ltr align=left><SPAN class=146461622-06112006><FONT face=Arial 
color=#0000ff size=2>Traian</FONT></SPAN></DIV>
<DIV dir=ltr align=left><SPAN class=146461622-06112006><FONT face=Arial 
color=#0000ff size=2></FONT></SPAN>&nbsp;</DIV>
<DIV dir=ltr align=left><SPAN class=146461622-06112006><FONT face=Arial 
color=#0000ff size=2></FONT></SPAN>&nbsp;</DIV><BR>
<DIV class=OutlookMessageHeader lang=en-us dir=ltr align=left>
<HR tabIndex=-1>
<FONT face=Tahoma size=2><B>From:</B> Haris Kurtagic [mailto:haris@sl-king.com] 
<BR><B>Sent:</B> Monday, November 06, 2006 5:08 PM<BR><B>To:</B> 
users@mapguide.osgeo.org<BR><B>Subject:</B> RE: [mapguide-users] perfomance 
test<BR></FONT><BR></DIV>
<DIV></DIV>
<DIV dir=ltr align=left><SPAN class=437385821-06112006><FONT face=Arial 
color=#0000ff size=2>Hi Jason,</FONT></SPAN></DIV>
<DIV dir=ltr align=left><SPAN class=437385821-06112006><FONT face=Arial 
color=#0000ff size=2></FONT></SPAN>&nbsp;</DIV>
<DIV dir=ltr align=left><SPAN class=437385821-06112006><FONT face=Arial 
color=#0000ff size=2>I&nbsp;checked again about this slow attributes fetching, 
and it was poor perfomance in provider. </FONT></SPAN></DIV>
<DIV dir=ltr align=left><SPAN class=437385821-06112006><FONT face=Arial 
color=#0000ff size=2>I have corrected it so this time instead of 18 sec&nbsp;is 
6 sec.</FONT></SPAN></DIV>
<DIV dir=ltr align=left><SPAN class=437385821-06112006><FONT face=Arial 
color=#0000ff size=2></FONT></SPAN>&nbsp;</DIV>
<DIV dir=ltr align=left><SPAN class=437385821-06112006><FONT face=Arial 
color=#0000ff size=2>btw:</FONT></SPAN></DIV>
<DIV dir=ltr align=left><SPAN class=437385821-06112006><FONT face=Arial 
color=#0000ff size=2>Problem was that FDO fetch properties using property name 
and than you need to use strings to find right index in query result 
set.</FONT></SPAN></DIV>
<DIV dir=ltr align=left><SPAN class=437385821-06112006><FONT face=Arial 
color=#0000ff size=2>I forgot about that one, I mantioned that&nbsp;already on 
fdo dev list but forgot to optimize in provider. (Now using hash maps for 
quicker finding match)</FONT></SPAN></DIV>
<DIV dir=ltr align=left><SPAN class=437385821-06112006><FONT face=Arial 
color=#0000ff size=2>To allow index based access to properties&nbsp;would be my 
first fdo rfc&nbsp;when rfc's starts&nbsp;for fdo&nbsp;:).</FONT></SPAN></DIV>
<DIV dir=ltr align=left><SPAN class=437385821-06112006><FONT face=Arial 
color=#0000ff size=2></FONT></SPAN>&nbsp;</DIV>
<DIV dir=ltr align=left><SPAN class=437385821-06112006><FONT face=Arial 
color=#0000ff size=2>Haris</FONT></SPAN></DIV><BR>
<DIV class=OutlookMessageHeader lang=en-us dir=ltr align=left>
<HR tabIndex=-1>
<FONT face=Tahoma size=2><B>From:</B> Jason Birch 
[mailto:Jason.Birch@nanaimo.ca] <BR><B>Sent:</B> Sunday, October 29, 2006 11:18 
PM<BR><B>To:</B> users@mapguide.osgeo.org<BR><B>Subject:</B> RE: 
[mapguide-users] perfomance test<BR></FONT><BR></DIV>
<DIV></DIV>
<DIV dir=ltr align=left><SPAN class=166210422-29102006><FONT face=Arial 
color=#0000ff size=2>Haris,</FONT></SPAN></DIV>
<DIV dir=ltr align=left><SPAN class=166210422-29102006><FONT face=Arial 
color=#0000ff size=2></FONT></SPAN>&nbsp;</DIV>
<DIV dir=ltr align=left><SPAN class=166210422-29102006><FONT face=Arial 
color=#0000ff size=2>Those are some really interesting results.&nbsp; I'd like 
to see what happens with spatial index optimisation, but I am mostly wondering 
why it took so much longer to pull all features/attributes, where index 
optimisation would not have any effect.&nbsp; Was the database server running on 
the same box as MapGuide?&nbsp; I'd also like to see what happens with some 
attribute filters against a database that has proper column indexes created on 
it.</FONT></SPAN></DIV>
<DIV dir=ltr align=left><SPAN class=166210422-29102006><FONT face=Arial 
color=#0000ff size=2></FONT></SPAN>&nbsp;</DIV>
<DIV dir=ltr align=left><SPAN class=166210422-29102006><FONT face=Arial 
color=#0000ff size=2>What I found most interesting though is that you're working 
on some commandline tools for FDO.&nbsp; That is something that is sorely 
needed.&nbsp; An&nbsp;fdo2fdo tool would be nice too.&nbsp; Does Mateusz know 
that you're working on this?&nbsp;&nbsp;He was looking&nbsp;for 
some&nbsp;schema-ized data to test the PostGIS provider against a couple days 
ago and I didn't have any.&nbsp; I'd also love to see the same kind of 
performance comparisons run against the PostGIS provider when it's available, 
and some profiling run against the code to see where most of the time is being 
spent (in fdo, network, or database).</FONT></SPAN></DIV>
<DIV dir=ltr align=left><SPAN class=166210422-29102006><FONT face=Arial 
color=#0000ff size=2></FONT></SPAN>&nbsp;</DIV>
<DIV dir=ltr align=left><SPAN class=166210422-29102006><FONT face=Arial 
color=#0000ff size=2>Jason</FONT></SPAN></DIV>
<DIV dir=ltr align=left><SPAN class=166210422-29102006>
<DIV dir=ltr align=left><SPAN class=166210422-29102006><FONT face=Arial 
color=#0000ff size=2></FONT></SPAN>&nbsp;</DIV>
<DIV dir=ltr align=left><SPAN class=166210422-29102006><FONT face=Arial 
color=#0000ff size=2>P.S. This kind of comparison might be OK if you are 
comparing the&nbsp;King provider's performance&nbsp;against the SDF provider's 
performance, but be careful about publishing performance tests for Oracle.&nbsp; 
Their corporate lawyers don't like this kind of thing at all.&nbsp; Apparently 
there's a clause in the EULA...</FONT></SPAN></DIV></SPAN></DIV><FONT face=Arial 
color=#0000ff size=2></FONT><FONT face=Arial color=#0000ff size=2></FONT><FONT 
face=Arial color=#0000ff size=2></FONT><BR>
<DIV class=OutlookMessageHeader lang=en-us dir=ltr align=left>
<HR tabIndex=-1>
<FONT face=Tahoma size=2><B>From:</B> Haris Kurtagic<BR><B>Sent:</B> Sunday, 
October 29, 2006 13:58<BR><B>To:</B> users@mapguide.osgeo.org<BR><B>Subject:</B> 
[mapguide-users] perfomance test<BR></FONT><BR></DIV>
<DIV></DIV>
<DIV><SPAN class=656421321-29102006><FONT face=Arial size=2>Test case 1: 
</FONT></SPAN><SPAN class=656421321-29102006><FONT face=Arial size=2>No geometry 
filter,&nbsp;Fetch all&nbsp;attributes&nbsp;</FONT></SPAN></DIV>
<DIV><SPAN class=656421321-29102006><FONT face=Arial 
size=2></FONT></SPAN>&nbsp;</DIV>
<DIV><SPAN class=656421321-29102006><FONT face=Arial 
size=2>SDF&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0.937 </FONT></SPAN></DIV>
<DIV><SPAN class=656421321-29102006>
<DIV><SPAN class=656421321-29102006><FONT face=Arial 
size=2>SHP&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 8.531 </FONT></SPAN></DIV>
<DIV><SPAN class=656421321-29102006><FONT face=Arial 
size=2>10GR2&nbsp;&nbsp;&nbsp; 18.172</FONT></SPAN></DIV>
<DIV><SPAN class=656421321-29102006><FONT face=Arial 
size=2>XE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
18.500</FONT></SPAN></DIV>
<DIV><SPAN class=656421321-29102006><SPAN class=656421321-29102006><SPAN 
class=656421321-29102006><SPAN class=656421321-29102006><FONT face=Arial 
size=2></FONT></SPAN>&nbsp;</DIV></SPAN></SPAN></SPAN></SPAN></DIV></BODY></HTML>