你的浏览器禁用了JavaScript, 请开启后刷新浏览器获得更好的体验!
输入关键字进行搜索
搜索:
如题
没有找到相关结果
nccloud
Q1:
SQLMonitor,这工具需要付费不??
回答:属于OracleTuningPack.可能需要OracleTuningPack的license.
这工具现在用的是哪个版本
回答:19c
Q2
软件版本需要跟oracle库的版本保持一致吗?是不是向低版本db兼容
回答:不需保持一致,向下兼容。如果您问的SQLMonitor的话,它是OracleDB的内置架
构,不是单独出来的。你可以用不同的工具去查看SQLMonitor报告。
Q3
用sql_monitor事件在搞并发负载大大环境中消耗大不大
回答:高并发建议不要用sql_monitor事件。
Q4
这个oem里监控的sql也是sqlmonitor监控的吗?一样条件是自动触发的吧
回答:一样的。只是查看工具不一样而已。
SQLDeveloper是免费的,功能强大的数据库开发和管理工具。Real-timeSQLandPL/SQL
Monitoring属于OracleTuningPack
Q5:
我有一个SQL,装在一个存储过程中,存储过程带两个参数,该存储过程里由JOB调用,每
隔一段时间去执行,问题点在于该存储过程里面的语句有时候能够很快跑完,有时候产生大
量的临时数据,侵占临时段,这个SQL的条件里有条件是存储过程的入参传进来的,因此
每次实际执行的时候,参数值是不一样的,正常执行和执行慢的时候我已经monitor出来了,
执行计划天壤之别,所以我想把这个正常的执行计划固定起来,想问下老师,该如何把这个
带有变量的语句的执行计划通过SPM固定起来
回答:找出SQLID和PlanHashValue,加到SQLplanbaseline里,然后把它设置为fix的
plan就可以了。这样,以后每次运行都会跑fix的plan.
但是,你的这个问题,需要看一下,是不是不同的传入值,返回实际行数差距会很大,也就
是说失败的SQL,是否真的就是因为返回行数巨大而失败的,如果是这样的话,需要看一看
业务逻辑,是否设计合里。可以看看失败的SQL的SQLmonitor报告到底有什么区别,特
别是预估值。
Q6:
新执行计划evolve,是根据sql执行时的环境(如白天),还是evolvejob执行的环境(如晚
上),不同时段db环境可能差别较大,是否会影响验证结果?
回答:是根据evolve时的环境,因为evolve其实是优化器去做,优化器会用当时的环境。
Q7:
如果是从AIX小机11.2.0.4迁移到x86的11.2.0.4,执行计划是否会有部分发生变化
回答:有可能会变。可以用SPA(SQLPerformanceAnalyzer)去验证是否有执行计划变化,
性能是否降级。
Q8:
请教:sql计划在演进阶段,如果验证时数据已经发生变化,那么验证时这个执行计划是可
接受的,实际执行时是不可接受的,如何防止这种现象呢?
回答:要结合自已的业务场景。如果数据变化就是很频繁且量变化大,不要用planbaseline,
让优化器自已选计划。
Q9:
JOB调用的存储过程,在JOB启动后修改了存储过程的脚本,JOB是否需要重新启动
回答:应该是不用。
Q10:
SPM自动capture是否建议只在db升级测试时使用,如果生产环境开启,是否可能造成大
量sql执行被捕获,从而增加了执行计划频繁变更的风险?
回答:自动capture一般不在生产开启。它只是捕获plan到baseline的一种方法,建议手
动捕获。
Q11:
如何看执行计划好或不好
回答:主要看成本,看看是否用了最好的方法取得数据。执行计划之间的比较可以交给优化
器,我们可以用SPM手动比较,然后看生成的报告。
Q12:
本讲的PPT和相关sql能共享么
回答:能,请关注群里信息,会统一分享。
Q13:
sql_handler和sql_hash_value有什么区别?
回答:SQL_HANDLE是在SPM里用来唯一标识一条SQL.SQLhashvalue是沿用9i的风格
用address+hash_value唯一定位一条SQL.总之,都是用来标识SQL的,关联的时候对应
好就行了。
Q14:
老师您好,我重建一张表后,发现之前一个update语句不走索引了,后来发现多了一个sql
baseline,我删除baseline以后正常走索引列,请问它是自动生成的吗,为什么生成的不走
索引,是不是建表以后和建索引之前建的baseline,这种情况一般如何处理?谢谢老师
回答:可以用我脚本里的方法,去看xplan的note部分,如果用的baseline里的计划,在
note部分里有说明。你可以跟据自已的情况分析一下。
Q15:
SPM演示的太快了,脚本没有加注释,不清楚每条SQL的作用,后期分享时能加点注释吗?
谢谢老师了!
回答:可以的。
Q16:
隔离的时候会有一些什么信息吗
回答:如果执行的SQL被隔离了,那么会返回错误提示该SQL被隔离了。
Q17:
以后还有sql优化的课程吗?感觉很好
回答:大家有需求应该就会有。请持续关注我们的群和公众号哦亲~
Q18:
数据库执行计划分为评估执行计划和真实执行计划,既然评估执行计划不准,为什么oracle
还要评估执行计划?评估执行计划主要目的是什么,是真实执行计划无法替代的?
回答:因为SQL解析的本身也耗资源,优化器会快速找一个执行计划。
Q19:
为什么有了评估执行计划,oracle不参考评估执行计划来执行,是什么导致oracle不按照评
估执行计划来执行,而是生成自己的真实执行计划来执行
回答:优化器的自适应功能,可能会在执行的时候智能的改变执行计划。
sqlprofile和spm那个更推荐
回答:sqlprofile是对过去出现的不好执行计划做修正。SPM是预防在将来不好执行计划影
响性能。可以用SQLtuningadvisor来建议你使用什么策略。
刚才因为加了索引,执行SQL时生成新的执行计划,那么这次SQL的执行用的是sqlbaseline
中已有的执行计划,还是新生成的执行计划?
回答:加了索引,会生成新的执行计划,但实际执行的时候还是用的sqlbaseline中已有的
执行计划。如果新的执行计划通过了验证,那么在后面可能也会被用到。优化器会从sqlplan
baseline中选一个成本最低的计划。
请问一下,11.2.0.4LINUXRAC数据库,里面有一条sql消耗资源太大,想把它限制或者执
行,有什么办法呢?或者禁止执行,有没有类似sql黑名单的办法?
回答:可以用ResourceManager.可以选择终止这条SQL,或把它降到优先级低的组里去。
Q20:
请问老师哪些情况下会导致一条SQl执行计划变动,一下好,一下坏??
回答:数据量的变化,绑定值的不同,参数的变动等可能都会发生SQl执行计划变动。具体
问题,可以通过SQLmonitor监控一下,看看好时和坏时的区别在什么地方。也可以查
dba_hist_sqlstat去看看不同时间段的SQL执行计划变动情况。
既然数据库会自动把SQL计划加入基线,那么什么情况下需要手动加入尼。?
回答:数据库只会自动去分析TOPSQL.手动加入用在你已知有更优的执行计划,且那些不
好的执行计划影响了性能的时候。具体使用场景可以看看后面分享出来的片子。
Q21:
如何追踪执行计划突变的根本原因
回答:对比SQLMonitor报告,参考最近的变更分析。执行计划突变并非坏事,只要SQL性
能没变差就没关系。另外,数据库升级后(包括打RU),部分SQL执行计划也会变。
Q22:
演进必须是手动的吗?
回答:在每晚的运维窗口会自动演进。
Q23:
有新的执行计划,演进能自动吗?
Q24:
sql表的关联顺序对执行会有很大影响吗?
回答:理论上是没有,优化器会自动判断先去哪个表取数据。
Q25:
是什么导致oracle的评估执行计划和真实执行计划不一致的?
回答:预估的基数和实际的会不一样。只要差不太多就没问题。预估的基数主要来自统计信
息,如果数据倾斜严重,预估的可能也不准。另外,优化器的自适应功能也会在实际执行过
程中改变执行计划。
要回复问题请先登录或注册
1 个回复
nccloud
Q1:
SQLMonitor,这工具需要付费不??
回答:属于OracleTuningPack.可能需要OracleTuningPack的license.
这工具现在用的是哪个版本
回答:19c
Q2
软件版本需要跟oracle库的版本保持一致吗?是不是向低版本db兼容
回答:不需保持一致,向下兼容。如果您问的SQLMonitor的话,它是OracleDB的内置架
构,不是单独出来的。你可以用不同的工具去查看SQLMonitor报告。
Q3
用sql_monitor事件在搞并发负载大大环境中消耗大不大
回答:高并发建议不要用sql_monitor事件。
Q4
这个oem里监控的sql也是sqlmonitor监控的吗?一样条件是自动触发的吧
回答:一样的。只是查看工具不一样而已。
SQLDeveloper是免费的,功能强大的数据库开发和管理工具。Real-timeSQLandPL/SQL
Monitoring属于OracleTuningPack
Q5:
我有一个SQL,装在一个存储过程中,存储过程带两个参数,该存储过程里由JOB调用,每
隔一段时间去执行,问题点在于该存储过程里面的语句有时候能够很快跑完,有时候产生大
量的临时数据,侵占临时段,这个SQL的条件里有条件是存储过程的入参传进来的,因此
每次实际执行的时候,参数值是不一样的,正常执行和执行慢的时候我已经monitor出来了,
执行计划天壤之别,所以我想把这个正常的执行计划固定起来,想问下老师,该如何把这个
带有变量的语句的执行计划通过SPM固定起来
回答:找出SQLID和PlanHashValue,加到SQLplanbaseline里,然后把它设置为fix的
plan就可以了。这样,以后每次运行都会跑fix的plan.
但是,你的这个问题,需要看一下,是不是不同的传入值,返回实际行数差距会很大,也就
是说失败的SQL,是否真的就是因为返回行数巨大而失败的,如果是这样的话,需要看一看
业务逻辑,是否设计合里。可以看看失败的SQL的SQLmonitor报告到底有什么区别,特
别是预估值。
Q6:
新执行计划evolve,是根据sql执行时的环境(如白天),还是evolvejob执行的环境(如晚
上),不同时段db环境可能差别较大,是否会影响验证结果?
回答:是根据evolve时的环境,因为evolve其实是优化器去做,优化器会用当时的环境。
Q7:
如果是从AIX小机11.2.0.4迁移到x86的11.2.0.4,执行计划是否会有部分发生变化
回答:有可能会变。可以用SPA(SQLPerformanceAnalyzer)去验证是否有执行计划变化,
性能是否降级。
Q8:
请教:sql计划在演进阶段,如果验证时数据已经发生变化,那么验证时这个执行计划是可
接受的,实际执行时是不可接受的,如何防止这种现象呢?
回答:要结合自已的业务场景。如果数据变化就是很频繁且量变化大,不要用planbaseline,
让优化器自已选计划。
Q9:
JOB调用的存储过程,在JOB启动后修改了存储过程的脚本,JOB是否需要重新启动
回答:应该是不用。
Q10:
SPM自动capture是否建议只在db升级测试时使用,如果生产环境开启,是否可能造成大
量sql执行被捕获,从而增加了执行计划频繁变更的风险?
回答:自动capture一般不在生产开启。它只是捕获plan到baseline的一种方法,建议手
动捕获。
Q11:
如何看执行计划好或不好
回答:主要看成本,看看是否用了最好的方法取得数据。执行计划之间的比较可以交给优化
器,我们可以用SPM手动比较,然后看生成的报告。
Q12:
本讲的PPT和相关sql能共享么
回答:能,请关注群里信息,会统一分享。
Q13:
sql_handler和sql_hash_value有什么区别?
回答:SQL_HANDLE是在SPM里用来唯一标识一条SQL.SQLhashvalue是沿用9i的风格
用address+hash_value唯一定位一条SQL.总之,都是用来标识SQL的,关联的时候对应
好就行了。
Q14:
老师您好,我重建一张表后,发现之前一个update语句不走索引了,后来发现多了一个sql
baseline,我删除baseline以后正常走索引列,请问它是自动生成的吗,为什么生成的不走
索引,是不是建表以后和建索引之前建的baseline,这种情况一般如何处理?谢谢老师
回答:可以用我脚本里的方法,去看xplan的note部分,如果用的baseline里的计划,在
note部分里有说明。你可以跟据自已的情况分析一下。
Q15:
SPM演示的太快了,脚本没有加注释,不清楚每条SQL的作用,后期分享时能加点注释吗?
谢谢老师了!
回答:可以的。
Q16:
隔离的时候会有一些什么信息吗
回答:如果执行的SQL被隔离了,那么会返回错误提示该SQL被隔离了。
Q17:
以后还有sql优化的课程吗?感觉很好
回答:大家有需求应该就会有。请持续关注我们的群和公众号哦亲~
Q18:
数据库执行计划分为评估执行计划和真实执行计划,既然评估执行计划不准,为什么oracle
还要评估执行计划?评估执行计划主要目的是什么,是真实执行计划无法替代的?
回答:因为SQL解析的本身也耗资源,优化器会快速找一个执行计划。
Q19:
为什么有了评估执行计划,oracle不参考评估执行计划来执行,是什么导致oracle不按照评
估执行计划来执行,而是生成自己的真实执行计划来执行
回答:优化器的自适应功能,可能会在执行的时候智能的改变执行计划。
Q19:
sqlprofile和spm那个更推荐
回答:sqlprofile是对过去出现的不好执行计划做修正。SPM是预防在将来不好执行计划影
响性能。可以用SQLtuningadvisor来建议你使用什么策略。
Q19:
刚才因为加了索引,执行SQL时生成新的执行计划,那么这次SQL的执行用的是sqlbaseline
中已有的执行计划,还是新生成的执行计划?
回答:加了索引,会生成新的执行计划,但实际执行的时候还是用的sqlbaseline中已有的
执行计划。如果新的执行计划通过了验证,那么在后面可能也会被用到。优化器会从sqlplan
baseline中选一个成本最低的计划。
Q19:
请问一下,11.2.0.4LINUXRAC数据库,里面有一条sql消耗资源太大,想把它限制或者执
行,有什么办法呢?或者禁止执行,有没有类似sql黑名单的办法?
回答:可以用ResourceManager.可以选择终止这条SQL,或把它降到优先级低的组里去。
Q20:
请问老师哪些情况下会导致一条SQl执行计划变动,一下好,一下坏??
回答:数据量的变化,绑定值的不同,参数的变动等可能都会发生SQl执行计划变动。具体
问题,可以通过SQLmonitor监控一下,看看好时和坏时的区别在什么地方。也可以查
dba_hist_sqlstat去看看不同时间段的SQL执行计划变动情况。
Q20:
既然数据库会自动把SQL计划加入基线,那么什么情况下需要手动加入尼。?
回答:数据库只会自动去分析TOPSQL.手动加入用在你已知有更优的执行计划,且那些不
好的执行计划影响了性能的时候。具体使用场景可以看看后面分享出来的片子。
Q21:
如何追踪执行计划突变的根本原因
回答:对比SQLMonitor报告,参考最近的变更分析。执行计划突变并非坏事,只要SQL性
能没变差就没关系。另外,数据库升级后(包括打RU),部分SQL执行计划也会变。
Q22:
演进必须是手动的吗?
回答:在每晚的运维窗口会自动演进。
Q23:
有新的执行计划,演进能自动吗?
回答:在每晚的运维窗口会自动演进。
Q24:
sql表的关联顺序对执行会有很大影响吗?
回答:理论上是没有,优化器会自动判断先去哪个表取数据。
Q25:
是什么导致oracle的评估执行计划和真实执行计划不一致的?
回答:预估的基数和实际的会不一样。只要差不太多就没问题。预估的基数主要来自统计信
息,如果数据倾斜严重,预估的可能也不准。另外,优化器的自适应功能也会在实际执行过
程中改变执行计划。