sqlserver-查阻塞】的更多相关文章

经常会需要分析SQLSERVER的阻塞情况,尤其是某些SQL操作异常缓慢从而怀疑是有人在搞事情的情况下.网上有许多一模一样的帖子,是关于sp_who_lock这个存储过程的,然而,网上流传的这个是略有问题的(被阻塞的SQL输出有误),为此改造了一下实现,顺便优化了一下输出结构: CREATE PROCEDURE [dbo].[sp_who_lock] AS BEGIN DECLARE @spid INT , @bl INT , @intTransactionCountOnEntry INT ,…
公司sqlserver的监控系统主要是采用zabbix监控,但是zabbix的监控只能通过性能计数器给出报警,而无法给出具体的阻塞情况,比如阻塞会话.语句.时间等,所以需要配合sqlserver的一些特性来进行监控,这里给出一个方案: 1.创建阻塞日志表,用于记录阻塞情况 2.新建作业,用于将阻塞情况记录到阻塞日志表中,并发送邮件(如果没有配置邮件,或者不需要发送邮件,可以忽略此步骤) 3.创建警报,当阻塞大于阈值时,触发上面作业 在数据库阻塞值大于阈值时,在原有zabbix的监控上,将阻塞报警…
公司sqlserver的监控系统主要是采用zabbix监控,但是zabbix的监控只能通过性能计数器给出报警,而无法给出具体的阻塞情况,比如阻塞会话.语句.时间等,所以需要配合sqlserver的一些特性来进行监控,这里给出一个方案: 1.创建阻塞日志表,用于记录阻塞情况 2.新建作业,用于将阻塞情况记录到阻塞日志表中,并发送邮件(如果没有配置邮件,或者不需要发送邮件,可以忽略此步骤) 3.创建警报,当阻塞大于阈值时,触发上面作业 在数据库阻塞值大于阈值时,在原有zabbix的监控上,将阻塞报警…
参考原文:http://blog.csdn.net/ha196200/article/details/44985597 (1) 数据库阻塞: 假设第一个连接T1占有且没有释放资源,第二个连接T2请求同一资源(表tb)时需要等待,若T1没有提交或回滚,T2将持续等待,导致阻塞发生. 第一个连接: begin tran 第二个连接: begin tran commit tran (2)  数据库死锁: 第一个连接占有资源没有释放,准备获取第二个连接所占用的资源,而第二个连接占有资源没有释放,准备获取…
SELECT @@VERSION as 版本详细情况 SELECT SERVERPROPERTY('edition') as 软件版本 SELECT SERVERPROPERTY('ProductVersion') as 产品版本编号 SELECT SERVERPROPERTY('ProductLevel') as 当前补丁版本…
 select a.name as 列名, a.length as 长度,b.name as 类型 from syscolumns a left join systypes b on a.xtype = b.xtype left join sysobjects c on c.id = a.id -- where c.name = '' …
在生产环境中,会有很多使用ReadPast查询提示的场合,来避免正在被其它事务锁定的行对当前查询造成阻塞,而又不会获取到“脏数据”. 可是很多人都疑惑,为什么我使用了ReadPast仍然有时会被阻塞? 首先我们找到联机帮助: READPAST 指定数据库引擎不读取由其他事务锁定的行. 如果指定了 READPAST,将跳过行级锁. 也就是说,数据库引擎将跳过这些行,而不是阻塞当前事务直到锁被释放. 例如,假设表 T1 包含一个单精度整数列,其值为 1.2.3.4 和 5. 如果事务 A 将值 3…
大多数数据库需要同时处理多个查询,这些查询并不会像车等待红绿灯排队等待,而是会寻找最短的路径执行,因此需要一个红绿灯进行约束,这个红绿灯就是锁 理论上所有的事务之间应该是完全隔离的,但是事实上隔离的成本实在太高(必须是序列化的隔离级别才能完全隔离)sqlserver通过锁告诉所有并发的连接,在同一个时刻,哪些资源可以读取,哪些资源可以修改,当一个事务需要访问的资源加了不可兼容的锁,则sqlserver会阻塞其他事务来达成隔离,直到所请求的资源上的锁被释放 即:当在同一个资源上有了不兼容锁时,后请…
初次尝试: 配置Mysql时候使用的是Atomikos+DruidXADataSource,所以觉得配置SQLServer应该也是仅仅配置配置就够了,于是引入JDBC驱动依赖后,配置了文件 spring.datasource.system.xa-properties.dataSourceURL=jdbc:sqlserver://XXX;DatabaseName=XXX spring.datasource.system.xa-properties.username=sa spring.dataso…
模拟阻塞: 打开两个窗口:     窗口一: BEGIN TRANSACTION--开始事务 --等待1分钟 WAITFOR DELAY '00:1'; 窗口二: 查询阻塞:(当前被阻塞的进程id,不一定是它阻塞其他进程,有可能是它被其他进程阻塞) select request_session_id spid, OBJECT_NAME(resource_associated_entity_id) tableName from sys.dm_tran_locks where resource_ty…
问题描述 今天利用sqlserver查数据,使用了一个ROUND(308.16000, 2)函数,发现在sqlserver工具中显示正常,但是在服务端查出来就会发生精度丢失问题. ROUND和CAST区别 CAST 是将一种类型转换为另一种类型,如String 转int,如果含有小数或其他字符,则报错:使用方法CAST('123.456' as decimal(38, 2)). ROUND 是将数据进行四舍五入或截取:四舍五入使用方法ROUND(123.75633, 2),截取使用方法ROUND…
ORA-00054: 资源正忙, 但指定以 NOWAIT 方式获取资源: --首先得到被锁对象的session_idselect session_id from v$locked_object; --通过上面得到的session_id去取得v$session的sid和serial#,然后对该进程进行终止.--SELECT sid, serial#, username, osuser FROM v$session; SELECT sid, serial#, username, osuser FRO…
oracle之报错:ORA-00054: 资源正忙,要求指定 NOWAIT 问题如下: SQL> conn scott/tiger@vm_database Connected to Oracle Database 11g Enterprise Edition Release 11.1.0.6.0 Connected as scott ...... SQL> drop table student2;drop table student2ORA-00054: 资源正忙, 但指定以 NOWAIT 方…
来源于:http://www.cnblogs.com/loveLearning/p/3625544.html oracle之报错:ORA-00054: 资源正忙,要求指定 NOWAIT 问题如下: SQL> conn scott/tiger@vm_databaseConnected to Oracle Database 11g Enterprise Edition Release 11.1.0.6.0Connected as scott ...... SQL> drop table stude…
问题如下: SQL> conn scott/tiger@vm_databaseConnected to Oracle Database 11g Enterprise Edition Release 11.1.0.6.0Connected as scott ...... SQL> drop table student2; drop table student2 ORA-00054: 资源正忙, 但指定以 NOWAIT 方式获取资源, 或者超时失效=========================…
演示TCP的传输的客户端和服务端的互访 需求:客户端给服务端发送数据,服务端收到后,给客户端反馈信息. 客户端: 1.建立Socket服务,指定要连接方朵和端口 2.获取Socket流中的输出流,将数据写到该流中,通过网络发送给服务端. 3.获取socket流中的输入流,将服务端反映的数据获取到,找打印. 4.关闭客户端. 客户端: class TcpClient2{ public static void main(String[] args) throws Exception{ Socket…
Oracle用户权限表 oracle数据库中涉及到用户权限的三个表,dba_users,all_users,user_users有什么区别 dba_开头的是查全库所有的,all_开头的是查当前用户可以看到的,user_开头的是查当前用户的 用户与模式 用户:对数据库的访问,需要以适当用户身份通过验证,并具有相关权限来完成一系列动作 SYS用户,缺省始终创建,且未被锁定,拥有数据字典及其关联的所有对象 SYSTEM用户,缺省始终创建,且未被锁定,可以访问数据库内的所有对象 状态详解 0 OPEN…
现象: 执行update.truncate提示 ORA-00054: resource busy and acquire with NOWAIT specified. 解决方法: 因为系统是RAC系统,当时在第一个node没有查询到锁状态,查看第二台时候才看到锁的信息 1.查询数据库中的锁 select * from v$lock; select * from v$lock where block=1; 2.查询被锁的对象 select * from v$locked_object; 3.查询阻…
所谓的锁等待:就是一个事务a对一个数据表进行ddl或是dml操作时,系统就会对该表加上表级的排它锁,此时其他的事务对该表进行操作的时候会等待a提交或是回滚后,才可以继续b的操作 所谓的死锁:当两个或多个用户相互等待锁定的数据时就会发生死锁,这时这些用户被卡在不能继续处理业务,oracle可以自动检测死锁并解决他们,通过回滚一个死锁中的语句,释放锁定的数据,回滚的话会遇到ora-00060 deadlock detected while waiting for resource 模拟锁等待: 两个…
锁概念基础 数据库是一个多用户使用的共享资源.当多个用户并发地存取数据时,在数据库中就会产生多个事务同时存取同一数据的情况.若对并发操作不加控制就可能会读取和存储不正确的数据,破坏数据库的一致性. 加锁是实现数据库并发控制的一个非常重要的技术.当事务在对某个数据对象进行操作前,先向系统发出请求,对其加锁.加锁后事务就对该数据对象有了一定的控制,在该事务释放锁之前,其他的事务不能对此数据对象进行更新操作. 在数据库中有两种基本的锁类型:排它锁(Exclusive Locks,即X锁)和共享锁(Sh…
oracle之报错:ORA-00054: 资源正忙,要求指定 NOWAIT 问题如下: SQL> conn scott/tiger@vm_database Connected to Oracle Database 11g Enterprise Edition Release 11.1.0.6.0 Connected as scott ...... SQL> drop table student2; drop table student2 ORA-00054: 资源正忙, 但指定以 NOWAIT…
文章转载自:http://blog.itpub.net/31397003/viewspace-2142672/ "ORA-00054: 资源正忙, 但指定以 NOWAIT 方式获取资源, 或者超时失效"的快速解决方法今天在导一个临时表的数据,导出完成后准备清空数据,执行truncate命令时,遇到如下问题: ORA-00054: 资源正忙, 但指定以 NOWAIT 方式获取资源, 或者超时失效 解决方法如下: ======================================…
using System.Data;using System.Data.SqlClient;//先打开两个类库文件SqlConnection con = new SqlConnection(); // con.ConnectionString = "server=505-03;database=ttt;user=sa;pwd=123";con.ConnectionString = "server=.;database=stu;uid=sa;pwd=sa";con.O…
前一篇 http://www.cnblogs.com/qixi233/p/4766451.html 这篇是sqlserver的操作 界面比较走心哈哈哈,将就着看,主要就是下面增删改查四个btn 对于sqlserver的操作基本就几个: 开关SqlConnection SqlCommand将"SQL命令"与"SQLConnection"连接 执行命令并根据返回值来将操作结果反馈给用户 现在开始操作:(代码比较简单,如果有书写不够规范之处请告知谢谢) 代码结构: 数据库…
前两天,公司有一个利用android远程操作sqlserver的项目,对此我是毫无头绪的,但也挺感兴趣的,于是开始上网搜索方法,网上有挺多方法了,发现使用webservice的挺多的,不过我对这些技术一点了解都没有,最后也决定用webservice+xfire做,花了几天的时间赶写了一个demo,终于就就在刚刚完工了,想起来写的东西不多,但是解决各种小错误也花了挺多时间,现在也仍然有个没有解决的问题,在文章后面会提到,还希望有会的大侠指点下.最终实现用到的工具:sqlserver+xfire+t…
原文:第十六章--处理锁.阻塞和死锁(3)--使用SQLServer Profiler侦测死锁 前言: 作为DBA,可能经常会遇到有同事或者客户反映经常发生死锁,影响了系统的使用.此时,你需要尽快侦测和处理这类问题. 死锁是当两个或者以上的事务互相阻塞引起的.在这种情况下两个事务会无限期地等待对方释放资源以便操作.下面是死锁的示意图: 本文将使用SQLServer Profiler来跟踪死锁. 准备工作: 为了侦测死锁,我们需要先模拟死锁.本例将使用两个不同的会话创建两个事务. 步骤: 1. 打…
前言 说起整合自然离开ssm,我本身并不太喜欢ORM,尤其是MyBatis,把SQL语句写在xml里,尤其是大SQL,可读性不高,出错也不容易排查. 开发环境 idea2016.SpringMVC4.Mybatis3 项目结构 SSM整合 1.pom.xml <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance&quo…
声明:学了几天终于将增删改查的操作掌握了,也发现了一些问题,所以总结一下. 重点:操作数据库主要用的是SQL语句跟其他无关. 一:前提知识:PreparedStatement PreperedStatement是Statement的子类,它的实例对象可以通过调用Connection.preparedStatement()方法获得,相对于Statement对象而言:PreperedStatement可以避免SQL注入的问题. Statement会使数据库频繁编译SQL,可能造成数据库缓冲区溢出.P…
一.写在前面 因为这学期选修的 .net 课程就要上机考试了,所以总结下.net 操作 SqlServer 数据的方法.(因为本人方向是 Java,所以对.net 的了解不多,但以下所写代码均是经过测试成功的) 二..net 连接数据库 在web.config文件中配置数据库连接,代码写在<configuration></configuration>内 <appSettings> <add key="connstring" value=&quo…
一.数据库定义 数据库(Database)是按照数据结构来组织.存储和管理数据的仓库.数据库的操作分为两种形式:一种是直接在数据库管理工具图形化界面进行操作:一种是使用数据库脚本进行操作,数据库脚本可以直接在数据库管理工具中操作,也可以在dos命令窗口中操作. 二.数据库创建 方式一:数据库图形化管理工具创建数据库步骤:右键点击数据库->点击新建数据库->输入数据库名称,可自定义数据库所有者(设置哪些人可以使用数据库).逻辑名称.初始大小(数据库初始化大小).自增长大小(数据库新增数据的时候以…