Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Database 我能';无法在prod数据库中获取Oracle执行计划_Database_Oracle_Sql Execution Plan - Fatal编程技术网

Database 我能';无法在prod数据库中获取Oracle执行计划

Database 我能';无法在prod数据库中获取Oracle执行计划,database,oracle,sql-execution-plan,Database,Oracle,Sql Execution Plan,我使用一个只读的单独帐户(没有DBA权限)连接到生产数据库,无法获取查询的执行计划。当我尝试时: explain plan for select * from my_table where id = 10; select plan_table_output from table(dbms_xplan.display('plan_table',null,'typical')); 我每次都会对不相关的查询有不同的计划。我猜每秒有太多的查询,以至于该计划立即被其他查询所取代 然后,我尝试添加一

我使用一个只读的单独帐户(没有DBA权限)连接到生产数据库,无法获取查询的执行计划。当我尝试时:

explain plan for
select * from my_table where id = 10;

select plan_table_output from
  table(dbms_xplan.display('plan_table',null,'typical'));
我每次都会对不相关的查询有不同的计划。我猜每秒有太多的查询,以至于该计划立即被其他查询所取代

然后,我尝试添加一个“语句ID”:

但我得到了一个错误:

错误:无法获取语句\u id“st1”的计划


在高度并发的数据库中检索执行计划的最简单和一致的方法是什么?

如何创建
plan\u表
?它应该是一个全局临时表。您是否以某种方式使用池连接<代码>解释计划不应该是普通应用程序代码的一部分,因此这两种方式都会令人惊讶。如果您想查看实际使用的执行计划,应该使用
dbms\u xplan。使用
sql\u id
显示光标<代码>解释计划
可以轻松misleading@AndrewSayer我不知道plan_表是如何创建的(这是AWS的Oracle,如果有用的话)。不幸的是,我只是一个凡人(没有特权),不能修改它。这是否意味着有多种方法可以创建此表?等等。。。表是在哪个模式中创建的?在我的只读用户帐户中,还是在主服务帐户中?我怎么知道?你是说sys?我不熟悉AWS是如何设置Oracle的,但基本原理应该与普通Oracle实例类似。
temporary
列对此有何说明?同时检查视图
all_synonyms
,对于计划表同义词,新版本上的新数据库为您创建一个(作为GTT)
explain plan set statement_id = 'st1' for
select * from my_table where id = 10;

select plan_table_output from
  table(dbms_xplan.display('plan_table','st1','typical'));