暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Oracle 获取一个sqltext的SQL id

askTom 2017-06-19
1836

问题描述

你好,汤姆和团队,

您能否提供以获取给定sql语句的sql id列表以及弹性时间和其他指标。一旦获得,我可以强制oracle使用性能更好的特定sql id吗?

问候,
曼朱纳斯

专家解答

您可以通过查询v $ SQL找到语句的sql ID:

select /* this */* from dual;
select /* that */* from dual;

select sql_id, sql_text from v$sql
where  ( sql_text like '%this%' or sql_text like '%that%' )
and    sql_text not like '%not this%';

SQL_ID        SQL_TEXT                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
------------- ----------------------------
gqrwquv0utrb7 select /* this */* from dual                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            
cd8h6juhw5wkk select /* that */* from dual
复制


此视图还包含一些度量,例如经过时间,cpu时间,缓冲区获取等。还有其他几个视图包含进一步的性能统计信息,例如v $ sqlstats。

SQL ID是语句文本的哈希。因此,对于给定的语句,只有一个ID。但是一个声明可以有两个或多个不同的计划。这些将具有不同的plan_hash_values。您可以鼓励/强制Oracle数据库将特定计划与SQL计划管理 (SPM) 一起使用。这使用SQL配置文件和基线等功能来执行此操作。

在以下位置阅读有关此的更多信息:

http://www.oracle.com/technetwork/database/bi-datawarehousing/twp-sql-plan-management-11gr2-133099.pdf
http://www.oracle.com/technetwork/database/bi-datawarehousing/twp-sql-plan-mgmt-12c-1963237.pdf
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论