我正在创建一个数据库医疗系统然后我来到了一个点,我正在尝试创建一个通知功能,我将在其中使用SQL作业,其中SQL工作职责是检查一些表和将要执行的实体发现需要通知某些数据的更改会将其ID放入名为Notification
的实体中,并且会调用触发器来检查该表并发送通知。
我想问的是sql server可以处理多少个SQL作业?
后台运行的SQL作业数是否会以某种方式影响我的应用程序性能或数据库性能?
注意: SQL作业将每10秒运行一次
我无法在线找到任何有用的信息。
提前感谢。
答案 0 :(得分:1)
这个问题确实没有足够的背景来得到明确的答案。有什么考虑?
SET ISOLATION LEVEL READ UNCOMMITTED;
,以便数据库读取不会不必要地锁定内容。)您应该花一些时间在作业中的查询执行计划上,并尽量使它们尽可能高效。添加必要的索引。如有必要,重构查询以提高查询效率。 SSMS将向您显示执行计划并建议适当的索引。
如果您的工作正在执行删除过期行的操作,则可能需要在数据模型中构建过期日期。例如,假设您的工作
DELETE FROM readings WHERE expiration_date >= GETDATE()
并且您的应用程序执行此操作,依靠您的工作来避免过期读数。
SELECT something FROM readings
您可以重构您的应用程序查询以说明
SELECT something FROM readings WHERE expiration_date < GETDATE()
然后在一个安静的时间,而不是每十秒钟,让你的工作一夜之间完成。
十秒钟的工作并不是世界上最伟大的想法。如果您可以重新设计应用程序,使其能够在10秒,10分钟或12小时的工作中正常运行,那么您将拥有更具弹性的生产系统。无论如何,当你的系统非常繁忙时,如果工作出现问题,你将有超过十秒的时间来修复它。