我有一个 SQL 查询,我需要每秒运行大约 12 个小时。这是一个非常简单的查询,它将一些数据记录到一个孤立的表中。现在我一直让它在我的本地 SSMS 客户端中WHILE循环运行,并且我WAITFOR DELAY '00:00:01'习惯于在每次迭代之间暂停 1 秒。
如果我想将其移动到代理作业中,最好安排作业在这 12 小时内每 1 秒运行一次,还是保持查询原样并在早上启动一次作业,以便查询管理如何通常它会运行。(要记住的一件事是,查询通常足够快,以至于它的运行时间是亚秒级,但很少需要几秒钟才能完成执行。)
我想根本问题是,有一个连续运行 12 小时的工作,还是一个运行大约 43,000 次(每秒一次,持续 12 小时)的工作更好?
我在 SQL SERVER 2008 上,
我想为特定用户启用 SQL 代理,该用户只有对数据库的读取访问权限。我不想给 sysadmin 角色?
有什么办法,我可以做到吗?
我有两个 SQL 代理作业 'A' 和 'B' 作业 'A' 有 10 个步骤,按计划在凌晨 5:00 开始,作业 'B' 有 5 个步骤,它通过在作业的第 3 步中使用触发器开始'A',作业 'B' 应该在作业 'A' 中的第 8 步开始之前完成,但有时作业 'B' 在作业 'A' 中的第 8 步开始时未完成。
所以,我的要求是,我想在第 8 步之前添加一个步骤,因为我想在作业“B”完成后检查作业“B”的状态,然后第 8 步应该开始,否则它不应该开始,它应该等到作业'B'完成
我怎样才能做到这一点?
谢谢你。
我正在使用 SQL 代理来安排过程的执行。
第一次执行该过程时,它运行没有问题。第二次执行作业(步骤)时,它不会完成。
以下 SQL 语句的变体告诉我正在运行的语句是create procedure xyz...(其中xyz是作业应该运行的过程的名称)。
select
prc.loginame,
prc.program_name,
sql.text sql_text
from
sys.sysprocesses prc cross apply
sys.dm_exec_sql_text(prc.sql_handle) sql
Run Code Online (Sandbox Code Playgroud)
我在程序(或其他方式)中没有执行任何 DDL,并且想知道是什么导致作业尝试创建程序以及作业为何挂起?
多年来,一直有一个长时间运行的 SQL 代理作业需要近两个小时才能完成。大约两周前,出于一个小小的突发奇想,决定改变相关数据库的增长率。此后,这项工作在不到 30 分钟的时间内就完成了。改变日志的增长率会强制生成新的执行计划。我只是好奇 SQL Server 内部发生了什么,这会导致更快的运行时间。
谢谢
我已经设置了一个 SQL Server 代理作业来运行 SSIS 包,但它失败并出现错误:
此作业失败。作业由附表 1114 调用。
有谁知道我为什么会收到这个错误?我在网上搜索过,但找不到明确的答案。