webservcie取的数据集如果比较大的话,是非常占用资源的,服务器的cpu占用率非常高。在.net 1.1就是这个样子。在.net 2.0中可以对dataset xml进行压缩,但是1.1不可以。如果自己写语句来压缩,(使用二进制),又不能利用xml的优势。至于为什么Sql Server一直有语句在运行,这个需要查看程序是如何设计的。另外,也有可能是Sql代理服务定时运行某些任务。需要区分下。
调试欢乐多
说明数据库在有未完成任务时,他会自动启动上次的任务???
不是查询执行这个语句查询的耗时,请注意
SELECT TOP 50 sum(qs.total_worker_time)/1000 AS total_cpu_time,
sum(qs.execution_count)/1000 AS total_execution_count,
count(*) AS number_of_statements,
qs.plan_handle,qs.sql_handle
FROM sys.dm_exec_query_stats qs
GROUP BY qs.plan_handle
ORDER BY sum(qs.total_worker_time) DESC
SELECT blocked_query.session_id AS blocked_session_id,
blocking_query.session_id AS blocking_session_id,
sql_text.text AS blocking_text,
waits.wait_type AS blocking_resource
FROM sys.dm_exec_requests AS blocked_query
INNER JOIN
sys.dm_exec_requests AS blocking_query
ON blocked_query.blocking_session_id=blocking_query.session_id
CROSS APPLY
(SELECT * FROM sys.dm_exec_sql_text(blocking_query.sql_handle)) AS sql_text
INNER JOIN
sys.dm_os_waiting_tasks AS waits
ON waits.session_id=blocking_query.session_id
SELECT TOP 5 total_worker_time,last_worker_time,max_worker_time,min_worker_time,
SUBSTRING(st.text,(qs.statement_start_offset/2)+1,
((CASE statement_end_offset WHEN -1 THEN DATALENGTH(st.text)
ELSE qs.statement_end_offset END
-qs.statement_start_offset)/2)+1) AS statement_text
FROM sys.dm_exec_query_stats AS qs CROSS APPLY sys.dm_exec_sql_text(qs.sql_handle) AS st
ORDER BY max_worker_time DESC
--执行次数最多的查询计划
SELECT TOP 5 creation_time,last_execution_time,execution_count,
SUBSTRING(st.text,(qs.statement_start_offset/2)+1,
((CASE statement_end_offset WHEN -1 THEN DATALENGTH(st.text)
ELSE qs.statement_end_offset END
-qs.statement_start_offset)/2)+1) AS statement_text
FROM sys.dm_exec_query_stats AS qs CROSS APPLY sys.dm_exec_sql_text(qs.sql_handle) AS st
ORDER BY execution_count DESC
-----------------------------------------------------
不会的。数据库服务停止时如果有没有完成的任务会被取消并回滚的。
应该是什么任务被设置为SQL服务启动就开始运行而造成的。
sys.dm_exec_query_stats 有这个表吗?我换成DBO也不行
------------------------------------------------------
这是2005里面的动态管理信息,2000里面没有。zefuzhang 的那几个查询非常不错,收藏了。
看看当前有那些处理, 它们的 status 是什么, 分别是由谁发起的 request事件探察器出来的结果只能做为参考(而且基本上是从结果的角度出发), 你应该更多的关注出问题的时候, 服务器都在做些什么, 这些操作在什么状态