Viktorov Asked:2020-07-10 19:22:49 +0000 UTC2020-07-10 19:22:49 +0000 UTC 2020-07-10 19:22:49 +0000 UTC 如何找出特定会话的 Oracle 优化器 (optimizer_mode) 的操作模式? 772 我可以通过以下查询查看数据库的优化器操作模式: select valuer from v$parameter t where t.name = 'optimizer_mode' 现在如何查看特定会话的相同值? sql 2 个回答 Voted Best Answer MaxU - stop genocide of UA 2020-07-10T23:55:27Z2020-07-10T23:55:27Z V$SES_OPTIMIZER_ENV 视图是您所需要的。 V$SES_OPTIMIZER_ENV显示每个会话使用的优化器环境的内容。首次创建新会话时,它会自动从实例级别定义的优化器环境继承其优化器环境V$SYS_OPTIMIZER_ENV。某些参数的值可以通过发出ALTER SESSION语句来动态修改。 Viktorov 2020-07-10T19:55:01Z2020-07-10T19:55:01Z 您可以将会话与特定请求相关联,并且已经针对请求,查看计划是在什么模式下构建的: select s.sid ,t.OPTIMIZER_MODE from v$session s left join v$sql t on s.sql_id = t.SQL_ID; 缺陷: 必须在会话中提出请求。 可以使用提示控制计划构建模式。因此,对于会话,可以设置一种模式,但请求将建立在另一种模式中。
V$SES_OPTIMIZER_ENV 视图是您所需要的。
您可以将会话与特定请求相关联,并且已经针对请求,查看计划是在什么模式下构建的:
缺陷: