分析结论

这个案例本身很简单,不难,就是想和大家分享下(主要是ORACLE的初学者,牛人请无视之)
1,查询SQL的WHERE条件列的数据类型一定要明确
2,查询报错的几个ORACLE错误,要学会分析,有些报错可能只是表象,有烟雾弹的作用哟,小心上当
3,在分析排错时,如果一种思路走不通,马上尝试另一种思路,本文我就采用了调换列值和反向思维,以及启用自己的测试环境
   (在自己的测试环境你可以大胆操作,先把原理搞清晰,再在生产上操作),切切
4,学习方法很重要,欢迎与大家交流,共同提升

案例

今天在某客户监控数据库时,分析latch free等待事件,发现运行如下查询SQL竟然报错
   
 数据库版本
SQL> select * from v$version;

BANNER
--------------------------------------------------------------------------------
Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
PL/SQL Release 11.2.0.4.0 - Production
CORE    11.2.0.4.0      Production
TNS for IBM/AIX RISC System/6000: Version 11.2.0.4.0 - Production
NLSRTL Version 11.2.0.4.0 - Production

操作系统版本
SQL> host uname -a
AIX actdb4 1 6 00F902584C00

发现有并行查询报错,没启用并行哟,怪怪?
SQL> select count(*) from gv$active_session_history where p1='070000000003A8A0';
select count(*) from gv$active_session_history where p1='070000000003A8A0'
*
ERROR at line 1:
ORA-12801: error signaled in parallel query server PZ99, instance actdb4:act42 (2)
ORA-01722: invalid number

查查上述数据库报错的原因,可以通过10397 EVENT可以关闭这个报错,再次运行SQL就会报出真正的错误
(但我没用过这个10397事件哟,风险几何,本人不知哟)
SQL> host oerr ora 12801
12801, 00000, "error signaled in parallel query server %s"
// *Cause: A parallel query server reached an exception condition.
// *Action: Check the following error message for the cause, and consult
//          your error manual for the appropriate action.
// *Comment: This error can be turned off with event 10397, in which
//           case the server's actual error is signaled instead.

SQL> host oerr ora 01722
01722, 00000, "invalid number"
// *Cause: The specified number was invalid.
// *Action: Specify a valid number.

SQL>

我们继续分析,继续上述有ORA-01722报错

换一个值试下,却是运行正常不错吗,可见是P1的值有问题
SQL> select p1 from gv$active_session_history where rownum=1;

P1
--------------------------
                      6844
可见用数字就OK了
SQL> select p1 from gv$active_session_history where p1='6844';

P1
--------------------------
                      6844

果然我们用特殊字符替代,哈哈报错了 
SQL> select p1 from gv$active_session_history where p1='07A8';
select p1 from gv$active_session_history where p1='07A8'
*
ERROR at line 1:
ORA-12801: error signaled in parallel query server PZ99, instance actdb4:act42 (2)
ORA-01722: invalid number

突然想起来,我们再看看P1的列数据类型,我的哈哟,是数字类型;回头再想,确实和运行查询SQL的第2个ORACLE报错对应上了
SQL> desc gv$active_session_history;
 Name                                      Null?    Type
 ----------------------------------------- -------- ----------------------------
 INST_ID                                            NUMBER
 SAMPLE_ID                                          NUMBER
 SAMPLE_TIME                                        TIMESTAMP(3)
 IS_AWR_SAMPLE                                      VARCHAR2(1)
 SESSION_ID                                         NUMBER
 SESSION_SERIAL#                                    NUMBER
 SESSION_TYPE                                       VARCHAR2(10)
 FLAGS                                              NUMBER
 USER_ID                                            NUMBER
 SQL_ID                                             VARCHAR2(13)
 IS_SQLID_CURRENT                                   VARCHAR2(1)
 SQL_CHILD_NUMBER                                   NUMBER
 SQL_OPCODE                                         NUMBER
 FORCE_MATCHING_SIGNATURE                           NUMBER
 TOP_LEVEL_SQL_ID                                   VARCHAR2(13)
 TOP_LEVEL_SQL_OPCODE                               NUMBER
 SQL_OPNAME                                         VARCHAR2(64)
 SQL_PLAN_HASH_VALUE                                NUMBER
 SQL_PLAN_LINE_ID                                   NUMBER
 SQL_PLAN_OPERATION                                 VARCHAR2(30)
 SQL_PLAN_OPTIONS                                   VARCHAR2(30)
 SQL_EXEC_ID                                        NUMBER
 SQL_EXEC_START                                     DATE
 PLSQL_ENTRY_OBJECT_ID                              NUMBER
 PLSQL_ENTRY_SUBPROGRAM_ID                          NUMBER
 PLSQL_OBJECT_ID                                    NUMBER
 PLSQL_SUBPROGRAM_ID                                NUMBER
 QC_INSTANCE_ID                                     NUMBER
 QC_SESSION_ID                                      NUMBER
 QC_SESSION_SERIAL#                                 NUMBER
 PX_FLAGS                                           NUMBER
 EVENT                                              VARCHAR2(64)
 EVENT_ID                                           NUMBER
 EVENT#                                             NUMBER
 SEQ#                                               NUMBER
 P1TEXT                                             VARCHAR2(64)
 P1                                                 NUMBER

个人简介

8年oracle从业经验,具备丰富的oracle技能,目前在国内北京某专业oracle服务公司从事高级技术顾问。
服务过的客户:
中国电信
中国移动
中国联通
中国电通
国家电网
四川达州商业银行
湖南老百姓大药房
山西省公安厅
中国邮政
北京302医院     
河北廊坊新奥集团公司

 项目经验:
中国电信3G项目AAA系统数据库部署及优化
      中国联通4G数据库性能分析与优化
中国联通CRM数据库性能优化
中国移动10086电商平台数据库部署及优化
湖南老百姓大药房ERR数据库sql优化项目
四川达州商业银行TCBS核心业务系统数据库模型设计和RAC部署及优化
四川达州商业银行TCBS核心业务系统后端批处理存储过程功能模块编写及优化
北京高铁信号监控系统RAC数据库部署及优化
河南宇通客车数据库性能优化
中国电信电商平台核心采购模块表模型设计及优化
中国邮政储蓄系统数据库性能优化及sql优化
北京302医院数据库迁移实施
河北廊坊新奥data guard部署及优化
山西公安厅身份证审计数据库系统故障评估
国家电网上海灾备项目4 node rac+adg 
       贵州移动crm及客服数据库性能优化项目
       贵州移动crm及客服务数据库sql审核项目
       深圳穆迪软件有限公司数据库性能优化项目

联系方式:
手机:18201115468
qq   :   305076427
qq微博: wisdomone1
新浪微博:wisdomone9
qq群:275813900    
itpub博客名称:wisdomone1    http://blog.itpub.net/9240380/

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/9240380/viewspace-1723699/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/9240380/viewspace-1723699/

ORA-12801: error signaled in parallel query server PZ99分析相关推荐

  1. oracle ora_p0,ORA-12801: error signaled in parallel query server P005

    昨天有个分区表,交换了30多个分区(将业务表30多个分区交换到历史表,然后删除业务表这30多个分区),然后今天早上收集统计信息的时候报错了,请教各位,这个需要重建索引吗?为什么收集统计信息的时候会报错 ...

  2. ORA-12805: parallel query server died unexpectedly ORA-04030 (sort subheap,sort key) 原因排查与解决方法

    ORA-12805: parallel query server died unexpectedly ORA-04030 (sort subheap,sort key) 原因排查与解决方法 参考文章: ...

  3. xtrabackup备份报错:Error : failed to fetch query result SELECT server _ uuid , local , replication

    Error : failed to fetch query result SELECT server _ uuid , local , replication,storage_engines FROM ...

  4. Oracle Parallel Query(OPQ)

    日月明王BLOG   http://sunmoonking.spaces.live.com      Oracle Parallel Query(OPQ)可以将一个SQL statement分成多个片 ...

  5. Parallel Query Bitmap

    Degree of Parallelism(并行度)     一个查询使用并行来处理时,SQL Server为该查询分配多个线程,每个线程使用一个CPU进行操作.Degree of Paralleli ...

  6. mysql导入数据报错ERROR 1290 (HY000): The MySQL server is running with the --secure-file-priv option so it

    参考:https://blog.csdn.net/u011677147/article/details/64129606 参考:http://blog.itpub.net/31015730/views ...

  7. Error: couldn‘t connect to server 192.168.61.12:27017, connection attempt failed: SocketException: E

    问题:在开启mongo客户端后,没有正确退出客户端,可能会导致数据的重复冲突,从而无法再启动mongo客户端 [root@nosql02 bin]# ./mongo --host 192.168.61 ...

  8. vs与git中间的阻拦--Git failed with a fatal error. error: open(“.vs/GBA/v16/Server/sqlite3/db.lock

    具体错误信息: Git failed with a fatal error. error: open(".vs/GBA/v16/Server/sqlite3/db.lock 因为git上传要 ...

  9. 解决关于 ERROR 1290 (HY000): The MySQL server is running with the --skip-grant-tables option so it....报错

    mysql> create user 'zhilong'@'%' identified by '123456'; ERROR 1290 (HY000): The MySQL server is ...

最新文章

  1. 9.DRN: A Deep Reinforcement Learning Framework for News Recommendation论文详解
  2. 【Groovy】使用 Groovy 语言开发服务器 Server 和客户端 Client 套接字程序 ( 服务器客户端完整代码示例 | 运行服务器端与客户端效果及过程分析 )
  3. 简单好用!利用Spring AOP技术10分钟实现一个数据库读写分离方案
  4. Java黑皮书课后题第8章:*8.10(最大的行和列)编写一个程序,在一个4*4的矩阵中随机填入0和1,打印该矩阵,分别找到第一个具有最多1的行和列
  5. 如何将MATLAB程序发布为独立的不依赖MATLAB环境可执行的程序包(基于Matlab R2015b版 )
  6. java有理数类的封装_java实验报告有理数的类封装.doc
  7. mysql按select导出_mysql 导出select结果到文本的几种方式
  8. 小汤学编程之JAVA番外篇——Properties工具类
  9. Apollo测试通知登记
  10. 华大基因:新型冠状病毒检测试剂盒日均产能已达8万人份
  11. 数学分析闭区间套定理_不能精确找到背驰点?利用区间套解决这难题
  12. DAN疼之后上些基础知识---自定义HttpModule和httpHandler
  13. 使用git+Jenkins部署代码
  14. mybatis-plus代码自动生成器
  15. 服务端(Win server2012)+IIS管理器配置PHP服务器并部署网站讲解
  16. C#学习系列之H264解码
  17. 网页加载慢,你知道几种原因?
  18. 供应链金融你了解多少?
  19. Vue 关闭浏览器清除Cookies
  20. 利用NI模拟量输出板卡LabVIEW输出正弦波形的方法

热门文章

  1. Java+MySql存储表情符
  2. iphone怎么连接itunes相关解锁教程
  3. 锐聘学院oracle上机题
  4. java 生僻字 问号_csv导出姓名生僻字变问号
  5. kubelet报错:Orphaned pod “$Pod“ found, but volume paths are still present on disk
  6. redux的原理、工作流程及其应用
  7. 用Python实现表格读写
  8. Activity、Service、子线程之间的消息传递轻松实现
  9. [Unity] 状态机事件流程框架 (二) 设计游戏状态的保存框架,存档功能 ScriptableObject、EasySave
  10. RS雷达转Velodyne雷达数据Failed to find match for field ‘intensity‘