[20170904]11Gr2 查询光标为什么不共享脚本

[20170904]11Gr2 查询光标为什么不共享脚本.txt

--//参考链接下面的注解脚本:
https://carlos-sierra.net/2017/09/01/poors-man-script-to-summarize-reasons-why-cursors-are-not-shared/

--//做一个记录.

SCOTT@book> @ &r/ver1
PORT_STRING                    VERSION        BANNER
------------------------------ -------------- --------------------------------------------------------------------------------
x86_64/Linux 2.4.xx            11.2.0.4.0     Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production

/* Formatted on 2017/9/4 9:54:31 (QP5 v5.252.13127.32867) */
  SELECT    'select reason_not_shared, count(*) cursors, count(distinct sql_id) sql_ids
from v$sql_shared_cursor
unpivot(val for reason_not_shared in(
'
         || LISTAGG
            (
                  '  '
               || LISTAGG (column_name, ',') WITHIN GROUP (ORDER BY column_id)
              ,',
'
            )
            WITHIN GROUP (ORDER BY line_no)
         || '
))
where val = ''Y''
group by reason_not_shared
order by 2 desc, 3, 1;'
            sql_text
    FROM (SELECT column_name
                ,column_id
                ,CEIL (ROW_NUMBER () OVER (ORDER BY column_id) / 4) line_no
            FROM dba_tab_columns
           WHERE     owner = 'SYS'
                 AND table_name = 'V_$SQL_SHARED_CURSOR'
                 AND data_length = 1)
GROUP BY line_no;

--//生成的脚本如下:
select reason_not_shared, count(*) cursors, count(distinct sql_id) sql_ids
from v$sql_shared_cursor
unpivot(val for reason_not_shared in(
  UNBOUND_CURSOR,SQL_TYPE_MISMATCH,OPTIMIZER_MISMATCH,OUTLINE_MISMATCH,
  STATS_ROW_MISMATCH,LITERAL_MISMATCH,FORCE_HARD_PARSE,EXPLAIN_PLAN_CURSOR,
  BUFFERED_DML_MISMATCH,PDML_ENV_MISMATCH,INST_DRTLD_MISMATCH,SLAVE_QC_MISMATCH,
  TYPECHECK_MISMATCH,AUTH_CHECK_MISMATCH,BIND_MISMATCH,DESCRIBE_MISMATCH,
  LANGUAGE_MISMATCH,TRANSLATION_MISMATCH,BIND_EQUIV_FAILURE,INSUFF_PRIVS,
  INSUFF_PRIVS_REM,REMOTE_TRANS_MISMATCH,LOGMINER_SESSION_MISMATCH,INCOMP_LTRL_MISMATCH,
  OVERLAP_TIME_MISMATCH,EDITION_MISMATCH,MV_QUERY_GEN_MISMATCH,USER_BIND_PEEK_MISMATCH,
  TYPCHK_DEP_MISMATCH,NO_TRIGGER_MISMATCH,FLASHBACK_CURSOR,ANYDATA_TRANSFORMATION,
  PDDL_ENV_MISMATCH,TOP_LEVEL_RPI_CURSOR,DIFFERENT_LONG_LENGTH,LOGICAL_STANDBY_APPLY,
  DIFF_CALL_DURN,BIND_UACS_DIFF,PLSQL_CMP_SWITCHS_DIFF,CURSOR_PARTS_MISMATCH,
  STB_OBJECT_MISMATCH,CROSSEDITION_TRIGGER_MISMATCH,PQ_SLAVE_MISMATCH,TOP_LEVEL_DDL_MISMATCH,
  MULTI_PX_MISMATCH,BIND_PEEKED_PQ_MISMATCH,MV_REWRITE_MISMATCH,ROLL_INVALID_MISMATCH,
  OPTIMIZER_MODE_MISMATCH,PX_MISMATCH,MV_STALEOBJ_MISMATCH,FLASHBACK_TABLE_MISMATCH,
  LITREP_COMP_MISMATCH,PLSQL_DEBUG,LOAD_OPTIMIZER_STATS,ACL_MISMATCH,
  FLASHBACK_ARCHIVE_MISMATCH,LOCK_USER_SCHEMA_FAILED,REMOTE_MAPPING_MISMATCH,LOAD_RUNTIME_HEAP_FAILED,
  HASH_MATCH_FAILED,PURGED_CURSOR,BIND_LENGTH_UPGRADEABLE,USE_FEEDBACK_STATS
))
where val = 'Y'
group by reason_not_shared
order by 2 desc, 3, 1;

--//输出例子:
REASON_NOT_SHARED             CURSORS   SQL_IDS                              
--------------------------------------------------
LANGUAGE_MISMATCH             5928      3733                                 
USE_FEEDBACK_STATS            3923      3305                                 
BIND_LENGTH_UPGRADEABLE       1161      855                                  
BIND_MISMATCH                 376       352                                  
PURGED_CURSOR                 248       177                                  
BIND_EQUIV_FAILURE            207       150                                  
BIND_UACS_DIFF                120       120                                  
LOAD_OPTIMIZER_STATS          88        78                                   
USER_BIND_PEEK_MISMATCH       30        18                                   
OPTIMIZER_MISMATCH            26        13                                   
HASH_MATCH_FAILED             25        25                                   
AUTH_CHECK_MISMATCH           23        15                                   
OPTIMIZER_MODE_MISMATCH       18        14                                   
TRANSLATION_MISMATCH          16        11                                   
TOP_LEVEL_RPI_CURSOR          11        9                                    
INSUFF_PRIVS_REM              7         4                                    
INCOMP_LTRL_MISMATCH          4         4                                    
PLSQL_CMP_SWITCHS_DIFF        4         4                                    
INST_DRTLD_MISMATCH           3         3                                    
INSUFF_PRIVS                  2         2                                    
TOP_LEVEL_DDL_MISMATCH        2         2                                    
MULTI_PX_MISMATCH             1         1                                    
PQ_SLAVE_MISMATCH             1         1                                    
ROLL_INVALID_MISMATCH         1         1                                    

时间: 2024-07-30 10:53:50

[20170904]11Gr2 查询光标为什么不共享脚本的相关文章

使用查询分析器调整SQL服务器脚本

查询分析|服务器|脚本 我喜欢把SQL服务器所捆绑的工具看作是倒金字塔型的,诊断和检查一般问题的工具在顶端,寻找和诊断问题具体区域的工具在底部.除了提供一种编写SQL脚本的便捷方式之外,在你需要解决特定SQL脚本里明确问题的时候,查询分析器(Query Analyzer)还是所需要使用的资源.如果你需要指出哪个查询正在保持着某个特定表格的锁定状态,你也会希望使用查询分析器. 查询分析器的关键诊断特性是它能够显示某个查询的执行计划.这个执行计划会向你提供各种类型的有用信息,例如在查询的执行期间如何

查询数据库表的所有信息脚本

SELECT 表名=CASE WHEN C.column_id=1 THEN O.name ELSE N'' END, 表说明=ISNULL(CASE WHEN C.column_id=1 THEN PTB.[value] END,N''), 字段序号=C.column_id, 字段名=C.name, 主键=ISNULL(IDX.PrimaryKey,N''), 标识=CASE WHEN C.is_identity=1 THEN N'√'ELSE N'' END, 计算列=CASE WHEN C

SQL Server中将查询结果转换为Json格式脚本分享_MsSql

脚本源码: 复制代码 代码如下: SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO CREATE PROCEDURE[dbo].[SerializeJSON]( @ParameterSQL AS VARCHAR(MAX) ) AS BEGIN    DECLARE @SQL NVARCHAR(MAX) DECLARE @XMLString VARCHAR(MAX) DECLARE @XML XML DECLARE @Paramlist NVARCH

【DBA 脚本】查询current open cursor的脚本

show parameter session_cached_cursor drop view user_cursors; create view user_cursors as select ss.username||'('||se.sid||') ' user_process, sum(decode(name,'recursive calls',value)) "Recursive Calls", sum(decode(name,'opened cursors cumulative'

SQL Server中将查询结果转换为Json格式脚本分享

脚本源码: 复制代码 代码如下: SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO CREATE PROCEDURE[dbo].[SerializeJSON]( @ParameterSQL AS VARCHAR(MAX) ) AS BEGIN    DECLARE @SQL NVARCHAR(MAX) DECLARE @XMLString VARCHAR(MAX) DECLARE @XML XML DECLARE @Paramlist NVARCH

Python脚本实现12306火车票查询系统_python

最近我看到看到使用python实现火车票查询,我自己也实现了,感觉收获蛮多的,下面我就把每一步骤都详细给分享出来.(注意使用的是python3) 首先我将最终结果给展示出来: 在cmd命令行执行:python tickets.py -dk shanghai chengdu 20161007 > result.txt 意思是:查询 上海--成都 2016.10.07 的D和K开头的列车信息,并保存到 result.txt文件中:下面就是result.txt文件中的结果: 下面的将是实现步骤: 1.

测试Web应用程序是否存在跨站点脚本漏洞

到目前为止,对于跨站点脚本攻击具有很大的威胁这一点大家并无异议.如果您很精通 XSS 并且只想看看有什么好的测试方法可供借鉴,那么请直接跳到本文的测试部分.如果您对此一无所知,请按顺序认真阅读!如果某个怀有恶意的人(攻击者)可以强迫某个不知情的用户(受害者)运行攻击者选择的客户端脚本,那么便会发生跨站点脚本攻击."跨站点脚本"这个词应该属于用词不当的情况,因为它不仅与脚本有关,而且它甚至不一定是跨站点的.所以,它就是一个在发现这种攻击时起的一个名字,并且一直沿用至今.从现在开始,我们将

SQL Server 开发之 复制表数据的SQL脚本生成器

server|脚本|数据 使用SQL Server 2000自带的"生成SQL脚本"工具,可以生成创建表.视图.存储过程等的SQL脚本.那么,能否将表中的数据也生成为SQL脚本,在查询分析器中执行这些脚本后自动将数据导入到SQL Server中呢?答案是肯定的.下面的存储过程是一位高人写的,这位高人的姓氏已无人知晓,但SQL Server社区中偶尔还可看到此不朽之作.CREATE PROCEDURE  dbo.OutputData       @tablename   sysname 

阿里云如何共享镜像

阿里云如何共享镜像 您可以把自己的自定义镜像共享给其他用户,该用户可以通过管理控制台或 ECS API 查询到其他账号共享到本账号的共享镜像列表.被共享用户可以使用其他账号共享的镜像创建 ECS 实例和更换系统盘. 在共享给其他账号之前,请确认该镜像上是否存在敏感和安全的重要数据和软件. 注意:阿里云不保证其他账号共享镜像的完整性和安全性,使用共享镜像需要自行承担风险.请您选择信任的账号共享给您的镜像.在使用该镜像创建 ECS 实例时,请登录该 ECS 实例进行检查确认该镜像的安全性和完整性.