带有 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: )

共享操作系统(不确定这是什么) SQL Server 2017 - 标准版 .NET Framework 4.8 Hangfire 使用 SQL Server 存储,表使用 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)

Windows 服务器 2019 SQL Server 2019 - 速成版 .NET 框架 4.7,。 (根据 Plesk,虽然我已经安装了 4.8)

在新服务器上,我拥有完整的 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 中的表连接问题

带有 SQL Server 后端更新的 MS Access 失败且没有错误

SQL Server:带有内部 SELECT 和子 SELECT 的 SUM()。每次都出错