- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我面临一个非常奇怪的问题,与在 SSMS 中手动运行相比,通过 SSIS 包(通过 SQL 代理作业运行)存储过程运行速度非常慢。
通过作业,大约需要 2 小时,而手动运行只需 30 秒!
完全相同的存储过程并在同一服务器上运行。
这是SSIS包中的流程结构:
相关存储过程的名称是BR_SHP_Timekeeper_Costs
。
同名的执行SQL任务
使用ADO.NET连接管理器
并运行:
EXEC BR_SHP_Timekeeper_Costs @p1, @p2
正如您所看到的,该任务通过优先级约束“链接”,以便它可以自行运行,即不会与其他任务竞争。
我注意到,在包执行期间(通过 SQL 代理),当它执行该任务时,我可以在事件监视器中看到大量 CXPACKET 等待类型,并且 CPU 正在运行 97-99%。
仅供引用,服务器有 8 个 vCPU,MAXDOP 设置为 0,并行成本阈值设置为 5
到目前为止,我已经尝试/调查/发现了以下内容:
此存储过程只有 1 个缓存执行计划,并且由 SSIS 和 SSMS(手动运行存储过程)使用
创建了一个运行 T-SQL 的虚拟 SQL 代理作业 - EXEC BR_SHP_Timekeeper_Costs
。该作业在大约 30 秒内完成。
创建了一个虚拟 SSIS 包,其中仅包含执行 SQL 任务并使用 ADO.NET 连接管理器运行相同的存储过程。然后通过新的 SQL 代理作业运行它。约 30 秒内完成。
这里我还能检查什么?
有什么想法为什么会发生这种情况吗?我已经挠头一个星期左右了..
最佳答案
也许您可以尝试将参数@p1和@p2分配给存储过程中定义的两个变量,然后使用这些变量而不是参数。例如:
ALTER PROCEDURE BR_SHP_Timekeeper_Costs
@p1 int,
@p2 int
AS
declare @_p1 int, @_p2 int
set @_p1 = @p1
set @_p2 = @p2
....
....
select column1, column2 from table t where t.p1 = @_p1
....
....
在某些情况下,此解决方法可以加速执行。
希望对你有帮助!
关于sql-server - 与通过 SSMS 手动执行相比,通过 SSIS(通过 SQL 代理作业)存储过程运行速度慢 24,000%,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44086647/
我在 SQL Server 上使用深色模式,我尝试更新对象资源管理器菜单的字体和颜色,但我似乎无法从“选项”>“字体和颜色”中找到更新菜单颜色的适当设置。 这是在对象资源管理器中右键单击对象时我的菜单
我遇到过一个实例,我创建了一个新的查询窗口,右键单击以连接到服务器并找到以下选项: 最佳答案 来找出发生这种情况的原因是因为我从一个多实例注册服务器创建了新的查询窗口,如下所示: 只需确保从单个实例化
标题可能有点误导,所以让我澄清一下:我不想知道如何重命名连接字符串或数据库名称。我想知道的是如何在 SQL Management Studio 中为我的数据库连接创建友好标签? 例如我有以下连接: 我
在Visual Studio中,当我选择任何文字时,它将突出显示同一文字的所有出现。 SQL Server Management Studio中是否有类似的功能。 假设我的脚本中有My_Temp_Ta
我在 Windows 7 上使用 SQLServer 2008 R2 Management Studio (10.50.2500.0)。 突然,执行查询的键盘快捷键停止工作。 CTRL-E 命令仍然有
最近我发现,有一个选项可以通过单击 SSMS 工具栏上的按钮来包含要执行的最常用查询。 您可以按照以下步骤操作: 鼠标右键单击工具栏 点击自定义 创建新工具栏 修改一下 添加命令 在查询类别下,可以选
我刚刚从 SSMS 2005 升级到 2012。以前,我可以按 CTRL+R,查询结果窗口就会消失。 升级到 SSMS 后,我运行了一个查询,并出于习惯,按下了 CTRL+R。什么都没发生。在 SSM
我创建了一些 SQL 代码片段,并将它们导入到 SSMS 2016 的“我的代码片段”文件夹中。这工作得很好。 现在我已将片段组织到文件夹中。然后,我已成功将文件夹树添加到代码片段管理器中: 也可以通
我需要从连接到 (localdb)\myinstance 的命令行启动 ssms (SQL Management Studio)。实例存在 sqllocaldb info myinstance 但是将
当我通过 SSMS 浏览多维数据集时,我是否有机会看到生成的查询?我想我可以在数据库上运行跟踪来捕获它,但只是想知道是否有更简单的方法。 谢谢 最佳答案 我不确定 SSMS(trace 除外),但有一
我最近升级到 SSMS 2016 并且我在 2014 年使用的 Redgate 工具仍然存在,但在 2016 年丢失了。我需要卸载并重新安装 Redgate 吗?如果是这样,我需要在这样做之前停用我的
我已将 SSMS 更新到 v18.5,然后卸载 SQL Search,下载最新的并安装。 SSMS 已启动,我单击“SQL 搜索”按钮 - 没有任何错误/异常,但 SQL 搜索未启动。 我在 2 个工
我一直在尝试使用门户中找到的服务器名称通过 SSMS 连接到 AZure 分析服务。然而,有两件事很奇怪:在 SSMS 中,Windows 身份验证呈灰色,并且还导致我出现如下错误。有什么指导吗? 最
我一直在尝试使用门户中找到的服务器名称通过 SSMS 连接到 AZure 分析服务。然而,有两件事很奇怪:在 SSMS 中,Windows 身份验证呈灰色,并且还导致我出现如下错误。有什么指导吗? 最
我创建了一个 SSMS 加载项(使用 Visual Studio 2010 (C#)),它将已执行的 SQL 脚本存储到本地计算机上的文本文件中。我想对查询输出做同样的事情,但找不到涵盖此内容的任何资
是否可以通过 SQL 打印命令更改消息 Pane 输出中 SQL Server Management Studio (SSMS) 中使用的默认字体颜色(颜色)? IF @@TRANCOUNT>0 BE
当尝试在 SSMS - Sql Server 中查看生成的 XML 时,我们在弹出窗口中收到以下错误消息。 Microsoft SQL Server Management Studio Unable
在 SQL Server Management Studio 2017 中,当我创建新图表并向图表添加新表(或添加现有表)时,我无法将 TableView 类型更改为自定义。 此外,当我修改 Tabl
我正在尝试使用 Azure Key Vault 设置一个新的 Always Encrypted 数据库(我之前已经使用过)。在 SSMS Always Encrypted Wizard 中,我可以选择
我的电脑最近崩溃了,我正在重新安装东西。 我想导入我以前 PC 上的注册服务器列表。我有 RegSrvr.xml文件来自 G:\Users\\AppData\Roaming\Microsoft\Mic
我是一名优秀的程序员,十分优秀!