问题标签 [sql-agent-job]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
6755 浏览

sql-server - 为什么 DBCC SHRINKFILE 在数据库作业中工作不一致?

DBCC SHRINKFILE当我在日志文件上手动运行它时,它总是有效,即使我收到以下消息:

但是,当我从作业中运行它时,它只会将日志缩小大约三分之一的时间。其他时候,它仍然很大(大约 150Gb)。除了上面列出的错误之外,从来没有任何错误。这是我使用的语句:

我在作业步骤上启用了“在历史记录中包含步骤输出”。我还能做些什么来获得更多关于为什么这不起作用的信息?

编辑:这是日志中的完整消息:

我已经尝试将用户踢出数据库并将其设置为单用户模式。

0 投票
2 回答
4277 浏览

sql-server - SQL 代理作业 - 作为队列执行

我有一个使用 sp_start_job 调用其他 10 个作业的 SQL Server 作业。该作业有 10 个步骤,每个步骤都再次调用子作业。

当我执行主要作业时,我可以看到它从第 1 步开始,几秒钟后它显示“已成功完成”。

但是这些作业需要很长时间才能运行,当我验证日志信息时,它显示所有 10 个步骤都在后面同时运行,直到几个小时后完成。

我的要求是它应该先完成第 1 步,然后才能开始第 2 步。

0 投票
1 回答
271 浏览

sql-server - 当创建和调度 sql server 代理作业时,我们应该第一次开始手动运行该作业还是自动启动它

我创建了一个 Sql Server 代理作业并安排它每 10 分钟运行一次。第一次,当它运行时,我们是否需要手动运行一次作业,然后才能按预定时间开始。基本上工作是如何第一次运行的。

此外,当创建作业时,作业的所有者处于禁用状态。这会影响工作的日程安排吗?

0 投票
2 回答
2564 浏览

sql-server - SQL Server 作业(存储过程)跟踪

我需要你关于追踪问题的建议。

我们在清晨运行数据加载作业,并将数据从 Excel 文件加载到 SQL Server 2005 db。当作业在生产服务器上运行时,很多时候需要 2 到 3 个小时才能完成任务。我们可以深入到一个工作步骤,它需要 99% 的总时间才能完成。

虽然在登台环境(恢复了相同的生产数据库)上运行作业步骤(存储过程)需要 9 到 10 分钟,但在生产服务器上作为作业的一部分在清晨运行时同样需要数小时。生产服务器总是在工作步骤中停滞不前。

我想在工作步骤中运行跟踪(在工作步骤中的 while 循环中为每个用户运行大约 10 个存储的过程)并收集信息以找出问题。

SQL Server 2005 中有哪些可用的方法来实现相同的目标?我只想为这些 SP 运行跟踪,而不是在生产服务器上运行特定时间段,因为跟踪提供了大量信息,而且我(因为不是 DBA)很难分析那么多跟踪信息并弄清楚问题。所以我只想收集有关特定 SP 的信息。

让我知道你的建议。

感谢您的时间和帮助。

谢谢。

0 投票
3 回答
2112 浏览

sql-server - INSERT INTO results_table EXEC sproc 从计划的作业中

我正在尝试设置一个计划的作业,该作业只需一步即可将存储过程中的结果插入表中。

作业执行并报告成功。然而没有任何东西被插入到表中。当我从 SSMS 执行相同的脚本时,会插入结果。什么可能导致问题?

** 编辑作业归 sa 所有,步骤作为 dbo 执行。历史记录中的所有运行都报告为成功完成。我尝试将步骤更改为

它的行为方式类似

** 编辑仅当我从主数据库中选择时才会出现问题。从其他表中选择工作正常。

0 投票
5 回答
479 浏览

sql-server - SQL Server - 每天自动计算总数

我需要每天统计表中的记录数。

有没有办法每天自动计算记录并将结果写入另一个表?也许使用 SQL 代理作业或类似的东西?

我正在使用 SQL Server 2008。

谢谢!

编辑: 如果我今天删除 2010 年 1 月 1 日的所有记录,统计数据仍需要显示 2010 年 1 月 1 日当天结束时有 500 条记录。因此,仅使用 GetDate() 并进行汇总是行不通的,因为我会在 2010 年 1 月 1 日使用该方法获得 0 条记录。

0 投票
1 回答
64 浏览

sql-server - SQL Server 作业检查 2 个数据库并根据结果采取行动?

我需要检查不同服务器上类似数据库上的 2 个表,如果它们包含相同的信息(或大小、哈希,以检查它们是否相同的最佳方法为准),那么其中一个表应该删除其信息,在每天安排的工作。

这是否可能仅使用 SQL Server Management Studio 中的作业界面?

0 投票
1 回答
588 浏览

sql-server - SQL Server 2000中如何随机设置下一个作业运行时间

这是场景:

我们在 SQL Server 2000 中有一个数据库。连接到该数据库的应用程序随机超时并出现不同的错误。我们已运行跟踪,但未能成功发现超时问题。奇怪的是,每当我们运行跟踪时,应用程序都不会超时。

计划是设置一个作业来运行跟踪。考虑到这是一个生产盒,我们不想太频繁地运行跟踪太长时间。所以这个想法是运行 3 分钟的跟踪。

这是挑战 - 我们希望将下一次运行时间随机化 - 在 10 到 60 分钟之间。我尝试在 msdb..sysjobschedules 中更新 next_run_time,但这似乎没有任何效果。

有任何想法吗?

提前致谢,

拉吉

0 投票
1 回答
911 浏览

sql-server - 无需轮询即可获取 SQL 代理作业状态?

我试图找到一种方法让 SQL Server“SQL 代理”在作业步骤事件上运行一段特定的代码。我曾希望有一种方法可以使用 SMO 注册回调方法,以便在工作步骤开始或更改状态时调用我的代码。我没有任何成功。有什么方法可以将这些事件推送给我,而不是轮询?

0 投票
5 回答
19987 浏览

sql-server - SQL Server 代理 - 获取我自己的 job_id

我正在运行安装了 Service Pack 1 的 SQL Server 2008 64 位开发人员版。我有一个 SQL Server 代理作业。在这份工作中,我想获得我自己工作的 job_id。
在 MSDN ( http://msdn.microsoft.com/en-us/library/ms175575(v=SQL.100).aspx ) 上,您可以找到在作业步骤中使用令牌的说明。哇,太好了,这就是我要找的!只需使用(JOBID)。
从 SQL Server 2005 SP1 开始,您必须使用像 $(ESCAPE_NONE(JOBID)) 这样的宏。没问题。
但是,如果您尝试以下示例:

你得到:
'ESCAPE_SQUOTE'附近的语法不正确。(Microsoft SQL Server,错误:102)
好的,现在从头开始:

结果为 0xE33FE637C10B3C49A6E958BB3EF06959 但 job_id 为 37E63FE3-0BC1-493C-A6E9-58BB3EF06959
我认为“N'”隐式转换为(JOBID)的 NVARCHAR ......
好吧,我想我必须关心(乔比)。在第 168/169 页的“SQL Server 2008 管理”一书中,还有一个使用 (JOBID) 的示例:

结果:
'('附近的语法不正确。(Microsoft SQL Server,错误:102)
我现在完全糊涂了。请有人帮我提供一个好的建议或解决方案。感谢各种帮助。

最好的问候赫尔穆特