View Issue Details
ID | Project | Category | View Status | Date Submitted | Last Update |
---|---|---|---|---|---|
0000686 | JEDI VCS | Server | public | 2003-02-13 13:06 | 2005-06-13 16:35 |
Reporter | dors | Assigned To | THuber | ||
Priority | none | Severity | tweak | Reproducibility | always |
Status | closed | Resolution | fixed | ||
Product Version | |||||
Target Version | Fixed in Version | 2.40 Stable (Server) | |||
Summary | 0000686: Tune GET_REVISION_LIST_BY_ID (for Oracle at least) | ||||
Description | I just found a strange way of tuning the GET_REVISION_LIST_BY_ID ServerObject in the SrvOBJModules unit. The original lines (line 5614 of the latest source available from freevcs.de) are as follows: SQL.Add('AND modules.moduleid = pjmodule.moduleid'); SQL.Add('AND revision.moduleid = modules.moduleid'); I turned them into: SQL.Add('AND modules.moduleid = :moduleid'); SQL.Add('AND revision.moduleid = :moduleid'); Normally, I'd expect that to show no difference, however, the response time for our Oracle version went down from over 60 secs to below 1 sec in our testcase! | ||||
Additional Information | Further investigation showed that the culprit is the left outer join; it looks like Oracle isn't optimizing here as much as it could do. Also, it looks like "AND modules.moduleid = :moduleid" is enough already. I don't suspect that this change would interfere with other DBMS's, so I will add this for all. If I'm not hearing anything against it, of course. | ||||
Tags | No tags attached. | ||||
Fix in JVCS version | |||||
Releasedocumentation | |||||
|
Comment for FB1.5b4: original SQL is slightly faster as the :moduleid. This was tested with the necessary sql92 change. From my POV I would like to stay with original sql as default and tune this only for the oracle port. |
|
change done only in oracle port, might also apply to other dbms which might be changed by server port maintainers. |