系统是2003 数据库是2008rc2
有两个数据库比较大,都有50个G,单表有千万的
有时服务器的硬盘读取会直线飙升到100%,系统就会卡死 ,持续一段时间,然后自己回落
现在想找到是什么原因,哪条sql语句造成的
求帮助
有两个数据库比较大,都有50个G,单表有千万的
有时服务器的硬盘读取会直线飙升到100%,系统就会卡死 ,持续一段时间,然后自己回落
现在想找到是什么原因,哪条sql语句造成的
求帮助
解决方案 »
- 房介通软件,不同分店的数据库是怎么同步的啊?有知道的么
- 一个汇总问题:)
- 求sql语句
- 求写一个sql语句
- com.microsoft.sqlserver.jdbc.SQLServerException: 到主机 的 TCP/IP 连接失败。
- Msg 16916 cursor with then name 'tran_Cursor' does not exist
- 数据库问题
- 开发数据库,买什么书好?
- 备分的数据库还原不了了?急。。。。。
- 请问如何从oracle数据库的表中删除已存在的字段,或更改字段的数据类型
- 服务器:消息 17,级别 16,状态 1.......SQL Server 不存在或访问被拒绝。
- ERP系统的数据库规划问题
看看锁定,看看最近耗费大量资源的查询
2、那个时间段有特殊的操作存在,可能是作业、可能是查询,如果都是每天的某个时间段发生,那可以考虑做个监控,看看发生了什么事。下面是查询耗资源的查询:
SELECT s2.dbid ,
DB_NAME(s2.dbid) AS [数据库名] ,
--s1.sql_handle ,
( SELECT TOP 1
SUBSTRING(s2.text, statement_start_offset / 2 + 1,
( ( CASE WHEN statement_end_offset = -1
THEN ( LEN(CONVERT(NVARCHAR(MAX), s2.text))
* 2 )
ELSE statement_end_offset
END ) - statement_start_offset ) / 2 + 1)
) AS [语句] ,
execution_count AS [执行次数] ,
last_execution_time AS [上次开始执行计划的时间] ,
total_worker_time AS [自编译以来执行所用的 CPU 时间总量(微秒)] ,
last_worker_time AS [上次执行计划所用的 CPU 时间(微秒)] ,
min_worker_time AS [单次执行期间曾占用的最小 CPU 时间(微秒)] ,
max_worker_time AS [单次执行期间曾占用的最大 CPU 时间(微秒)] ,
total_logical_reads AS [总逻辑读] ,
last_logical_reads AS [上次逻辑读] ,
min_logical_reads AS [最少逻辑读] ,
max_logical_reads AS [最大逻辑读] ,
total_logical_writes AS [总逻辑写] ,
last_logical_writes AS [上次逻辑写] ,
min_logical_writes AS [最小逻辑写] ,
max_logical_writes AS [最大逻辑写]
FROM sys.dm_exec_query_stats AS s1
CROSS APPLY sys.dm_exec_sql_text(sql_handle) AS s2
WHERE s2.objectid IS NULL
ORDER BY last_worker_time DESC
使用上面的方法查看,另外可以设置PERFORMANCE COUNTER 看看内存/IO/CPU的状况。内存不足也会导致大IO。还有可能是其他进程占用IO也不一定。