sql - 调整 SQL Server

标签 sql sql-server performance sql-server-2008

我正在使用 SQL Server 2008,我想调整所有需要很长时间的存储过程

每当我单独执行存储过程时,我都会立即得到结果..

每当我们对 100 个用户运行负载测试时,结果都非常糟糕。

我正在使用带有 SQL Server 2008 的 .NET 应用程序

有什么办法可以找出问题所在吗?

最佳答案

您必须逻辑地处理这个问题,以找出问题实际出在哪里,然后才能进行调整/优化/其他操作。

首先,确认问题实际上是数据库 - 可能是 .Net 应用程序。在 .Net 应用程序上放置一个分析器,并检查它是否确实在数据库查询上花费了时间,并且问题不是应用程序代码。

接下来,在数据库服务器上运行性能监视器;检查内存、CPU、磁盘 I/O 和网络。如果其中任何一个出现峰值或始终处于 100%,则可能存在硬件瓶颈。升级硬件通常要便宜得多。当然,数据库问题很可能表现为 CPU 或内存峰值,因此这并不是万无一失的 - 但如果您在不合格的硬件上运行,升级仍然要便宜得多。

接下来,在服务器上运行 SQL Server Profiler。尝试过滤掉噪音(这是一个噪音很大的工具),并在多个用户使用该应用程序时查找长时间运行的查询。通常,您会看到少数几个查询导致了大多数性能问题(但并非总是如此)。创建一个慢速运行列表(我使用 1 秒作为截止点)。

获得开发环境中运行缓慢的查询列表后,请对其进行优化。查看查询计划以确保它们使用正确的索引,并查看它们的编写方式。如果您仍然遇到困难,请回来发布具体查询和示例数据供我们查看。

关于sql - 调整 SQL Server,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27796486/

相关文章:

sql - 如何逐列选择用户的最大日期?

sql-server - 当时间戳(rowversion)溢出时会发生什么?

即使在启用 skip-name-resolve 后,MySQL 远程连接也很慢

sql - Azure Synapse Analytics 中的 regexMatch 和 regexReplace 函数不会在简单的 SELECT 语句中生成结果

mysql - 如何解决无法添加外键约束的错误

mysql - SQL 对每个 userID 记录计算一个值,但 userId 的一个记录值为 x 的情况除外

c# - NullReferenceException 与 Nullable DateTime 尽管空检查

sql-server - 如何用随机数填充数据库列

performance - 使用 Jmeter 的 JBOSS wildfly 10 性能调优

javascript - 如何下载 JavaScript 文件而不解析它?