我有一项从 MS SQL Server Management Studio 运行的任务。我预计它会在一小时内完成,而且它之前在这样的时间范围内已经完成了。输入数据没有发生太大变化,所以我预计执行时间也差不多。但现在看来 SQL Server 卡住了。这项任务已经运行了一整夜,总共耗时 20 小时。
当我打开服务器上的任务管理器时,我看到一个核心由 sqlservr.exe 以 100% 的速度运行。该机器有 8 个核心。像往常一样,此进程占用了所有内存(30GB)。SQL Server 版本为 10.50.1600.1
我是服务器上唯一的用户。
根据 dm_exec_requests,会话 ID 为 55。我可以通过 dm_exec_sql_text 提取正确的查询文本。我检查了 dm_os_waiting_tasks,结果中没有 session_id。
以下是有关该任务的更多详细信息:
status: running
command: UPDATE
start_time: 2013-07-11 14:49:39.533
last_wait_type: SOS_SCHEDULER_YIELD
open_transaction_count: 2
open_resultset_count: 1
cpu_time: 69315970
total_elapsed_time: 69594247
reads: 5139
writes: 1181434
text_size: -1
我确实也在夜间运行了进程监视器,但对相关数据库的文件访问并不多。
有人能告诉我我还能做些什么吗?
答案1
我将在 Management Studio 中启动跟踪。十分钟的时间足以让您了解正在发生的事情。