你释放了连接没有?
你用java做个连接池!

解决方案 »

  1.   

    用sp_who2 看连接sp_who 看连接sp_lock 看琐用 
    kill
     杀掉无用的连接
      

  2.   

    KILL
    根据系统进程 ID (SPID) 终止用户进程。如果指定的 SPID 或 UOW 有许多工作要取消,KILL 命令可能需要一些时间来完成,特别是在涉及回滚长事务时。在 Microsoft® SQL Server™ 2000 中,KILL 命令可用来终止正常连接,这将在内部终止与给定 SPID 关联的事务。另外,在使用 Microsoft 分布式事务处理协调器 (MS DTC) 时,该命令也可用于终止所有孤立的分布式事务。当分布式事务未与任何当前 SPID 关联时,即为孤立的。语法
    KILL {spid | UOW} [WITH STATUSONLY] 参数
    spid是要终止进程的系统进程 ID (SPID)。SPID 值是当用户进行连接时指派给该连接的一个唯一的整数 (smallint),但该指派不是永久的。使用 KILL spid 终止与给定 SPID 相关联的常规非分布式和分布式事务。UOW标识 DTC 事务的工作单元 ID (UOW)。UOW 是一个字符串,可从 syslockinfo 表中获得,该表把 UOW 赋予每个由 DTC 事务控制的锁。UOW 也可从错误日志中获得,或通过 DTC 监视器获得。有关监视分布式事务的更多信息,请参见"MS DTC 用户手册"。使用 KILL UOW 终止孤立的 DTC 事务,这些事务不与任何真实的 SPID 关联,而是手工与 SPID = '-2' 关联。有关 SPID = '-2' 的更多信息,请参见本主题后面的注释部分。WITH STATUSONLY指定 SQL Server 生成关于正在回滚的给定 spid 或 UOW 的进度报告。带 WITH STATUSONLY 的 KILL 命令不终止或回滚 spid 或 UOW,而只显示当前进度报告。若要使带 WITH STATUSONLY 选项的 KILL 命令成功地生成报告,spid 或 UOW 当前必须处于回滚状态。进度报告指出已完成的回滚量(按百分比计算)和估计的剩余时间(以秒为单位),格式如下:Spid|UOW <xxx>: Transaction rollback in progress. Estimated rollback completion: yy% Estimated time left: zz seconds.如果执行带 WITH STATUSONLY 选项的 KILL 命令时 spid 或 UOW 回滚已经结束,或者如果没有 spid 或 UOW 正在回滚,带 WITH STATUSONLY 的 KILL 命令将返回下列错误:Status report cannot be obtained. KILL/ROLLBACK operator for Process ID|UOW <xxx> is not in progress.执行两次不带 WITH STATUSONLY 选项的 KILL spid|UOW 命令可得到同样的状态报告;但不建议这样做。第二次执行命令可能会终止已指派给释放的 SPID 的新进程。注释
    KILL 命令通常用于终止这样一些进程,它们锁住了其它重要进程,或者正在执行一个查询,而该查询正在使用必需的系统资源。系统进程和运行扩展存储过程的进程不能被终止。应当小心使用 KILL 命令,特别是正在运行重要进程时。用户不能取消自己的进程。其它不能取消的进程包括: AWAITING COMMAND
    CHECKPOINT SLEEP
    LAZY WRITER
    LOCK MONITOR
    SELECT
    SIGNAL HANDLER 
    执行 sp_who 可得到有效 SPID 值的报告。如果某个特定的 SPID 的回滚正在进行,则 sp_who 结果集中的这个 SPID 的 cmd 列将显示"KILLED/ROLLBACK"。使用 @@SPID 可显示当前会话的 SPID 值。 在 SQL Server 2000 中,KILL 命令可用于解决与非分布式和分布式事务相关联的 SPID。KILL 还可用于解决孤立的或置疑的分布式事务。当分布式事务未与任何当前 SPID 关联时,即为孤立的。 SPID 值为 '-2' 用于指示无连接或孤立的事务。SQL Server 将该值指派给所有孤立的分布式事务,使在 sp_lock(spid 列)、sp_who(blk 列)、syslockinfo 和 sysprocesses 中标识这样的事务更容易。当特定的连接在数据库资源上有锁并阻塞事务进程时,该功能十分有用。用户能够识别拥有锁的 SPID,并结束连接。KILL 命令可用来解决怀疑有问题的事务,即由于未计划重新启动数据库服务器或 DTC 处理协调器而产生的未解决的分布式事务。有关解决怀疑有问题的事务的更多信息,请参见 MS DTC 事务疑难解答。权限
    默认情况下,sysadmin 和 processadmin 固定数据库角色的成员具有 KILL 的默认权限,KILL 权限不可转让。示例
    A. 使用 KILL 终止 SPID
    下面的示例显示如何终止 SPID 53。KILL 53B. 使用 KILL spid WITH STATUSONLY 获得进度报告。
    下面的示例为特定的 spid 生成回滚进程的状态。KILL 54
    KILL 54 WITH STATUSONLY--This is the progress report.
    spid 54: Transaction rollback in progress. Estimated rollback completion: 80% Estimated time left: 10 seconds.C. 使用 KILL 终止孤立的分布式事务。
    下例说明如何使用 UOW = D5499C66-E398-45CA-BF7E-DC9C194B48CF 终止孤立 (SPID = -2) 事务。KILL 'D5499C66-E398-45CA-BF7E-DC9C194B48CF'
      

  3.   

    我使用了连接池,但我的并发用户少的时候系统正常
    当并发用户多时常sqlserver.exe占用系统进程100%再企业管理器-》管理-》当前活动-》进程信息中看大约100多个或几百个进程在sleeping
    事务日志很大
      

  4.   

    kill进程时页面会出错呀,因为那些进程说明有很多用户正在进行操作