- 浏览: 728177 次
- 性别:
- 来自: 天津
文章分类
- 全部博客 (442)
- 中间件 (20)
- hibernate (13)
- spring (20)
- 数据库 (78)
- struts (8)
- ibatis (4)
- 前端 (61)
- linux,windows (21)
- it大环境 (32)
- IDE工具 (36)
- 感悟 (6)
- java基础 (40)
- 经典面试题 (10)
- exception总结 (14)
- 软件设计 (8)
- 工具类应用及新技术 (48)
- php (2)
- 微信 (1)
- 设计模式 (2)
- 重构 (3)
- 管理 (2)
- 工作笔记 (1)
- jmx (1)
- 算法 (4)
- 多线程同步 (2)
- 代码管理工具 (5)
- 代码检测及测试 (2)
- 缓存服务 (1)
- SOA及ROA (5)
- groovy (1)
- 网络编程 (2)
- 大数据 (6)
最新评论
-
love398146779:
我当然不能全写上面了,这只是其中一部分https连接。
java 建立 https连接 -
yuenkin:
大哥,这是双向认证吗?
java 建立 https连接 -
issu:
例如以下代码能遍历字符串"Tom:M ...
<c:forTokens>标签delims截取字符 -
love398146779:
2*3*5=30,是30个以上的请求才拒绝呀。
tomcat的maxThreads、acceptCount(最大线程数、最大排队数) -
love398146779:
2台跟1台一样的效果。
zookeeper与activemq最新存储replicatedLevelDB整合
SELECT bs.username "Blocking User", bs.username "DB User",
ws.username "Waiting User", bs.SID "SID", ws.SID "WSID",
bs.serial# "Serial#", bs.sql_address "address",
bs.sql_hash_value "Sql hash", bs.program "Blocking App",
ws.program "Waiting App", bs.machine "Blocking Machine",
ws.machine "Waiting Machine", bs.osuser "Blocking OS User",
ws.osuser "Waiting OS User", bs.serial# "Serial#",
ws.serial# "WSerial#",
DECODE (wk.TYPE,
'MR', 'Media Recovery',
'RT', 'Redo Thread',
'UN', 'USER Name',
'TX', 'Transaction',
'TM', 'DML',
'UL', 'PL/SQL USER LOCK',
'DX', 'Distributed Xaction',
'CF', 'Control FILE',
'IS', 'Instance State',
'FS', 'FILE SET',
'IR', 'Instance Recovery',
'ST', 'Disk SPACE Transaction',
'TS', 'Temp Segment',
'IV', 'Library Cache Invalidation',
'LS', 'LOG START OR Switch',
'RW', 'ROW Wait',
'SQ', 'Sequence Number',
'TE', 'Extend TABLE',
'TT', 'Temp TABLE',
wk.TYPE
) lock_type,
DECODE (hk.lmode,
0, 'None',
1, 'NULL',
2, 'ROW-S (SS)',
3, 'ROW-X (SX)',
4, 'SHARE',
5, 'S/ROW-X (SSX)',
6, 'EXCLUSIVE',
TO_CHAR (hk.lmode)
) mode_held,
DECODE (wk.request,
0, 'None',
1, 'NULL',
2, 'ROW-S (SS)',
3, 'ROW-X (SX)',
4, 'SHARE',
5, 'S/ROW-X (SSX)',
6, 'EXCLUSIVE',
TO_CHAR (wk.request)
) mode_requested,
TO_CHAR (hk.id1) lock_id1, TO_CHAR (hk.id2) lock_id2,
DECODE
(hk.BLOCK,
0, 'NOT Blocking', /**//* Not blocking any other processes */
1, 'Blocking', /**//* This lock blocks other processes */
2, 'Global', /**//* This lock is global, so we can't tell */
TO_CHAR (hk.BLOCK)
) blocking_others
FROM v$lock hk, v$session bs, v$lock wk, v$session ws
WHERE hk.BLOCK = 1
AND hk.lmode != 0
AND hk.lmode != 1
AND wk.request != 0
AND wk.TYPE(+) = hk.TYPE
AND wk.id1(+) = hk.id1
AND wk.id2(+) = hk.id2
AND hk.SID = bs.SID(+)
AND wk.SID = ws.SID(+)
AND (bs.username IS NOT NULL)
AND (bs.username <> 'SYSTEM')
AND (bs.username <> 'SYS')
ORDER BY 1;
--------------------------------------------------------------------------------
查询发生死锁的select语句
select sql_text from v$sql where hash_value in
(select sql_hash_value from v$session where sid in
(select session_id from v$locked_object))
---------------------------------------------------------
关于数据库死锁的检查方法
一、 数据库死锁的现象
程序在执行的过程中,点击确定或保存按钮,程序没有响应,也没有出现报错。
二、 死锁的原理
当对于数据库某个表的某一列做更新或删除等操作,执行完毕后该条语句不提
交,另一条对于这一列数据做更新操作的语句在执行的时候就会处于等待状态,
此时的现象是这条语句一直在执行,但一直没有执行成功,也没有报错。
三、 死锁的定位方法
通过检查数据库表,能够检查出是哪一条语句被死锁,产生死锁的机器是哪一台。
1)用dba用户执行以下语句
select username,lockwait,status,machine,program from v$session where sid in
(select session_id from v$locked_object)
如果有输出的结果,则说明有死锁,且能看到死锁的机器是哪一台。字段说明:
Username:死锁语句所用的数据库用户;
Lockwait:死锁的状态,如果有内容表示被死锁。
Status: 状态,active表示被死锁
Machine: 死锁语句所在的机器。
Program: 产生死锁的语句主要来自哪个应用程序。
2)用dba用户执行以下语句,可以查看到被死锁的语句。
select sql_text from v$sql where hash_value in
(select sql_hash_value from v$session where sid in
(select session_id from v$locked_object))
四、 死锁的解决方法
一般情况下,只要将产生死锁的语句提交就可以了,但是在实际的执行过程中。用户可
能不知道产生死锁的语句是哪一句。可以将程序关闭并重新启动就可以了。
经常在Oracle的使用过程中碰到这个问题,所以也总结了一点解决方法。
1)查找死锁的进程:
sqlplus "/as sysdba" (sys/change_on_install)
SELECT s.username,l.OBJECT_ID,l.SESSION_ID,s.SERIAL#,
l.ORACLE_USERNAME,l.OS_USER_NAME,l.PROCESS
FROM V$LOCKED_OBJECT l,V$SESSION S WHERE l.SESSION_ID=S.SID;
2)kill掉这个死锁的进程:
alter system kill session ‘sid,serial#’; (其中sid=l.session_id)
3)如果还不能解决:
select pro.spid from v$session ses,
v$process pro where ses.sid=XX and
ses.paddr=pro.addr;
其中sid用死锁的sid替换:
exit
ps -ef|grep spid
其中spid是这个进程的进程号,kill掉这个Oracle进程。
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/yongali/archive/2007/07/06/1680768.aspx
发表评论
-
sqlserver identity总结
2016-05-09 15:26 899想要将值插入到自动编 ... -
mysql 转sqlserver中遇到的坑
2016-05-06 18:09 1308mysql 转sqlserver中遇到的 ... -
sqlserver 函数cast与拼接
2016-05-04 12:01 945今天项目用到sqlserver,已经有8年不用这个sqlser ... -
mysql更新
2016-01-26 17:25 379UPDATE souyue02.sy_category_inf ... -
SELECT INTO 和 INSERT INTO SELECT
2015-10-09 16:51 454http://www.cnblogs.com/freshman ... -
mysql --------for routine错
2015-09-09 19:19 695调用存储过程时报了下面的错误 ERROR 1370 (4200 ... -
mysql存储--游标
2015-09-09 18:21 452游标的使用 要声明, 1.接收游标数据的变量 2.遍历数据结 ... -
You can't specify target table 't' for update in FROM clause
2015-09-08 16:41 399You can't specify target table ... -
mysql中如何判断字段是否包含中文
2015-09-08 16:31 2580SELECT * FROM a WHERE length( ... -
MSSQL和MySQL中,数据表两列字段值互换的问题,记录下
2015-09-08 16:29 1659MSSQL的处理方法 update table1 set fi ... -
Mongodb的update操作
2015-04-04 11:56 5561).update()命令 db.collection.up ... -
从Mongo的一些总结
2015-03-26 17:40 329var timestamp = _id.toString(). ... -
mysql加密解密函数AES_ENCRYPT与AES_DECRYPT
2014-12-02 15:05 2684mysql下的加密函数有如下几个 PASSWORD():创建 ... -
mysql加密解密函数AES_ENCRYPT与AES_DECRYPT
2014-12-02 15:04 1182mysql下的加密函数有如下几个 PASSWORD():创建 ... -
Mysql 查看连接数,状态
2014-11-27 17:24 1128http://blog.csdn.net/starnight_ ... -
sqlserver2008 jar驱动
2014-11-10 13:31 757JAVA要连接SQL SERVER2008,必须要用JDBC驱 ... -
mysql语句学习
2014-11-06 17:34 538select sysdate(),now(), sleep(3 ... -
win8不允许从远程连接MySql解决办法
2014-11-06 11:22 669在安装mysql的机器上运 ... -
plsql写表中字段及注释时为乱码
2014-09-01 11:55 2208修改pl/sql developer 的编码格式: 在win ... -
在Oracle中调用java程序
2014-07-16 13:46 624注意:java方法必须是static类型的,如果想在JAVA中 ...
相关推荐
- 在处理死锁之前或之后,可以通过收集统计信息来优化查询性能,这有助于减少未来的死锁问题。 ```sql DBMS_STATS.GATHER_TABLE_STATS(OWNNAME => 'LLTRADE', TABNAME => 'TAGTPREPAYLOG', CASCADE => TRUE, ...
通过收集和分析执行时间过长的SQL语句,可以找出性能瓶颈,进行SQL优化,如改写SQL、创建新索引或调整表结构。 4. 等待事件监控:等待事件是分析数据库性能的重要指标,它们揭示了数据库在等待什么资源。比如,...
- 当回滚段争用严重时,可能会导致事务等待甚至死锁,通过此查询可以快速发现问题所在。 --- #### 六、在一个用户下查找所有的索引 **知识点:** - **Index Lookup for a User:** - `SELECT user_indexes....
在Oracle数据库管理中,SQL(结构化查询语言)是核心工具,用于检索、更新和管理数据。本资料集主要涵盖了Oracle中的常用SQL语句以及在实际应用中可能遇到的常见问题及其解决策略。 1. **SQL基本操作**: - **...
1. **执行计划分析**:Oracle 9i引入了“执行计划”概念,通过EXPLAIN PLAN语句,我们可以预览SQL查询的执行路径,了解数据库如何读取和处理数据。执行计划中的操作包括全表扫描、索引扫描、连接操作等,分析执行...
### 经典SQL语句收集(ORACLE) #### 一、经典查询语句 在Oracle数据库中,查询语句是日常开发与维护中最常见的操作之一。以下列出了一些经典的查询语句示例: 1. **查询所有用户(排除特定用户)**: ```sql ...
4. **数据库维护**:定期进行统计信息收集和分析,更新索引统计信息,确保Oracle数据库能够准确估计查询的执行计划。定期重构和重建索引,清理无用的数据和索引,保持数据库整洁。 5. **硬件升级**:提升服务器硬件...
笔记可能涉及索引的创建和管理、SQL调优(如使用EXPLAIN PLAN分析查询执行计划)、数据库统计信息的收集、存储优化以及使用Oracle的性能监控工具(如AWR和ASH报告)。 此外,Oracle的安全管理包括用户权限管理、...
### Oracle为何有时不使用索引来查找数据 Oracle数据库在处理SQL查询时,会根据一系列复杂的因素...通过了解这些原因,DBA和开发人员可以更好地调整查询语句和索引策略,以确保Oracle数据库能够更高效地处理查询请求。
- 可以通过查询`v$process`视图来检查Oracle服务进程的状态。例如:`select serial#, pid, status from v$process;`。这有助于了解当前活跃的进程及其状态。 - **1.3. 检查Oracle监听状态** - 使用`lsnrctl ...
本资料集合了多年以来个人精心收集的Oracle经典面试题,旨在帮助求职者或数据库管理员更好地准备面试,理解Oracle数据库的核心概念和技术。 1. **SQL基础** - SQL(Structured Query Language)是用于管理关系...
1. **Trace文件**:Oracle事件探查器生成的跟踪文件包含了数据库执行的各种操作的详细信息,如SQL语句、PL/SQL块、数据库调用、等待事件等。这些信息对于定位性能问题和故障排查至关重要。 2. **10046 trace事件**...
《高级owi与oracle性能调优》是一本专注于Oracle数据库性能优化的专业技术书籍,主要针对OWI(Oracle等待事件)的调优技术进行详细讲解。由于文中提供的部分电子书页码信息仅为重复的电子书书店的联系方式,并没有...
综上所述,为了有效地解决 Oracle 查询性能问题,我们需要从多方面入手,包括但不限于优化索引策略、改善 I/O 性能、合理利用内存资源、优化查询语句结构等。同时,充分利用 Oracle 10g 中的监控工具和技术,可以...
7. **性能优化**:讲解SQL查询优化,如索引选择、执行计划分析、统计信息收集,以及通过调整SQL语句和数据库参数来提高系统性能。 8. **安全性**:了解Oracle的用户管理和权限控制,包括角色、权限、系统权限和对象...
- **SQL与PL/SQL**:深入探讨了SQL语句的基本用法,包括查询、插入、更新和删除操作;同时介绍了PL/SQL的过程化编程特性,如变量定义、控制结构和异常处理。 #### 二、Oracle架构 - **Oracle数据库架构**:解析了...
8. **性能优化**:Oracle提供了一系列工具和策略来提升性能,如索引优化、查询优化器、统计信息收集等。理解这些优化手段对于提升数据库性能至关重要。 9. **Oracle备份与恢复**:笔记可能涵盖RMAN(恢复管理器)、...
Oracle提供了一系列工具和功能来优化数据库性能,如SQL优化器、性能监视工具(如SQL Trace和AWR报告)、表和索引的统计信息收集以及分区和索引的使用。 总结来说,Oracle数据库在数据结构上的理解和应用对于数据库...
1. SQL Trace与10046事件:利用这些工具收集执行计划和执行时间,用于分析和优化SQL语句。 2. AWR(Automatic Workload Repository)报告:定期生成性能报告,识别系统瓶颈。 九、数据库设计原则 1. 第三方工具...
面试中可能会问及如何收集统计信息、监控数据库状态、清理无效对象、优化SQL语句等。 2. 创建和配置Oracle数据库(Creating and Configuring an Oracle Database):应聘者需要了解Oracle数据库的安装流程、初始化...