MSSQL运行慢,经过几天的考验(mssql运行几天很慢)

在平时的维护过程中,很多时候我们可能会遇到企业的MSSQL数据库运行慢的问题,这是十分烦恼的。此时,我们可以做的其实是很多的。

首先,我们可以针对对MSSQL数据库检查,执行一些常用的优化,比如给SQL语句添加参数,使用存储过程,创建可复用的代码,并使用合适的数据来表达它们。这些操作将有助于改善MSSQL速度。最重要的是,让我们的数据库有足够的资源来运行,资源应该测量和管理,这可以使用以下查询来实现:

“`sql

SELECT

ca.session_id, qp.query_plan, cp.query_plan_hash,

ca.text, ca.login_name, ca.CPU_time, ca.total_elapsed_time,

ca.reads, ca.writes, ca.execution_count

FROM sys.dm_exec_cursors AS ca

INNER JOIN sys.dm_exec_query_stats AS qp ON ca.plan_handle = qp.plan_handle

INNER JOIN sys.dm_exec_query_plan AS cp ON qp.plan_handle = cp.plan_handle

ORDER BY ca.session_id;


另一方面,我们可以确定要运行MSSQL哪一部分数据库是慢的,然后查看它们的查询计划,看看是否有效率很低的查询。另外,我们可以查询是否有占用了数据库的计算资源的查询,或者是否存在索引的错误使用,这些都可能是出现运行慢的原因。

此外,我们也可以检查是否有僵尸进程正在持续运行,通过查询是否有系统进程正在等待被其他进程完成:

```sql
SELECT
W1.resource_type, W1.wait_duration_ms, W2.resource_type,
W2.wait_duration_ms, W1.blocking_session_id
FROM
sys.dm_os_waiting_tasks AS W1
INNER JOIN sys.dm_os_waiting_tasks AS W2
ON W1.session_id = W2.blocking_session_id;

完成上述所有操作后,MSSQL数据库应当恢复其正常运行速度,但有时即便按照以上操作操作,运行依旧慢,因此,我们应当进行更深入的查找,比如检查是否存在存储过程,是否有不必要的表操作,是否有大量的内联等。在对MSSQL数据库运行慢的问题有了全面的认识之后,我们才能有效地改善它。


数据运维技术 » MSSQL运行慢,经过几天的考验(mssql运行几天很慢)