.net 需要SQL Server/web服务可用性选项

.net 需要SQL Server/web服务可用性选项,.net,sql-server,web-services,.net,Sql Server,Web Services,我有一个应用程序,用于管理超市的客户忠诚度积分。我们有一个支持内部呼叫中心应用程序的数据库,该应用程序已经运行了大约10年,但最近我们还向数据库直接公开了一个web服务层,以支持公共网站,客户可以直接登录并更新其详细信息。该网站由第三方维护,这使得更改更为复杂 现在的问题是,有几个夜间批处理作业可能需要数小时才能运行,并长时间锁定数据库。我的任务是确保web服务不受这些批处理作业的影响。主要工作是从商店导入客户交易并计算忠诚度 我们的环境是sql server 2008/.Net 4 我正在寻找

我有一个应用程序,用于管理超市的客户忠诚度积分。我们有一个支持内部呼叫中心应用程序的数据库,该应用程序已经运行了大约10年,但最近我们还向数据库直接公开了一个web服务层,以支持公共网站,客户可以直接登录并更新其详细信息。该网站由第三方维护,这使得更改更为复杂

现在的问题是,有几个夜间批处理作业可能需要数小时才能运行,并长时间锁定数据库。我的任务是确保web服务不受这些批处理作业的影响。主要工作是从商店导入客户交易并计算忠诚度

我们的环境是sql server 2008/.Net 4

我正在寻找一些关于可能的解决方案和优缺点的建议

到目前为止,我的想法是:

创建数据库的副本,并使用SQL复制保持数据库同步。web服务针对数据库的副本进行操作

专业人士

源数据库上发生的事情之间没有冲突 缺点

必须同步通过web服务发生的更改。 架构更改将导致复制中断 主数据库上发生的任何更新都将被推出,因此仍可能锁定数据库 允许web服务使用NoLock读取数据。可以通过sql代理异步调度来自web服务的更新

专业人士

不太复杂的设置, 缺点

没有设置sql代理的经验,不知道它有多健壮。 意外事件仍然会锁定数据库并关闭网站 调整长时间运行的进程,确保它们没有锁定数据库

专业人士

这将是风险最小的选择。其中一个表包含数亿行数据和一个复合主键,因此我觉得将标识作为PK应该可以减少锁升级等。 缺点 -当这些特定作业运行时,可能总是会有某种程度的锁定

拆分web服务以分离可能受批处理作业影响的web服务。以不同的方式对待这些问题

听起来是一个不错的选择,我只需要确定处理这些受影响的web服务的最佳方法,即读写。