gpt4 book ai didi

c# - 缓慢的 SQL Server 数据库响应时间问题

转载 作者:行者123 更新时间:2023-11-30 21:45:50 24 4
gpt4 key购买 nike

我正在运行一个基于桌面的应用程序,该应用程序是用 C# 构建的,连接到 Microsoft SQL Server Express 数据库。大约有 20-30 个用户正在访问这个应用程序,同时有 20-30 个以上的系统同时连接到数据库并且它每天 24 小时工作。运行的操作系统是Windows Server 2012 Standard。

有时我在应用程序中遇到严重的性能问题,当我重新启动服务器时一切都变得正常。

我已经扫描了所有计算机,没有检测到病毒。看起来在网络设备上也没有问题。

可能是什么问题?垃圾收集?

谢谢

最佳答案

SQL Server Express Edition 有仿制品:

  • 支持的 CPU 数量:一次只有一个 CPU(对于 sql express 2016,最大核心 =4)。因此,如果您的服务器有多个 CPU,它一次只会使用一个 CPU。

  • 使用的最大内存:数据缓冲区最多 1 GB 内存。因此,如果您的服务器有更多 GB 的内存,SQL Server Express 将无法利用它。

  • 数据库大小限制:最大数据库大小限制为 4 GB(sql express 2016 为 10GB)

磁盘I/O速度和内存是sql性能的主要资源之一。由于数据长时间在缓存中,服务器从内存中读取而不是从磁盘中读取。

有助于找到服务器性能瓶颈的方法之一是测量页面预期生命周期 (PLE)。对于具有 4GB 内存的服务器,它应该 >300(但实际上 sql express 使用限制为 1GB)。

PLE 是平均数据页在缓冲池中的秒数。将数据保存在内存中使 SQL Server 可以更快地访问它,而不是进行漫长而缓慢的磁盘访问。这项措施可以让您大开眼界,引导您解决可以解决的问题。你可以通过执行得到:

SELECT  object_name,
counter_name,
cntr_value AS [value]
FROM sys.dm_os_performance_counters
WHERE LTRIM(RTRIM(object_name)) = 'SQLServer:Buffer Manager'
AND LTRIM(RTRIM(counter_name)) = 'Page life expectancy' ;

在 sql express 中,您失去了有助于增强 PLE 计数器的关键资源(内存限制为 1GB)。

您的系统有 20-30 个用户加上 20-30 个以上的系统同时与数据库连接并且它每天 24 小时工作。

最好升级到 SQL Standard Edition 2016,不受内存(最高 128GB)和 CPU/核心(最高 24 核)的限制。

关于c# - 缓慢的 SQL Server 数据库响应时间问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39815290/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com