C# 数据库调度操作

C# 数据库调度操作,c#,sql,sql-server,C#,Sql,Sql Server,我写了一个餐厅管理应用程序。 我有一个基于SQLServer2005的数据库,其中有一个名为OrdersItems的表。每5分钟我想读取此表的所有行,并根据特定条件更新一些字段 我不想在我的主应用程序中这样做,我更希望有一个替代引擎来执行此操作 哪种方法是执行此任务的最佳方法?还要注意,此表(OrdersItems)每次都在处理中,因为主应用程序必须始终运行并获取新的餐厅订单。您可以每五分钟更新一次 如果您使用的是SQL Server Express edition,则不能使用SQL Serve

我写了一个餐厅管理应用程序。 我有一个基于SQLServer2005的数据库,其中有一个名为OrdersItems的表。每5分钟我想读取此表的所有行,并根据特定条件更新一些字段

我不想在我的主应用程序中这样做,我更希望有一个替代引擎来执行此操作

哪种方法是执行此任务的最佳方法?还要注意,此表(OrdersItems)每次都在处理中,因为主应用程序必须始终运行并获取新的餐厅订单。

您可以每五分钟更新一次

如果您使用的是SQL Server Express edition,则不能使用SQL Server代理,因为它仅包含在“更大”的SQL Server版本中。
在这种情况下,请使用批处理文件和Windows任务计划程序

你可以每五分钟更新一次

如果您使用的是SQL Server Express edition,则不能使用SQL Server代理,因为它仅包含在“更大”的SQL Server版本中。

在这种情况下,请使用批处理文件和Windows任务计划程序

我认为SQL任务/维护计划是最好的

您可以为您想要的任何时间间隔设置它们,指定SQL语句、维护任务等


例如,如果您想知道它何时失败,您还可以设置警报等。

我认为SQL任务/维护计划是最好的

您可以为您想要的任何时间间隔设置它们,指定SQL语句、维护任务等


例如,如果您想知道它何时失败,您还可以设置警报等。

在服务器上部署一个cron作业,该作业可以访问数据库,该数据库每5分钟启动一次,并使用事务处理您的数据。我发现了一个问题:如果要处理的数据量很大,它可以工作5分钟以上。

在服务器上部署一个cron作业,该作业可以访问数据库,数据库每5分钟启动一次,并使用事务处理数据。我发现了一个问题:如果要处理的数据量很大,它可以工作五分钟以上。

我完全同意Christian和dougajmcdonald关于使用SQL任务/维护的观点。但是,由于您在标记中包含了一个替代方法,因此可以创建一个Windows服务

这种方法的好处

  • 可以在未安装SQL Server代理的计算机上运行(包括express Edition)
  • 可以在用户登录的上下文之外运行
  • 具有众所周知的标准停止-启动-暂停-继续机制
  • 如果服务本身失败,则可能会导致事件日志

包含定期获取数据并执行的windows服务的模板。您可能只想更改
DoStuff
方法来执行存储过程

我完全同意Christian和dougajmcdonald关于使用SQL任务/维护的观点。但是,由于您在标记中包含了一个替代方法,因此可以创建一个Windows服务

这种方法的好处

  • 可以在未安装SQL Server代理的计算机上运行(包括express Edition)
  • 可以在用户登录的上下文之外运行
  • 具有众所周知的标准停止-启动-暂停-继续机制
  • 如果服务本身失败,则可能会导致事件日志

包含定期获取数据并执行的windows服务的模板。您可能只想更改
DoStuff
方法以执行存储过程

创建一个并让它成为一个存储过程。它的优点是完全包含在数据库中(无外部进程),不需要SQL代理(在Express上运行),并且在数据库分离/连接和备份/还原操作后仍能保持完整的崩溃恢复能力(计划作业将在新还原的数据库上恢复后运行)。它的优点是完全包含在数据库中(无外部进程),不需要SQL代理(在Express上运行),并且在数据库分离/连接和备份/还原操作后仍能保持完整的崩溃恢复能力(计划作业将在新还原的数据库上恢复后运行).

您使用的是Express edition还是其他版本?您使用的是Express edition还是其他版本?cron作业在C#\SQL Server解决方案中并不常见cron作业在C#\SQL Server解决方案中并不常见谢谢,我对这种方法感兴趣,但我想知道这种方法会在多大程度上降低数据库性能?正如我前面提到的,这个表总是在处理中。就数据库性能而言,我认为使用哪种技术(对话计时器、SQL代理、窗口服务、cron作业)并不重要。无论使用哪种方法,都需要优化Update语句。谢谢,我对这种方法感兴趣,但我想知道这种方法会降低数据库性能多少?正如我前面提到的,这个表总是在处理中。就数据库性能而言,我认为使用哪种技术(对话计时器、SQL代理、窗口服务、cron作业)并不重要。无论使用哪种语句,都需要优化Update语句。