仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 1077|回复: 7
打印 上一主题 下一主题

[学习教程] MSSQL网页编程之library cache lock 的办理案例

[复制链接]
柔情似水 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-16 22:39:30 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
在执行崩溃恢复时,理解在一个数据库中的每一个表tbl_name对应的在数据库目录中的3个文件是很重要的:cache|办理
下战书,营业职员呈报,实行任何和zzss03201281cs_no表有关的操纵城市hang住,包含desczzss03201281cs_no,也会hang在那边

第一感到是锁了,因而,我看看锁

SQL>select*fromv$lockwhereblock=1;

norowsselected

SQL>
SQL>select*fromgv$lockwhereblock=1;

norowsselected

SQL>



再看看守候事务:

SQL>coleventfora30
SQL>l
1*selectevent,p1,p2,sidfromv$session_waitwhereevent=librarycachelock
SQL>/

EVENTP1P2SID
------------------------------------------------------------
librarycachelock1.3835E+191.3835E+1932

SQL>/

EVENTP1P2SID
------------------------------------------------------------
librarycachelock1.3835E+191.3835E+1932

SQL>/

EVENTP1P2SID
------------------------------------------------------------
librarycachelock1.3835E+191.3835E+1932

。。。



奇异,怎样这么多librarycachelock?

SQL>showuser
USERis"SYS"
SQL>execdbms_system.set_ev(32,27506,10046,12,);

PL/SQLproceduresuccessfullycompleted.

Elapsed:00:00:00.10
SQL>l
1SELECTd.VALUE
2||/
3||LOWER(RTRIM(i.INSTANCE,CHR(0)))
4||_ora_
5||p.spid
6||.trctrace_file_name
7FROM(SELECTp.spid
8FROMv$mystatm,v$sessions,v$processp
9WHEREm.statistic#=1ANDs.SID=m.SIDANDp.addr=s.paddr)p,
10(SELECTt.INSTANCE
11FROMv$threadt,v$parameterv
12WHEREv.NAME=thread
13AND(v.VALUE=0ORt.thread#=TO_NUMBER(v.VALUE)))i,
14(SELECTVALUE
15FROMv$parameter
16*WHERENAME=user_dump_dest)d
SQL>/

TRACE_FILE_NAME
--------------------------------------------------------------------------------
/ora9i/app/oracle/admin/csmisc/udump/csmisc2_ora_2708.trc

Elapsed:00:00:00.10
SQL>



SQL>selectxidusn,object_id,session_id,locked_modefromv$locked_object;

XIDUSNOBJECT_IDSESSION_IDLOCKED_MODE
-----------------------------------------
1435202313
1518303

SQL>colobject_nameformata30
SQL>selectowner,object_name,statusfromdba_objectswhereobject_id=35202;

OWNER
------------------------------
OBJECT_NAME
--------------------------------------------------------------------------------
STATUS
-------
SYS
PLAN_TABLE
VALID


SQL>

这个工具明显不是我们存眷的。


SQL>l
/1*selectowner,object_name,statusfromdba_objectswhereobject_id=18
SQL>

OWNEROBJECT_NAMESTATUS
-------------------------------------------------------------------
SYSOBJ$VALID

就是这个工具弄得,估量是开辟职员非常加入一些历程

SQL>c/18/30
1*selectserial#,username,command,lockwait,status,schemaname,osuser,machine,terminal,program,modulefromv$sessionwheresid=30
SQL>/

SERIAL#USERNAMECOMMANDLOCKWAITSTATUS
--------------------------------------------------------------------------
SCHEMANAMEOSUSER
------------------------------------------------------------
MACHINE
----------------------------------------------------------------
TERMINALPROGRAM
------------------------------------------------------------------------------
MODULE
------------------------------------------------
17921PUBUSER0ACTIVE
PUBUSERreport16
cs_dc02

SERIAL#USERNAMECOMMANDLOCKWAITSTATUS
--------------------------------------------------------------------------
SCHEMANAMEOSUSER
------------------------------------------------------------
MACHINE
----------------------------------------------------------------
TERMINALPROGRAM
------------------------------------------------------------------------------
MODULE
------------------------------------------------
sqlplus@cs_dc02(TNSV1-V3)
SQL*Plus


SQL>selectb.usernameusername,b.terminalterminal,b.programprogram,b.spid
2fromv$sessiona,v$processb
wherea.PADDR=b.ADDRanda.sid=&sid;
3Entervalueforsid:30
old3:wherea.PADDR=b.ADDRanda.sid=&sid
new3:wherea.PADDR=b.ADDRanda.sid=30

USERNAMETERMINAL
---------------------------------------------
PROGRAMSPID
------------------------------------------------------------
ora9iUNKNOWN
oracle@cs_dc02(TNSV1-V3)835

很明显,是因为report16用户实行了某些DDL操纵,然后,非常加入,形成体系的锁(估量和bug有关,有待考据)
SQL>host
ora9i@cs_dc02:/ora9i/app/oracle/product/920/rdbms/admin>ps-ef|grep835
ora9i46194617114:48:18pts/te0:00grep835
ora9i83510Jan5?0:01oraclecsmisc2(LOCAL=NO)
ora9i@cs_dc02:/ora9i/app/oracle/product/920/rdbms/admin>kill835
ora9i@cs_dc02:/ora9i/app/oracle/product/920/rdbms/admin>exit

SQL>selectxidusn,object_id,session_id,locked_modefromv$locked_object;

XIDUSNOBJECT_IDSESSION_IDLOCKED_MODE
-----------------------------------------
1435202313

SQL>

kill失落这个历程后,成绩办理了。(遗憾的是,忘了看看这个家伙实行的sql了,呵呵)
SQL>desczzss03201281cs_no
ERROR:
ORA-04043:objectzzss03201281cs_nodoesnotexist


SQL>desczzss03201281cs_no
ERROR:
ORA-04043:objectzzss03201281cs_nodoesnotexist


SQL>

SQL>execdbms_system.set_ev(32,27506,0,0,);

PL/SQLproceduresuccessfullycompleted.

SQL>

检察trace文件,:

公然大批的wait:

WAIT#1:nam=librarycachelockela=316p1=-4611686013647472824p2=-4611686013691747544p3=1301
WAIT#1:nam=librarycachelockela=326p1=-4611686013647472824p2=-4611686013691747544p3=1301
WAIT#1:nam=librarycachelockela=398p1=-4611686013647483736p2=-4611686013691747816p3=1301
WAIT#1:nam=librarycachelockela=552p1=-4611686013647483736p2=-4611686013691747816p3=1301
WAIT#1:nam=librarycachelockela=330p1=-4611686013649700264p2=-4611686013691715248p3=1301
WAIT#1:nam=librarycachelockela=141p1=-4611686013649700264p2=-4611686013691715248p3=1301
WAIT#1:nam=librarycachelockela=223p1=-4611686013647485472p2=-4611686013691762016p3=1301
WAIT#1:nam=librarycachelockela=93p1=-4611686013647485472p2=-4611686013691762016p3=1301
WAIT#1:nam=librarycachelockela=223p1=-4611686013595934816p2=-4611686013642107320p3=1301








Mysql的存储引擎接口定义良好。有兴趣的开发者可以通过阅读文档编写自己的存储引擎。
第二个灵魂 该用户已被删除
沙发
发表于 2015-1-19 20:48:04 | 只看该作者
如安全管理、备份恢复、性能监控和调优等,SQL只要熟悉基本操作就可以,只要程序设计部分只要稍加了解即可(如存储过程、触发器等)。
精灵巫婆 该用户已被删除
板凳
发表于 2015-1-28 10:29:45 | 只看该作者
是否碎片会引发效率问题?这都是需要进一步探讨的东西。varbinary(max)代替image也让SQLServer的字段类型更加简洁统一。
爱飞 该用户已被删除
地板
发表于 2015-2-5 14:45:24 | 只看该作者
如安全管理、备份恢复、性能监控和调优等,SQL只要熟悉基本操作就可以,只要程序设计部分只要稍加了解即可(如存储过程、触发器等)。
若天明 该用户已被删除
5#
发表于 2015-2-12 08:20:24 | 只看该作者
现在是在考虑:如果写到服务器端,我一下搞他个10个存储过程导过去,那久之服务器不就成垃圾箱了吗?即便优化了我的中间层.
分手快乐 该用户已被删除
6#
发表于 2015-3-3 01:33:45 | 只看该作者
还不是性能有问题!否则面向对象的数据库早就实现了!建议使用CLR的地方一般是和应用的复杂程度或操作系统环境有很高的耦合度的场景。如你想构建复杂的算法,并且用到了大量的指针和高级数据模型。
乐观 该用户已被删除
7#
发表于 2015-3-18 00:18:25 | 只看该作者
微软对CLR作了大篇幅的宣传,这是因为数据库产品终于融入.net体系中。最开始我们也是狂喜,感觉对象数据库的一些概念可以实现了。
变相怪杰 该用户已被删除
8#
发表于 2015-3-25 08:19:09 | 只看该作者
groupby子句可以将查询结果分组,并返回行的汇总信息Oracle按照groupby子句中指定的表达式的值分组查询结果。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-5-21 16:31

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表