SQLTXPLAIN和AWR仓库 - 第二部分

我终于有一点时间来看待我的“hacked”SQLT Xprect / XTract运行,看看我所做的更改是否足以与AWR仓库正确运行。

答案是肯定的,没有… and maybe “it depends”… 🙂

结果

来自AWR仓库的数据从AWR存储库中的正确源数据库中提取相应的SQL_ID的相应数据,但环境信息仍然不正确,因为我没有’T在SQLT $ A包中的get_database_id函数之外更新任何内容,并按照我之前记录的那样调用它的可执行文件 博客帖子.

我的假设需要更新附加功能的第一个指示符在主HTML页面中的环境值时,验证了作为任何SQLT运行中的输出所提供的ZIP文件中的主入口点:

SQL.t8

 

SQL_ID违反了SH数据库,但它显示了AWR仓库,Â显示的信息不正确。问题是它从本地视图中填充数据库名称,dbid和shortName(V $ Instance,V $ Database等)…)

CBO环境和系统统计也是错误的,因为它从数据库中提取此信息,这只是AWR存储库数据,而不是数据库数据所在的数据库:

SQL.t10

 

是的,统计和初始化参数目前无法从DBA_HIST表中拉动,这意味着我们在主HTML页面上的大多数更高级别的信息具有错误的数据。

在哪里’s Right

我在哪里进行了更改,这是最小的与所需的内容,它是它正确显示的地方。 Â游标共享,SQL信息以及SQL_ID数据都是正确的对手的语句。

SQL.t11

BIND PEEK INFO是正确的

SQL.t12

您可以快速地查看数据从DBA_HIST_SQL_PLAN表中删除和自我’m将正确的SQL_ID和DBID按到查询,它会响应正确的信息返回。

当任何查询GV $ SQL_PLAN时,我会显示任何显示DBA_HIST_SQL_PLAN和不同故障的源。 Â这应该是预期的 - AWR仓库只能在DBA_HIST对象中容纳此SQL_ID的SH数据库信息。 ÂGV$对象aren’T即可了解关于SH源数据库信息的任何内容。

成功率

那我有多成功? Â约30%… 🙂

如果从自动工作负载存储库中源,(WRH $,WRI $和WRM $对象,则成功,包括填充作为SQLT运行的一部分的r_rows对象,包括从自动工作负载存储库中取得成功gv $或v $对象。我还必须确保他们有适当的DBID调用,以及SQL_ID。 Â如果没有此添加的元素,也会发生故障。

改变的建议

需要使转型到AWR仓库合规性的其他更改包括:

在安装时,不仅要调整包的附加选项,还添加了“A”适用于AWR仓库。 Â如果选择此选项,则会部署第二个版本的SQLT $ A包,以及Xprect和XTract SQL语句的可执行文件。

SQLT. $包将需要更新以下功能:

  1. get_database_id.
  2. get_database_name.
  3. get_sid.
  4. get_instance_number.
  5. get_instance_name.
  6. get_host_name.
  7. get_host_name._short.

然后,Xprect和XTract将需要另外的参数添加 - Âdbname。

所以而不是:

>START /u01/home/sqlt/run/sqltxprext.sql aycb49d3343xq <sqlt password>

这将是:

>START /u01/home/oraha/kellyn/sqlt/run/sqltxprext.sql aycb49d3343xq  <dbname> <sqltpassword>

卡洛斯和莫罗很棒,介绍了我亚伯,所以我’请将其传递给他,所以穿过你的手指,让我们看看我们是否可以使用AWR仓库获得这个有价值的工具….and soon! 🙂

 

 

dbakevlar.

http://about.me/dbakevlar