ORA-12801: error signaled in parallel query server PZ99分析
分析结论
这个案例本身很简单,不难,就是想和大家分享下(主要是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
个人简介
项目经验:
中国联通4G数据库性能分析与优化
贵州移动crm及客服数据库性能优化项目
贵州移动crm及客服务数据库sql审核项目
深圳穆迪软件有限公司数据库性能优化项目
联系方式:
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/9240380/viewspace-1723699/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/9240380/viewspace-1723699/
ORA-12801: error signaled in parallel query server PZ99分析相关推荐
- oracle ora_p0,ORA-12801: error signaled in parallel query server P005
昨天有个分区表,交换了30多个分区(将业务表30多个分区交换到历史表,然后删除业务表这30多个分区),然后今天早上收集统计信息的时候报错了,请教各位,这个需要重建索引吗?为什么收集统计信息的时候会报错 ...
- 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) 原因排查与解决方法 参考文章: ...
- 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 ...
- Oracle Parallel Query(OPQ)
日月明王BLOG http://sunmoonking.spaces.live.com Oracle Parallel Query(OPQ)可以将一个SQL statement分成多个片 ...
- Parallel Query Bitmap
Degree of Parallelism(并行度) 一个查询使用并行来处理时,SQL Server为该查询分配多个线程,每个线程使用一个CPU进行操作.Degree of Paralleli ...
- 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 ...
- 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 ...
- 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上传要 ...
- 解决关于 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 ...
最新文章
- 9.DRN: A Deep Reinforcement Learning Framework for News Recommendation论文详解
- 【Groovy】使用 Groovy 语言开发服务器 Server 和客户端 Client 套接字程序 ( 服务器客户端完整代码示例 | 运行服务器端与客户端效果及过程分析 )
- 简单好用!利用Spring AOP技术10分钟实现一个数据库读写分离方案
- Java黑皮书课后题第8章:*8.10(最大的行和列)编写一个程序,在一个4*4的矩阵中随机填入0和1,打印该矩阵,分别找到第一个具有最多1的行和列
- 如何将MATLAB程序发布为独立的不依赖MATLAB环境可执行的程序包(基于Matlab R2015b版 )
- java有理数类的封装_java实验报告有理数的类封装.doc
- mysql按select导出_mysql 导出select结果到文本的几种方式
- 小汤学编程之JAVA番外篇——Properties工具类
- Apollo测试通知登记
- 华大基因:新型冠状病毒检测试剂盒日均产能已达8万人份
- 数学分析闭区间套定理_不能精确找到背驰点?利用区间套解决这难题
- DAN疼之后上些基础知识---自定义HttpModule和httpHandler
- 使用git+Jenkins部署代码
- mybatis-plus代码自动生成器
- 服务端(Win server2012)+IIS管理器配置PHP服务器并部署网站讲解
- C#学习系列之H264解码
- 网页加载慢,你知道几种原因?
- 供应链金融你了解多少?
- Vue 关闭浏览器清除Cookies
- 利用NI模拟量输出板卡LabVIEW输出正弦波形的方法
热门文章
- Java+MySql存储表情符
- iphone怎么连接itunes相关解锁教程
- 锐聘学院oracle上机题
- java 生僻字 问号_csv导出姓名生僻字变问号
- kubelet报错:Orphaned pod “$Pod“ found, but volume paths are still present on disk
- redux的原理、工作流程及其应用
- 用Python实现表格读写
- Activity、Service、子线程之间的消息传递轻松实现
- [Unity] 状态机事件流程框架 (二) 设计游戏状态的保存框架,存档功能 ScriptableObject、EasySave
- RS雷达转Velodyne雷达数据Failed to find match for field ‘intensity‘