- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
也许很傻,但这让我感到困惑。我们有两个服务器盒,一个用于SSIS集成服务(IS),另一个专用于SQL Engine托管数据仓库。我们的工作是在IS框上调用SSIS包,以将数据从另一台远程服务器加载到数据仓库服务器上。
那么,源数据是否首先通过Integration Service Server(在内存中?sis数据库中?),然后又到达目标数据库服务器上?或Integration Service只需调用db服务器的过程即可直接加载源数据,而无需通过IS服务器。如果是以前的话,将IS和数据仓库放在同一台服务器上应该有助于吞吐量?
后续问题。那么什么/如何监视和排除数据流故障?例如,如果我正在加载一张巨大的桌子,它有时会挂起。作业正在正常运行,但很长时间以来我看不到目标服务器上的插入 Activity 。我从哪里开始寻找。观看IS服务器上的网络 Activity ?
最佳答案
在专用服务器上执行的程序包将要求将所有数据传送到该服务器,并将其推送到远程服务器。
取决于您如何配置SQL Server主机,这可能是一件好事。 SQL Server将使用X数量的内存,并一直保留到服务循环为止。 SSIS加速运转,完成工作并释放资源。如果为操作系统分配了8 GB的RAM,而SQL Server获得了剩余的N GB,则集成服务只能使用6ish GB的内存。 SSIS通过大量使用和滥用内存来发挥其强大的变革能力。将一对排序,合并联接和其他一些内存碎片运算符拖到您的数据流中,然后您便迅速将内存降级为零。
如果您改为在ETL框中执行所有转换逻辑,则不必担心会影响SQL Server和主机OS,直到您开始将它们插入目标表中为止。
只要将数据从A序列化到B和将B序列化到C的成本小于直接将数据从A传输到C的成本乘以2,并乘以任意的软化系数来进行最终的内存争用,我就不会发现问题它。一个更具体的例子(从A到C的光纤通道HBA,但B通过10-BaseT连接)。对于任何数据量,往返于B的连接都将对处理造成极大的拖累。
数据流卡住或显示为无响应
首先,我希望只是感觉到它被卡住了,您实际上并没有在VS中打开该程序包并“监视”它的运行。在Visual Studio中运行包会增加调试器的负担。 Shift-F5,使用dtexec从命令行运行它,或通过SQL Agent / Windows Scheduler / Tidal / ActiveBatch / etc调度作业,以获得“真正的”性能。另外,除非需要仅在32位空间中存在的驱动程序,否则请确保使用的是64位版本的dtexec。
至此,我假设您有一个通过非繁琐机制在ETL Server上执行的程序包。它正在运行,但是您不知道发生了什么,只是没有完成。我们可以将其视为黑匣子,我建议您打开本机SSIS日志记录。登录到SQL Server表(该文件可以工作,但是您必须对该文件做些事才能获得任何见解)。默认情况下,我在程序包部署模型/ SQL Server 2012之前的版本中登录OnPreExecute / OnPostExecute / OnWarning / OnError / OnInformation / OnTaskFailed。
记录这些事件后,我可以看到任务何时开始和完成。我将看到它正在使用的配置以及可能遗漏的内容。发生了什么错误(任务Y失败),可以改进的内容(数据流中不需要列X),可能是逻辑错误(在完全缓存模式下,查找Z遇到重复的键)等。
那不会告诉我数据流中各个组件之间发生了什么。为此,我需要记录不同的事件。在2005年的环境中,我唯一的技巧是OnPipelineRowsSent事件。在2008年以后的版本中,我们可以使用一些新事件(Pipeline *),但我还没有完成研究,看看它们是否可以提供与OnPipelineRowsSent相同的信息。
因为我很懒,所以我会使用OnPipelineRowsSent,因为我已经准备好查询来解析该数据并弄清楚我的减速情况在哪里。该事件可能很容易发生,因此仅在需要时才打开。
那是我的黑匣子路线。您不必这样做。您可以看到您的程序包在做什么,并且您知道数据。
是否存在LOB数据类型? SSIS可以完成内存中的所有操作。流水线计算出理论上每行可以占用多少内存,并计算一次可以处理多少数据。大型对象类型(图像/文本/ varX(max))使计算陷入困境,因此在幕后,SSIS可能正在创建一个很小的(或不是那么小的)二进制文件来保存LOB数据并在数据中携带一个指针流任务。所有这些磁盘 Activity 都会降低性能。
您的数据流中是否有asynchronous components?这会使您的转换速度变慢。
您的数据源狗慢吗(就像Web服务一样)?也许您需要减小缓冲区大小。
或者,如果您有SQL Server源,则可能只需要尽快将一些数据放入管道中,因此fast 10000技巧可能会有所帮助。
也许您的OLE DB目标使用Table或View的2005默认数据访问模式。那就是在目标系统上执行单例插入。
同样,您的数据流中是否包含OLE DB Command
?这也触发了单例操作。
这些查询怎么样-您是否回退了比查询所需的更多列?那是在浪费记忆。您是否需要拉出所有年份的所有销售额,或者是否还可以按当年/滚动N个月等来筛选这些查询?
目标系统有多忙? SSIS可以在目标上获得表锁吗?
相对于当前大小,您要装载多少数据到目标表?该表上有多少非聚集索引。 SQLCAT有一个经验法则-1个NCI和100%的数据增加;删除并重新创建索引。超过1个NCI和大约10个数据加载,删除和重新创建。切勿丢弃集群密钥。 (这些值是近似值,应根据您的系统进行验证)
最后,安装sp_whoisactive并安装它,从文件中删除创建/更改,然后以“内联”方式运行它,并查看目标服务器和源系统(如果是sql server)发生了什么,否则请找到一个等效的工具来监视并确保您的连接仍然有效,未被阻止等。
关于ssis - 数据是否通过SSIS服务器流到目标数据库服务器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25085959/
我创建了一个基于命令行可移植脚本的工业化不可知构建系统,可用于快速构建多个依赖项目,而不必依赖特定的 IDE 或构建工厂。它是不可知的,因为它不是基于单个构建引擎。我使用 cmake 创建了第一个版本
我最初使用 Java 目标开发了一个语法(用于 TestRig 支持),然后将其移植到 Python(从 git hub 语法存储库扩展了 Python3 语法,因此需要将操作移植到 Python
我有一个以 iPhone 和 watchOS 为目标的 Xcode 项目。 iPhone 目标使用加速度计,模拟器不支持。我可以只启动 iPhone 应用程序而不启动 watch 目标吗?我从: Ca
您好,我想创建一个批处理文件,用于在 .eml 文件(目标 A)中查找某些关键字,然后删除它们所在的行。之后,我需要批处理文件将"new"文件放入(目标 B)中的单独 .eml 文件中。文件也可以是
当尝试通过 IntelliJ 运行示例 CorDapp (GitHub CorDapp) 时,我收到以下错误: Cannot inline bytecode built with JVM target
我在尝试向我的 kotlin spring 项目添加一些依赖项时遇到问题。我使用 spring boot 初始化程序来运行一个基本项目。 我的问题:如果我取消对 jackson 或 Koin 依赖项的
这是有问题的网站: http://www.onepixelroom.com/londonrefurb 当我点击关于部分后面的多个圆圈时,我希望它更改上面文本中的引号。 到目前为止,我得到它来显示 文本
单击后,我将删除两个元素 $(this) 和 $("#foo")。 目前我的代码如下所示: $(this).remove(); $("#foo").remove(); 如何在不重复自己的情况下优化它?
我有一个小脚本,可将 Markdown 文件编译为 html,并将其与一些样式表和 javascript 一起插入到模板的主体中。我有一个 GNU makefile 来完成这个: output.htm
已关闭。此问题需要 debugging details 。目前不接受答案。 编辑问题以包含 desired behavior, a specific problem or error, and the
一些背景知识: 在android中我们开发了同样的应用,基本上我们先开发了Android应用,现在我们创建了它的IOS版本,所以这个应用有多个客户端。在 android 中,我们实际上是使用 Andr
我想知道是否可以使用 knockout 来更改html中的目标() 我的所有其他信息都在 JavaScript 中,所以这对我来说是一个大问题。这是我的 JavaScript: var library
这个问题在这里已经有了答案: Selecting and manipulating CSS pseudo-elements such as ::before and ::after using j
我在我的有向图中添加了一堆节点和顶点,使用设置 typedef boost::adjacency_list graph; 创建 Node有一个节点名称字符串,Edge它的分数有一个整数。我试图遍历所有
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 这个问题似乎与 help center 中定义的范围内的编程无关。 . 关闭 8 年前。 Improve
如何存储我在 NSUserDefaults 中创建的 Goal 类型的对象数组? ( swift ) 代码如下: func saveGoalList ( newGoalList : [Goal] ){
Array.prototype.indexOf 和 Date.now 已在 ES5 中引入。如果我编译存储在文件 test.ts 中的以下代码,为什么 Typescript 不能转译? Date.no
我正在阅读有关属性的内容,并了解到可以使用您的代码将它们应用于不同的目标实体 -(请参阅 Attribute Targets)。 因此,查看我项目中的 AssemblyInfo.cs 文件,我可以看到
给定一个 Makefile: all: build/a build/b build/c # need to change this to all: build/* build/a:
我有一个带有多框架目标的项目- netstandard2.0;net471 . 我想为 netframework 构建解决方案和 netstandard分别。 目前我使用这个 MSBuild 命令:
我是一名优秀的程序员,十分优秀!