sql 服务器可以处理多少 SQL 个作业?

How many SQL jobs a sql server can handle?

我正在创建一个数据库医疗系统,然后我尝试创建一个通知功能,我将在其中使用 SQL 个工作岗位,其中 SQL 个工作职责是检查一些 tables 并且发现需要通知某些数据更改的实体将把它们的 id 放在一个名为 Notification 的实体中,并且应用程序将调用触发器来检查 table 并发送通知。

我想问的是 sql 服务器可以处理多少 SQL 个作业?

后台 运行ning SQL 作业的数量是否会以某种方式影响我的应用程序性能或数据库性能?

注意: SQL 作业将 运行 每 10 秒

我在网上找不到任何有用的信息。

提前致谢。

这个问题确实没有足够的背景来获得明确的答案。有哪些注意事项?

  1. 您的 10 秒作业中的查询实际上是否在 10 秒内完成,即使您的 DBMS 处于其峰值事务工作负载下?显然,如果工作通常不能在 10 秒内完成,您就会收到堆积如山的工作。
  2. 您作业中的查询是否锁定了表 and/or 索引,因此事务负载无法 运行 有效? (您应该尽可能多地使用 SET ISOLATION LEVEL READ UNCOMMITTED;,这样数据库读取就不会不必要地锁定东西。)
  3. 您工作中的查询是否执行大量行的插入和更新操作,因此淹没了 SQL 服务器事务日志?
  4. 你的服务器有多大? (CPU 个内核?RAM?IO 容量?)您的数据库有多大?
  5. 如果你的项目成功了,获得了很多用户,你对以上问题的回答是否会保持不变? (提示:没有。)

您应该花一些时间在您工作中查询的执行计划上,并尽量使它们尽可能高效。添加必要的索引。如有必要,重构查询以提高效率。 SSMS 将向您显示执行计划并建议适当的索引。

如果您的工作是执行诸如删除过期行之类的操作,您可能希望在数据模型中构建过期时间。例如,假设您的工作

 DELETE FROM readings WHERE expiration_date >= GETDATE()

并且您的应用程序会这样做,依靠您的工作来避免获得过期的读数。

 SELECT something FROM readings

您可以将您的应用程序查询重构为 say

 SELECT something FROM readings WHERE expiration_date < GETDATE()

然后 运行 你的工作在一个安静的时间过夜,而不是每十秒一次。

十秒钟的工作并不是世界上最伟大的想法。如果您可以重新设计您的应用程序,使其能够在十秒、十分钟或十二小时的工作中正常运行,您将拥有一个更具弹性的生产系统。无论如何,如果在您的系统非常繁忙的情况下工作出现问题,您将有超过十秒的时间来修复它。