Hi,
A colleague is running a query on both Solaris 9 and Windows XP. The Solaris box has two CPUs and 4 gigs of memory. The Windows box has one CPU and 1 gig. When the query runs on Solaris, it takes 60-70 seconds to execute and uses almost an entire CPU; on the Windows machine, only 4 seconds.
The query is in XML and is a join. I thought that by writing an inline view, the performance would increase, but this is not the case. In fact, it has slowed down.
Any suggestions as to how I can help improve performance? I am including both the original join as well as the inline view.
Thanks,
Jeff
original join
select extractValue(value(e), '/ems-info/managed-element/@name'),
extractValue(value(e), '/ems-info/managed-element/@resync-ts'),
extractValue(value(s), '/equipment/@name'),
extractValue(value(s), '/equipment/installed-equipment-object-type'),
extractValue(value(s), '/equipment/installed-version'),
extractValue(value(s), '/equipment/installed-serial-number'),
extractValue(value(s), '/equipment/corba-name/name-element[@name="EquipmentHolder"]/@value'),
extractValue(value(s), '/equipment/installed-part-number')
from "emsinfo" e,
EQUIPMENT s
where
existsNode(value(s), '/equipment[installed-part-number = "130-0290-910"]') = 1
AND
existsNode(value(e), '/ems-info/managed-element/corba-name/name-element[@value="CIENA/LightWorks_ON-Center"]') = 1
AND
regexp_like(extractValue(value(e), '/ems-info/managed-element/@name'), '^...W|w.*')
AND
extractValue(value(s), '/equipment/corba-name/name-element[@name="ManagedElement"]/@value') = extractValue(value(e), '/ems-info/managed-element/corba-name/name-element[@name="ManagedElement"]/@value')
inline view
select
e.me,
e.ts,
extractValue(value(s), '/equipment/@name'),
extractValue(value(s), '/equipment/installed-equipment-object-type'),
extractValue(value(s), '/equipment/installed-version'),
extractValue(value(s), '/equipment/installed-serial-number'),
extractValue(value(s), '/equipment/corba-name/name-element[@name="EquipmentHolder"]/@value'),
extractValue(value(s), '/equipment/installed-part-number')
from EQUIPMENT s,
(select extractValue(object_value, '/ems-info/managed-element/corba-name/name-element[@name="ManagedElement"]/@value') me,
extractValue(object_value, '/ems-info/managed-element/@resync-ts') ts from "emsinfo") e
where
existsNode(value(s), '/equipment[installed-part-number = "130-0290-910"]') = 1
AND
existsNode(value(s), '/equipment/corba-name/name-element[@value="CIENA/LightWorks_ON-Center"]') = 1
AND
regexp_like(e.me, '^...W|w.*')
AND
extractValue(value(s), '/equipment/corba-name/name-element[@name="ManagedElement"]/@value') = e.me
[Updated on: Mon, 19 December 2005 11:46]
Report message to a moderator