带有 SQL Server 2019 Express 的 Windows Server 2019 上的 Hangfire
Posted
技术标签:
【中文标题】带有 SQL Server 2019 Express 的 Windows Server 2019 上的 Hangfire【英文标题】:Hangfire on Windows Server 2019 with SQL Server 2019 Express 【发布时间】:2021-11-29 23:17:58 【问题描述】:我正在尝试迁移到新的托管服务提供商,但我在让我的网站运行时遇到了真正的困难。它在应用程序启动时使用 Hangfire 来运行一些后台作业,同时还在主线程上提供网页。
该网站似乎适用于第一个页面加载,然后后续访问无法运行相当复杂的实体框架搜索查询。
这是现有机器上的服务器配置,通过 SQL Server 的select @@version
命令:
Microsoft SQL Server 2017 (RTM-GDR) (KB4583456) - 14.0.2037.2 (X64) Nov 2 2020 19:19:59 Copyright (C) 2017 Microsoft Corporation Standard Edition (64-bit) on Windows Server 2016 Standard 10.0 <X64> (Build 14393: )
Hangfire
架构
其他应用程序表,其中表使用 dbo
架构
这是新机器上的服务器配置,通过 SQL Server 的select @@version
命令:
Microsoft SQL Server 2019 (RTM) - 15.0.2000.5 (X64) Sep 24 2019 13:48:23 Copyright (C) 2019 Microsoft Corporation Express Edition (64-bit) on Windows Server 2019 Standard 10.0 <X64> (Build 17763: ) (Hypervisor)
在新服务器上,我拥有完整的 RDP 访问权限,因此可以在这台机器上安装我喜欢的任何软件。但是,对于像我这样的小网站来说,SQL Server 标准版非常昂贵。
是否存在阻止实体框架查询在使用 SQL Server Express 的新 Windows Server 2019 机器上运行的问题?该组合是否不允许数据库使用多个模式,或者该组合是否存在我可能不知道的其他限制?
在我的本地 Windows 10 机器上使用 SQL Server Express 运行网站运行良好。
我非常感谢任何帮助,因为我正在拔掉我头上留下的小头发!
【问题讨论】:
您提出的所有问题都可以通过尝试自行回答 - 安装 SQL Server Express 或使用与 Visual Studio 一起安装的那个。虽然没有限制。 SQL Server 版本are documented 的区别主要在于性能和高可用性(集群、在线操作等) 【参考方案1】:感谢您的帮助,但最终问题比我预期的要简单得多。我认为这是一个权限问题,但实际上这只是一个简单的性能问题。
在新服务器上运行 SQL Express 失败,因为计算机没有足够的 RAM。它只有 4GB 的 RAM,并且通过托管服务提供商安装的 Plesk 和其他软件,可用 RAM 减少到只有几百 MB。
在旧服务器上需要几毫秒才能返回的一些简单查询可能需要 2 分钟以上才能在 RAM 有限的新服务器上返回。
将 RAM 增加到 8GB 解决了大部分问题,尽管在旧服务器上使用 SQL Express 仍然比 SQL 标准版慢得多,而且仅在这个网站上运行 SQL 标准的成本高得惊人(旧服务器有共享 SQL 标准版安装)。
【讨论】:
您的答案可以通过额外的支持信息得到改进。请edit 添加更多详细信息,例如引用或文档,以便其他人可以确认您的答案是正确的。你可以找到更多关于如何写好答案的信息in the help center。以上是关于带有 SQL Server 2019 Express 的 Windows Server 2019 上的 Hangfire的主要内容,如果未能解决你的问题,请参考以下文章
您如何使用 SQL Server CE 和 SQL Server 2008 Express?
DataTable 到带有实体框架的 SQL Server 表
如何将带有 xml 后代的 XElement 导入 SQL Server
带有 TIMESTAMP 的 SQL Server 中的表连接问题