使用存储过程延迟使用c#(或)延迟?

时间:2014-11-08 21:10:08

标签: c# sql

在我的应用程序中,插入到sql表中的记录必须在10秒后删除。是否最好在c#代码中延迟执行,或者我可以在延迟的存储过程中执行此操作吗?

在我的情况下,流量很高,就像每秒有数千条记录被插入到db中,需要以上述方式处理(每条记录在插入后10秒后应该完全删除) 。如果我使用存储过程延迟,会对性能产生影响吗?

3 个答案:

答案 0 :(得分:2)

如果用户可以在10秒钟之前关闭程序,C#可以执行删除,我会使用存储过程。此外,这样的事情是面向数据完整性的,并且大多数人都认为这样的事情应该保留在数据库中(大多数时候)。

只要您在日期字段上建立索引,删除速度应该非常快,除非您锁定表格或其他内容,否则不应该有性能损失

答案 1 :(得分:2)

我会使用job删除10秒之前的记录(不喜欢单词延迟,听起来就像线程在那里,等待)

答案 2 :(得分:1)

我会考虑避免将此作为存储过程或C#中每条记录的延迟。相反,有一个定期运行的作业并删除超过10秒的所有记录。根据您的需求的严格程度,您可以安排作业每秒或每几秒运行一次。

另一件需要考虑的事情是:如果目标是避免显示超过10秒的记录,那么请在查询中加上该限制,并且不要在10秒内选择任何内容。您还可以使用视图仅显示<10秒旧的记录。然后安排作业运行频率较低或仅在活动较少时运行。