仓酷云

标题: MYSQL网站制作之ORACLE锁的办理 [打印本页]

作者: 小魔女    时间: 2015-1-16 22:41
标题: MYSQL网站制作之ORACLE锁的办理
珍贵的资金可以用于其他业务的启动,诸如市场、广告或调研和开发等。oracle
(转载自:http://fengyu.china.com/lock.htm)
ORACLE锁的办理

2003-03余枫ORACLE里锁有以下几种形式:0:none1:null空2:Row-S行共享(RS):共享表锁3:Row-X行公用(RX):用于行的修正4:Share共享锁(S):制止其他DML操纵5:S/Row-X共享行公用(SRX):制止其他事件操纵6:exclusive公用(X):自力会见利用数字越年夜锁级别越高,影响的操纵越多。一样平常的查询语句如select...from...;是小于2的锁,偶然会在v$locked_object呈现。select...from...forupdate;是2的锁。当对话利用forupdate子串翻开一个游标时,一切前往会合的数据行都将处于行级(Row-X)独有式锁定,其他工具只能查询这些数据行,不克不及举行update、delete或select...forupdate操纵。insert/update/delete...;是3的锁。没有commit之前拔出一样的一笔记录会没有反响,由于后一个3的锁会一向守候上一个3的锁,我们必需开释失落上一个才干持续事情。创立索引的时分也会发生3,4级其余锁。locked_mode为2,3,4不影响DML(insert,delete,update,select)操纵,但DDL(alter,drop等)操纵会提醒ora-00054毛病。有主外键束缚时update/delete...;大概会发生4,5的锁。DDL语句时是6的锁。以DBA脚色,检察以后数据库里锁的情形能够用以下SQL语句:selectobject_id,session_id,locked_modefromv$locked_object;selectt2.username,t2.sid,t2.serial#,t2.logon_timefromv$locked_objectt1,v$sessiont2wheret1.session_id=t2.sidorderbyt2.logon_time;假如有临时呈现的一列,多是没有开释的锁。我们能够用上面SQL语句杀失落临时没有开释非一般的锁:altersystemkillsessionsid,serial#;假如呈现了锁的成绩,某个DML操纵大概守候好久没有反响。当你接纳的是间接毗连数据库的体例,也不要用OS体系命令$killprocess_num大概$kill-9process_num来停止用户毗连,由于一个用户历程大概发生一个以上的锁,杀OS历程其实不能完全扫除锁的成绩。记得在数据库级别用altersystemkillsessionsid,serial#;杀失落不一般的锁。
有的时候,一些缺失的功能可以通过别的办法来实现,例如,在MySQL4.1以前,你可以通过使用join方法来替代子查询的功能。在MySQL5.0中,大多数关系型数据库所要求的功能已经都具备。
作者: 山那边是海    时间: 2015-1-18 09:57
在select语句中可以使用groupby子句将行划分成较小的组,然后,使用聚组函数返回每一个组的汇总信息,另外,可以使用having子句限制返回的结果集。
作者: 谁可相欹    时间: 2015-1-30 21:42
你觉得我的非分区索引无法对起子分区,你可以提醒我一下呀!没有任何的提醒,直接就变成了非分区表。不知道这算不算一个bug。大家也可以试试。
作者: 蒙在股里    时间: 2015-2-6 16:07
having子句的作用是筛选满足条件的组,即在分组之后过滤数据,条件中经常包含聚组函数,使用having条件显示特定的组,也可以使用多个分组标准进行分组。
作者: 愤怒的大鸟    时间: 2015-2-17 01:55
每天坚持做不一样的是,认真做笔录,定时复习。一个月你就可以有一定的收获。当然如果你想在sql方面有一定的造诣,你少不了需要看很多很多的书籍了。
作者: 海妖    时间: 2015-3-5 14:46
再开发调试阶段和OLAP环境中,外键是可以建立的。新版本中加入了SETNULL和SETDEFAULT属性,能够提供能好的级联设置。
作者: 只想知道    时间: 2015-3-12 08:13
不好!如果出了错;不好调试;不好处理!其实web开发将代码分为3层:web层;业务逻辑层和数据访问层;一般对数据库的操作都在数据访问层来做;这样便于调试和维护!而且将来如果是换了数据库的话;你只需要改数据层的代码;其他层的基本可以不变!要是你在jsp中直接调用sql数据库;那么如果换了数据库呢?岂不都要改?如果报了异常呢?怎么做异常处理?
作者: 小妖女    时间: 2015-3-19 19:11
不好!如果出了错;不好调试;不好处理!其实web开发将代码分为3层:web层;业务逻辑层和数据访问层;一般对数据库的操作都在数据访问层来做;这样便于调试和维护!而且将来如果是换了数据库的话;你只需要改数据层的代码;其他层的基本可以不变!要是你在jsp中直接调用sql数据库;那么如果换了数据库呢?岂不都要改?如果报了异常呢?怎么做异常处理?




欢迎光临 仓酷云 (http://ckuyun.com/) Powered by Discuz! X3.2