我试图在DB2中优化这个查询。选择url关键字的内部查询将查询时间从15秒到大约10分钟。我已经找到了这个问题,这似乎是因为比较'where tracked = c.catentry_id‘是比较varchar字段(’ve关键字)和bigint字段。如果我修改它以将varachar与字符串值进行比较,它就会变得更快。我的问题是:
从bigint到varchar转换c.catentry_id的语法是什么?(我想如果我能做到这一点,它就能解决它)
select
xmlelement(NAME "Products",xmlagg(xmlrow(c.field5 as "ExternalId",
cd.name as "Name",
cg.identifier as "CategoryExternalId",
concat('@bv.base.image.url@', cd.thumbnail) as "ImageUrl",
(select urlkeyword from seourl s
inner join seourlkeyword sk
on s.seourl_id = sk.seourl_id
where urlkeyword = c.catentry_id
) as "ProductPageUrl",
mfpartnumber as "ManufacturerPartNumber",
cd.shortdescription as "Description",
c.field1 as "BrandExternalId" option row "Product"))) as xml_document
from catentry c
inner join catentdesc cd
on c.catentry_id = cd.catentry_id and cd.language_id = -1
inner join catgpenrel cgp
on c.catentry_id = cgp.catentry_id
inner join catgroup cg
on cg.catgroup_id = cgp.catgroup_id
where cgp.catalog_id in
(select catalog_id from catalog where identifier = 'Web_OW Default Web')发布于 2014-01-23 08:04:52
你可以试试这个
where urlkeyword = CAST(c.catentry_id AS VARCHAR(n))显然,您需要在you关键字字段的长度中替换n。
但是,我认为这个问题涉及到索引正确的表。
希望这能帮到你。
https://stackoverflow.com/questions/21296948
复制相似问题