- 浏览: 1064786 次
- 性别:
- 来自: 长沙
文章分类
- 全部博客 (639)
- 服务器配置篇 (58)
- hibernate篇 (14)
- spring篇 (33)
- struts篇 (28)
- JS篇 (46)
- 其他技术篇 (46)
- 数据库集群配置 (6)
- JAVA基础相关 (48)
- 分布式框架HadHoop的应用 (2)
- FLEX篇 (8)
- SQLSERVER技术 (32)
- Android学习 (13)
- amchart学习笔记 (1)
- openfire+smark搭建即时通讯 (9)
- Linux学习 (18)
- Oracle数据库 (15)
- 网站优化技术 (12)
- mysql数据库 (2)
- 项目学习总结 (18)
- 工具类(JAVA) (12)
- 工具类(JS) (2)
- 设计模式 (10)
- Lucene学习 (24)
- EJB3学习 (6)
- Sphinx搜索引擎 (3)
- 工作中用到的软件小工具 (5)
- .NET (49)
- JAVA 连接SQLSERVER2008步骤 (1)
- MongoDB (19)
- Android手机开发 (3)
- Maven (6)
- vue (9)
- Shiro (4)
- mybatis (3)
- netty框架 (1)
- SpringCloud (3)
- spring-cloud (7)
- Git (1)
- dubbo (2)
- springboot (13)
- rocketmq (1)
- git学习 (2)
- kafka服务器 (2)
- linux (10)
- WEB系统辅助项目 (1)
- jenkins (2)
- docker (4)
- influxdb (3)
- python (2)
- nginx (1)
最新评论
-
jiangfuofu555:
这样数据量大,效率怎么样?
sqlserver 实现分页的前台代码 以及后台的sqlserver语句 -
w156445045:
博主请问下,如何做到实时的刷新呢,
另外我后台是Java 谢谢 ...
web 版本的汽车仪表盘,非常好看。还有各种图形 -
jackyin5918:
<transportConnector name=&qu ...
ActiveMQ的activemq.xml详细配置讲解 -
握着橄榄枝的人:
你这个不是spring1.x的吧
spring1.x使用AOP实例 -
xiaophai:
全乱套了!
openfire+spark搭建完美的及时通讯
/*---------------------------------------------------------------------------------------
名称:sp_who_lock
功能:用来检测是否有死锁的进程,如果有,把造成死锁的进程ID,HostName, ProgramName 和执行的SQL
语句保存到表jobcn_boss_operlog.dbo.DeadLockLog
参数: @SaveToTable 用来标示是否保存死锁进程到表jobcn_boss_operlog.dbo.DeadLockLog
1 是, 0 否, 默认 = 0
@PrintRootCauseOnly 是否只显示造成死锁的根源进程信息
1 只显示死锁根源进程 0 除显示死锁根源进程外,还显示被阻塞的进程, 默认 = 0
时间:2010-10-11
版本:1.0
修改:
---------------------------------------------------------------------------------------*/
CREATE procedure dbo.sp_who_lock
@SaveToTable int = 0,
@PrintRootCauseOnly int = 1
as
begin
set nocount on
declare @spid int,@bl int,
@intTransactionCountOnEntry int,
@intRowcount int,
@intCountProperties int,
@intCounter int,
@HostName nchar(128),
@ProgramName nchar(128),
@SQLCmd as varchar(1000)
create table #tmp_lock_who (
id int identity(1,1),
spid smallint,
bl smallint)
create table #tmpSQL (EventType varchar(100),
Parameters int,
EventInfo varchar(2000))
IF @@ERROR<>0
RETURN @@ERROR
insert into #tmp_lock_who(spid,bl)
select 0 ,blocked
from (select * from sysprocesses where blocked>0 ) a
where not exists(select * from (select * from sysprocesses where blocked>0 ) b
where a.blocked=spid)
union select spid,blocked from sysprocesses where blocked>0
IF @@ERROR<>0
RETURN @@ERROR
-- 找到临时表的记录数
select @intCountProperties = Count(*),@intCounter = 1
from #tmp_lock_who
IF @@ERROR<>0
RETURN @@ERROR
if @intCountProperties=0
select N'现在没有阻塞和死锁信息' as message
-- 循环开始
while @intCounter <= @intCountProperties
begin
-- 取第一条记录
select @spid = spid,@bl = bl
from #tmp_lock_who where Id = @intCounter
begin
if @spid =0
print N'* 引起数据库死锁的是: '+ CAST(@bl AS VARCHAR(10)) + N'进程号,其执行的SQL语法如下'
else
begin
if @PrintRootCauseOnly <> 1
print N'进程号SPID:'+ CAST(@spid AS VARCHAR(10))+ N'被' + N'进程号SPID:'+ CAST(@bl AS VARCHAR(10)) +N'阻塞,其当前进程执行的SQL语法如下'
end
--Get bolocker's host name and program name
select @HostName = hostname, @ProgramName = program_name
from sysprocesses
where SPID = @bl
truncate table #tmpSQL
select @SQLCmd = 'dbcc inputbuffer(' + cast(@bl as varchar(10)) + ') with no_infomsgs'
insert into #tmpSQL exec(@SQLCmd)
select @SQLCmd = EventInfo from #tmpSQL
if @PrintRootCauseOnly <> 1 or @spid =0
begin
print @SQLCmd
print ' '
end
if @SaveToTable = 1 and @spid =0 --写入引起数据库死锁的进程号到jobcn_boss_operlog.dbo.DeadLockLog
insert into jobcn_boss_operlog.dbo.DeadLockLog
(SPID,HostName,ProgramName,SQLExec,FindDate) values
(@bl,@HostName,@ProgramName,@SQLCmd,getdate())
--DBCC INPUTBUFFER (@bl )
end
-- 循环指针下移
set @intCounter = @intCounter + 1
end
drop table #tmp_lock_who
drop table #tmpSQL
set nocount off
return 0
end
发表评论
-
sqlserve2000 关于100万数据查询优化
2014-11-23 21:09 1062探讨怎么在有着1000万条数据的ms sql server数据 ... -
sqlserver2000触发器学习
2014-10-27 07:09 8301、 Sql代码 createtri ... -
sqlserver2008 评估到期解决方案
2012-03-15 08:44 1692和Visual Studio 2008一样,从官网下载SQL ... -
sqlserver 2008创建表分区
2011-11-24 16:31 900见附件 -
sqlserver 登陆企业管理器需要输入密码
2011-11-14 07:59 1139附件中有详细说明 -
JAVA 连接SQLSERVER2008步骤
2011-08-31 08:54 6631使用JDBC连接SQL SERVER 2008,很多人都在 ... -
sqlserver2008导出数据(新增)
2011-05-09 08:13 1717这个功能是sqlserver2000没有的。可以将数据脚本导出 ... -
安装完数据库以后,测试连接,提示端口错误的问题
2011-05-08 21:24 1692java.sql.SQLException: [Microso ... -
安装sqlserver的时候提示挂起操作,必须重启计算机的问题
2011-05-08 21:22 1712安装时提示说:“以前的某个文件已在安装计算机上创建挂起的文件操 ... -
SQL Server 2000 Enterprise Edition 日志传送温备方案
2011-02-20 09:44 1778'SQL Server 2000 Enterprise Edi ... -
通过存储过程直接访问服务器URL
2011-02-17 11:11 1501CREATE procedure ... -
sqlserver 常用函数大全
2011-02-14 17:31 1096sqlserver 常用函数大全 -
sqlserver 存储过程,函数,视图实例
2011-02-14 16:49 1149sqlserver 存储过程,函数,视图实例 -
对于批量删除某张表数据的做法技巧
2010-12-09 15:33 1161通过有JSP页面穿到存储过程中一连串的ID值,并且以,隔开。我 ... -
sql server 查询某个数据库中所有的任务执行状态
2010-12-06 11:25 4024xp_sqlagent_enum_jobs 参数: xp_ ... -
数据库表的转移心得体会和经验分享
2010-10-22 15:00 938开始设计一张表的时候,由于该表数据量逐渐增多。达到百万或千万的 ... -
一个关于查询性能的问题,在查询时间的时候是否应该用convert
2010-10-22 14:53 1106今天在做数据库表转移的时候,A表转移到B表。要将A表的2010 ... -
探讨SQL Server中Case 的不同用法
2010-10-18 08:34 1160CASE 可能是 SQL 中被误用最多的关键字之一。虽然你可 ... -
查找表中的重复数据
2010-08-27 09:32 989select * from person where ... -
查看死锁的SQL语句
2010-08-27 09:12 1606use master go declare @spid int ...
相关推荐
例如,在编写存储过程时,可以明确指定固定的锁定顺序,如: - 如果某个过程(proc1)需要按顺序锁定 `zltab`、`z2tab` 和 `z3tab`,则所有相关的其他过程(如 proc2)也应遵循相同的顺序。 2. **合理选择索引类型...
在SQL Server 2000中,可以通过编写存储过程来自动检测并杀死死锁进程。存储过程会查询系统表`sysprocesses`来获取当前的进程信息,并识别出死锁的进程。 4. 存储过程的创建与逻辑 文档中描述的`sp_killlock`是一...
- **使用系统存储过程**:可以编写自定义的存储过程来查询当前的锁信息,从而识别出可能存在的死锁情况。 本案例中提供的存储过程 `p_lockinfo` 就是一种有效的检测死锁的方法。该存储过程通过查询 `sysprocesses` ...
- 使用多线程可以避免阻塞主线程,提高用户体验,例如,一个线程负责执行耗时操作,另一个线程更新进程条,保持界面的响应性。 6. **并发和同步**: - 在多线程环境下,必须注意线程间的同步问题,防止数据竞争和...
4. 死锁分析工具:使用SQL Server提供的系统存储过程sp_who, sp_lock, sp_spaceused等来分析当前系统的活动进程和锁情况。 5. 优化查询和索引:通过优化查询语句和确保合理的索引存在,减少不必要的锁和锁升级事件。...
达梦数据库管理工具是专为国产数据库达梦设计的一款高效、易用的管理软件,它提供了全面的数据库管理和维护功能,旨在帮助用户更好地管理和优化他们的数据存储系统。这款工具不仅适用于数据库管理员,也适合开发人员...
总的来说,"查看Oracle进程,杀进程pb源程序"是一个集数据库监控、诊断和操作于一体的工具,对于DBA(数据库管理员)和系统运维人员来说极具价值。通过PB9,我们可以便捷地获取Oracle的运行状况,及时发现并解决潜在...
在C语言中实现银行家算法,通常需要创建数据结构来存储上述信息,并编写相应的函数来处理请求、安全检查和资源释放。代码会包括用于初始化、请求、检查安全性和释放资源的函数。同时,为了模拟并发环境,可能还需要...
在Python编程领域,多进程爬取在线课程并存入MySQL数据库是一种常见的数据获取与存储方法。这个项目涉及到了网络爬虫、多进程处理以及数据库操作等核心知识点,下面将逐一详细解析。 首先,网络爬虫是自动抓取...
总的来说,这个项目提供了一个实用的示例,将理论上的银行家算法与实际的数据库操作相结合,对于学习操作系统和C#编程的初学者来说,具有很高的参考价值。同时,对于已经有一定经验的开发者,也可以从中借鉴如何高效...
**正文** cpp-DeepDataBase是一...对于学习数据库原理、C++编程以及数据结构和算法的人来说,这是一个极好的实践项目。通过研究和使用cpp-DeepDataBase,开发者可以深入理解数据库引擎的工作原理,并提升自己的技能。
控制台模式则允许独立于应用程序运行,提供了一个Web客户端管理工具,可以通过执行SQL语句和查看模式、表来进行数据库管理。 启动h2database嵌入模式通常涉及将h2database的jar文件添加到项目的类路径中,然后通过...
3. 进程调度的对象是就绪队列中的进程,任务是选择一个进程占用CPU,这涉及到操作系统的调度策略。 4. 动态重定位是一种支持程序浮动的地址转换机制,它允许程序在内存中的位置改变而不影响其执行。 5. 最优适应分配...
标题中的“261 提示数据库正在使用”很可能是指在操作数据库时遇到的一个特定错误或警告消息。这个错误通常出现在尝试访问或者修改数据库时,发现数据库已经被其他进程占用,因此无法立即执行请求的操作。在软件开发...
6. **存储过程和函数**:学习编写PL/SQL代码,创建存储过程和函数,实现业务逻辑和数据处理。 7. **触发器和游标**:了解如何使用触发器来自动执行特定操作,以及游标在处理单条或多条记录时的作用。 8. **数据库...
- 重建无效或损坏的索引、触发器、存储过程等。 - **碎片回收** - 使用`ANALYZE`或`REORGANIZE`命令对表进行整理,减少碎片。 - **删除不用的数据** - 定期清理过期或不再使用的数据记录。 - **备份恢复** - ...