c# - 如何分析慢查询?

标签 c# sql sql-server performance

我们有这个数据库应用程序,它不断运行具有不同参数的复杂查询。 它是一个编译存储过程 (C#),它调用 4 个将 4 到 6 个表连接在一起的普通存储过程,C# 代码在调用之间合并结果。

这已经运行良好(快速)了 6 个月,直到数据库被恢复。然后性能从几乎瞬间变为 20+ 秒。谷歌搜索清楚地表明必须在表上运行更新统计信息,是的,它起作用了,再次即时查询。

但是一个月后问题又来了。好的,没问题,再次“更新统计信息”。又快了。然后过了一个星期才回来。出乎意料的缓慢查询。然后问题越来越快地出现,此时更新统计数据已无济于事。

如何分析这类问题?在性能方面是否有关于编译存储过程和查询计划的知识?

最佳答案

我认为该表需要索引。在表上创建索引。使用 SQL Server Profiler 和另一个我不记得的工具来分析查询并告诉您是否需要优化/创建索引。

索引应该处理慢查询。查询中还有其他一些东西应该查看,比如几个表、主 ID 上的连接等。

关于c# - 如何分析慢查询?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19763877/

相关文章:

SQL 连接问题

sql - 如何向文件 : input field in the Foreach loop container SSIS 添加多个文件扩展名

c# - 我应该使用 "ref"通过引用方法来传递集合(例如 List)吗?

c# - 我可以编写正则表达式来检查某些条件下的密码吗?

c# - 氪星上下文菜单在.Net FW 4.0下打不开

sql - 如何将字符串与整数进行比较

C# 正则表达式匹配并换行多行

SQL Server 代理未报告因 PowerShell 脚本中未捕获的异常而导致的失败

sql - NULL 有数据类型吗?

sql-server - 具有插入和删除功能的通用表表达式