首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >数据库性能问题的故障排除

数据库性能问题的故障排除
EN

Stack Overflow用户
提问于 2011-04-07 20:46:39
回答 2查看 1.3K关注 0票数 0

我在数据库方面有一个问题,下面是我每天都要处理的一个场景:通常应用程序可以处理流量等问题,但每天要处理几次性能问题。当发生这种情况时,存储过程的执行时间从200%-1000%增加到1000%。

我有一个,描述在这里:https://stackoverflow.com/questions/5585726/query-with-large-table-joins-optimization-techniques。通常它的执行大约需要6-8秒(我已经从20秒开始优化了它,因为我认为这个过程是罪魁祸首),但是当正在发生时,这个过程甚至可以执行60秒。

今天,我意识到应用程序中有更多的地方会冻结,而且,我不小心意识到,从Studio发出的示例查询(通常是在眨眼之间执行),当在数据库服务器上发生时,会开始放慢速度。好消息是,由于这一发现,我消除了应用程序和web服务器这两个瓶颈。

无法处理请求的是数据库服务器。我想知道是否有一种方法可以解决实时数据库问题,发现缓慢的查询或其他操作,如rebiulding索引、统计数据、内存问题等,或者可能导致所描述的性能下降的其他问题?

谢谢你,帕维尔

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-04-07 20:55:17

这是一个我经常使用的查询。

它显示了当前正在执行的代码等待信息阻塞信息、哪些spids正在运行、它们已经运行了多长时间、当前命令是什么、查询文本是什么以及如果缓存中有一个查询计划

代码语言:javascript
运行
复制
SELECT 
d2.wait_type,
d1.session_id,
d2.blocking_session_id, 
d2.status,
d1.login_name,
d2.start_time, 
d2.command,
d3.[text] as Batch, 
SUBSTRING(d3.[text], (d2.statement_start_offset/2) + 1,
    ((CASE statement_end_offset 
        WHEN -1 THEN DATALENGTH(d3.text)
        ELSE d2.statement_end_offset END 
            - d2.statement_start_offset)/2) + 1) AS Current_Statement,
qp.query_plan,
d1.login_time, 
d2.wait_time,
d2.cpu_time, 
d1.memory_usage,
d2.total_elapsed_time, 
d2.reads,d2.writes,
d2.logical_reads
FROM sys.dm_exec_sessions d1
JOIN sys.dm_exec_requests d2 ON d1.session_id=d2.session_id
CROSS APPLY sys.dm_exec_sql_text(d2.sql_handle) d3 
CROSS APPLY sys.dm_exec_query_plan(d2.plan_handle) AS qp
WHERE d1.session_id <> @@SPID
票数 2
EN

Stack Overflow用户

发布于 2011-04-07 20:50:35

在SSMS中,如果您右键单击服务器名称(而不是DB名称),它将显示一个Activity菜单,单击该菜单,这将是一个很好的起点。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5587437

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档