首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >EXTRACTVALUE - XMLType查询延迟

EXTRACTVALUE - XMLType查询延迟
EN

Stack Overflow用户
提问于 2012-12-20 19:58:45
回答 1查看 2.7K关注 0票数 1

我有两个带有相同解释的查询:

代码语言:javascript
复制
1) select * from cfm_t_dmp;

2) SELECT CATEGORY_ID,
   STATUS,
   USERNAME,
   VALID_FROM,
   EXTRACTVALUE (
      XMLType (data_definition),
      '/customer/type/permissions/text()'),
   EXTRACTVALUE (
      XMLType (data_definition),
      '/bundle/configuration/permissions/text()'),
   AB_LOCK
FROM cfm_t_dmp

查询1)执行得非常快,查询2)几分钟后我看不到结果。

主要的区别是提取值,我之前执行了查询2),它很快。

我可以以任何方式调优查询吗?或者这是一个数据库问题?

谢谢,

EN

回答 1

Stack Overflow用户

发布于 2012-12-20 23:43:03

您的第二个查询比较慢,因为Oracle必须在这些XPaths上搜索您的XML类型。如果您有大量的数据,或者如果XML内容很大,那么这将是大量的额外工作,并且会减慢查询速度。

为了加快速度:如果XPaths不会更改,并且XML数据也不会更改,那么可以添加一个包含EXTRACTVALUE表达式结果的额外列。查询这些数据会更快,因为您的查询不需要调用EXTRACTVALUE (因为它只会读取新列中的数据),但这需要您在插入或更新时预先填充它。

显然,在Oracle中对XML数据进行索引也是可能的,尽管我自己从未尝试过:http://docs.oracle.com/cd/B28359_01/appdev.111/b28369/xdb_indexing.htm尽管您并没有对这些xpath上的值测试条件,因此我不确定索引在这里是否有帮助。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13971718

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档