小编Kev*_*3NF的帖子

如何跟踪 SSIS 内存和 CPU 性能?

我可能在这个谜题中遗漏了一些部分,但这是我所拥有的:

所有这些都是由一家外部公司为我们编写的。

有一个 .Net 应用程序作为服务器 A 上的服务运行。

在该应用程序中,正在调用 SSIS 包。DTEXEC?

这些包(总共 37 个)到达两个不同的 SQL Server (B&C),提取一些数据,对其执行计算,然后将结果插入到服务器 C 上的数据库中。

在这 37 个包中,只有少数是我的问题所在。我已经看到了细节,其中有很多很多任务。

.Net 应用程序所在的服务器 A 上没有 SQL Server 组件(数据库引擎或 SSIS),因此这一切都在应用程序内部进行。.Net 使用 1 个 NUMA 节点的 20 个内核,盒子上有 1TB RAM。

此应用程序为 3.0 版本,增加了新功能。2.4(以前的版本)在相同的硬件上运行良好。

要问这个的所有背景:

有什么方法可以在 .Net 应用程序中的 SSIS 包中找到性能不佳的 T-SQL?还是我在等式中遗漏了一些非常明显的东西?
它归结为:“计算/T-SQL 实际运行在哪里”(A 与 B/C)以及如何在 .Net 空间内跟踪/调整它们?

Profilersp_whoisactive等都指向 SQL 实例。这一切都只发生在 .Net 应用程序中,除了从 B 中选择数据并在计算后插入到 C 中的小例外。所有网络、磁盘等都运行良好。我正在寻找一种可以访问 .Net SSIS 的调优工具(如果存在这样的东西)。

这绝对是一个调整问题,但 Profilersp_whoisactive等显示的时间可能不超过 3 秒,最远低于 1/2 秒或更短。我对 .Net 不太了解,不知道这些 …

performance sql-server ado.net ssis

7
推荐指数
1
解决办法
2903
查看次数

SQL Server 的 OPENXML 问题

我是 OPENXML 的新手,并且有 90% 的我想做的工作......坚持这个:

<ReportHost name="411.114.42.42">
  <HostProperties>
    <tag name="HOST_END">Wed Nov 11 20:48:43 2015</tag>
    <tag name="LastAuthenticatedResults">8675309</tag>
    <tag name="Credentialed_Scan">true</tag>
    <tag name="policy-used">AWT v6</tag>
    <tag name="ssh-auth-meth">MyPassword</tag>
    <tag name="ssh-login-used">MyLogin</tag>
    <tag name="local-checks-proto">ssh</tag>
    <tag name="host-ip">411.114.42.42</tag>
    <tag name="HOST_START">Wed Nov 11 20:00:01 2015</tag>
  </HostProperties>
</ReportHost>
Run Code Online (Sandbox Code Playgroud)

我想要的结果:

Wed Nov 11 20:48:43 2015
8675309
TRUE
AWT v6
MyPassword
MyLogin
ssh
411.114.42.42
Wed Nov 11 20:00:01 2015
Run Code Online (Sandbox Code Playgroud)

我可以获取名称值(“Host_end”等),但不能获取内容。

我的查询:

Select   * 
from OPENXML (@hdoc,'/ReportHost/HostProperties/tag',1)
WITH (
    name varchar (500)
     )
Run Code Online (Sandbox Code Playgroud)

如果可能的话,我想坚持使用 OPENXML,因为我只是花了一天的时间学习它并进入最后一步。

如果我提供了足够的信息,请告诉我。

xml sql-server

3
推荐指数
1
解决办法
262
查看次数

T-SQL 优化

如果答案是“不”,我可以接受...

我想看看这是否可以优化......它是更大的存储过程的一部分。CGCode是 varchar(50),Year并且MonthsmallintFEINchar(9)

select max(id)
from Table
where 1=1
    and cgcode = 123
    and datefromparts(cast(year as char(4)),cast(month as char(2)),'01') < getdate()
    and totalcount > 0 
group by cgcode, year, month, fein
Run Code Online (Sandbox Code Playgroud)

实际执行计划的逻辑读取:1,566,473

源表原始数据 3200万+条记录

估计行数:640K,实际 55K,在 Group By 开始之前

上的隐式转换警告Year/Month/CGCode(作为bigint

执行时间大约为 7.5 秒,执行非聚集索引查找:

在此处输入图片说明

最终结果集是 114 行(为此,CGCode我们测试...其他各不相同)

Prod 的性能在比 Dev box 明显更好的硬件上大致相同。随着时间的推移,这只会变得更糟,因为它会提取比当前月份更旧的所有内容,以在 UI 中填充历史图表。

我还能提供哪些其他信息?

粘贴计划

当前使用的索引:

CREATE NONCLUSTERED INDEX [COIX_Table_TotalCount] ON [dbo].[Table]
( …
Run Code Online (Sandbox Code Playgroud)

performance sql-server sql-server-2014 query-performance

3
推荐指数
1
解决办法
158
查看次数