执行计划
文章平均质量分 73
Hehuyi_In
这个作者很懒,什么都没留下…
展开
-
各类数据库 如何不输出执行结果只显示执行时间 / 执行计划
进行sql优化时有些sql输出巨长,一执行疯狂刷屏。这里列一个小汇总,记录各类数据库如何不输出执行结果只显示执行时间 / 执行计划。Oracleset autotrace traceset timing on-- 恢复输出set autottrace offSqlServer其实SqlServer基本没有这个需求,SqlServer主要都是用图形化的工具-...原创 2020-04-07 01:06:03 · 2913 阅读 · 1 评论 -
postgresql 格式化查询树为图片 —— pgNodeGraph 与 pg_node2graph
postgresql 中提供了一些debug参数,将SQL的查询树和执行计划树打印在错误日志中,并提供了简单的格式化(缩进),但实际上依旧是非常难分析的。其中 pg_node2graph 是执行脚本,nodes目录存放待分析文件,images存放格式化后的图片。pg_node2graph工具是在pgNodeGraph的基础上做了些加强,这里我们以它进行测试。github中的文档没有写,但是如果不按以下处理执行时会报错。我们看一个例子,查询树的默认输出是什么样的。已经很复杂,肉眼难以直接分析。......原创 2022-08-28 23:28:13 · 2004 阅读 · 1 评论 -
Oracle授权普通用户查看执行计划
利用不同的方法查看执行计划有对应不同的授权方法。一、explain plan与dbms_xplan.display最常用的方法,plsqldev的F5对应也是这个。这个命令会产生执行计划,并把执行计划保存到"PLAN_TABLE"中,查看执行计划使用 select * from table(dbms_xplan.display);启用方法(9i需手动启用):--创建PLAN_T...原创 2020-04-28 00:59:47 · 2762 阅读 · 1 评论 -
Oracle 使用coe_xfr_sql_profile.sql迁移执行计划
前面Oracle 如何不改变SQL为其绑定构造的执行计划介绍了不改变sql语句而替换其执行计划的方法,但有一个问题是里面的方法都需要执行计划和目标sql在库中cache或AWR中存在,否则无法使用。一、 问题背景来看这样一个场景,有一个sql在测试环境执行很快,但在生产环境中执行很慢并且没有过好的执行计划。另外该sql特别复杂,难以通过简单分析判断出通过加哪些hint能生成出快的执行计划。能否把测试环境中快的执行计划迁移到生产环境中给问题sql绑定?二、 解决方法coe_...原创 2020-05-16 12:38:37 · 3247 阅读 · 1 评论 -
Oracle 如何不改变SQL为其绑定构造的执行计划
前面几篇文章介绍的方法只能在sql本身有过好执行计划的时候将其固定,如果sql从未有过好的执行计划,需要添加hint但又无法修改sql代码时,之前的方法就不大合适,需要使用新的方法。一、 问题背景遇到过的一个案例就十分符合这种情况。11.2的数据库A中发现一个慢sql,执行超过4万秒。查询program得知是开发用的datagrip工具自动执行的语句,无法关闭也无法修改该sql,实际对业务功能没一点作用,对DB压力还特别大。select O.owner as synonym_schema.原创 2020-05-16 12:06:27 · 1854 阅读 · 0 评论 -
SQL Server、Oracle 如何清除指定SQL的执行计划
SQL Server、Oracle 如何清除指定SQL的执行计划原创 2020-05-03 13:31:04 · 4124 阅读 · 1 评论 -
oracle 为sql寻找更好的执行计划并绑定
这种方法只适合sql本身有更好的执行计划,不能绑定自己构造的执行计划(比如加hint)找到慢sql的sql_id查看某条sql各种执行计划信息由sql_id来找,可用v$active_session_history,不过dba_hist_active_sess_history可找的时间范围较长select SQL_PLAN_HASH_VALUE,round(avg(...原创 2019-04-24 15:39:03 · 3349 阅读 · 0 评论 -
postgresql -- 执行计划
一、 显示执行计划pg中explain命令格式如下explain [options] sql语句例如explain select * from test;explain (format xml) select * from test;explain (analyze true,buffers true) select * from test;options可选项如下:A...原创 2019-11-10 22:31:26 · 4696 阅读 · 1 评论 -
SqlServer & Oracle 查询执行计划中有隐式转换的sql
查看执行计划中含有隐式转换的sql(在对应数据库执行)注意以下sql都较复杂,在数据库中执行时间可能较长-- 查询有隐式转换的语句,转换字段源及目标类型DECLARE @dbname SYSNAME SET @dbname = QUOTENAME(DB_NAME()); WITH XMLNAMESPACES(DEFAULT 'http://schemas.microsoft....原创 2020-03-30 22:52:52 · 1825 阅读 · 0 评论 -
sqlserver plan guide 固定执行计划
利用两个存储过程,一个是sp_create_plan_guide_from_handle,一个是sp_create_plan_guide。前者利用sql_handle,更加方便;后者需要填入完整sql语句,在语句复杂时比较麻烦。一、sp_create_plan_guide_from_handle语法如下:sp_create_plan_guide_from_handle [ @...原创 2019-05-21 11:48:25 · 2298 阅读 · 0 评论