问题描述
在调用PL/SQL中的第三方代码之前,我想存储当前会话环境,然后检查更改了什么。目前我正在观察大约14个参数(例如,是否启用了并行度)。我可以通过V$SES_OPTIMZER_ENV完成这个操作。现在我的问题是,我怎样才能做到这一点更可靠。我遇到的问题是,设置为默认值的参数通常不会显示在相应的视图中(主要是对于_parameters ,如_bloom_过滤器_启用)。但是当我运行10053跟踪时,我得到了关于哪些参数在哪里设置,哪些参数没有设置,以及它们的默认值是什么的完美信息:
因此,我的问题是如何从PL/SQL中准确地检索这些信息?
************************************* PARAMETERS WITH DEFAULT VALUES ****************************** sort_area_size = 65536 sort_area_retained_size = 0 _sort_elimination_cost_ratio = 0 _optimizer_block_size = 16384 _sort_multiblock_read_count = 2
因此,我的问题是如何从PL/SQL中准确地检索这些信息?
专家解答
您可以查询v$parameter和/或v$spparameter ,可能会将其限制为设置了ISES_MODIFIED的参数。但即使这样也得不到下划线参数。
也许您可以考虑在ALTERSerial上启用审计,以至少在第三方程序中运行“更改会话”命令时捕获该命令。
但是,要准确地捕获所有这些信息将是很困难的-例如,单个SQL可以仅针对单个执行而使用OPT_PARM调整优化器参数。也许这对你来说不是问题。
也许您可以考虑在ALTERSerial上启用审计,以至少在第三方程序中运行“更改会话”命令时捕获该命令。
但是,要准确地捕获所有这些信息将是很困难的-例如,单个SQL可以仅针对单个执行而使用OPT_PARM调整优化器参数。也许这对你来说不是问题。
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




