何时选择在 SSIS 的 Lookup 组件中进行缓存

2024-02-27

在SSIS查找中有3种类型的缓存。 完整、部分和无缓存。

在我们的解决方案中,它一直使用默认的(完整)。是否有任何特定的场景,可以使用部分缓存/无缓存? 在我们的解决方案中,锁定表总是很小(例如:-我们一直在查看小表来获取类型或获取描述)。这可能是它在默认(完整缓存)模式下配置的原因?

请将宝贵的建议和意见告诉我。


让我们介绍一下基础知识。

完全缓存 - 在实际执行数据流之前,完全缓存模式下的所有查找组件都将针对其源运行查询并在本地缓存所有数据。一旦数据流开始,这些转换的源系统就可以被删除,因为集成服务拥有该时间点的所有数据。

部分缓存 - 部分缓存不会预先缓存数据。对于流经转换的每一行,部分缓存将查看其内部缓存以查看查找键是否已通过。如果有,则将使用本地副本。否则,将针对引用的系统触发单例查询以查找该值。如果您有未优化的查找、拉回大量数据、非常独特的源密钥,那么这可能会变得相当昂贵。如果在远程系统中找到匹配项,则该数据将在本地缓存,直到包完成或足够的新查找已生成匹配项并且缓存已满。

无缓存 - 与部分缓存类似,但它将始终对源系统执行查询。即使您的整个导入集只有一个唯一的键值。

为什么我会选择一个而不是另一个

我使用完整缓存,除非有特定原因不这样做。

在数据仓库中,存在一种称为迟到维度的场景。您正在加载应在参考表中具有值的内容,但直到现在您才知道该值的存在!一般解决方案是在加载期间将该值打入参考表中。在完整的缓存中,引用该缺失值的每一行都不会找到它,然后尝试插入它,这会导致重复。部分/无缓存将在第一次未命中时解决此问题,这将导致插入到引用表中,随后的查找将找到它并将其添加到缓存中。

我遇到的另一个需要部分/不需要缓存的场景是当我需要范围查询时。我有桌子SurrogateKey|BusinessKey|StartDate|StopDate我需要查找夹在 StartDate 和 StopDate 之间的 BusinessKey + MyDate。我使用 GUI 将 MyDate 拖到 StartDate,然后在高级编辑器中,修改现有查询以执行 BETWEEN StartDate 和 StopDate 之间的操作(但当然,我不会使用BETWEEN https://sqlblog.org/2009/10/16/bad-habits-to-kick-mis-handling-date-range-queries)

Related

  • 将查找转换部分缓存限制为加载的值 https://stackoverflow.com/questions/19574737/restrict-lookup-transformation-partial-cache-to-loaded-values/19575417#19575417
  • SSIS LookUp 没有像文档所说的那样处理 NULL https://stackoverflow.com/questions/7233766/ssis-lookup-is-not-dealing-with-nulls-like-the-docs-say-it-should/7236036#7236036
  • 查找转换 http://msdn.microsoft.com/en-us/library/ms141821.aspx
  • 区分大小写的查找 http://blogs.msdn.com/b/mattm/archive/2008/11/23/lookup-pattern-case-insensitive.aspx
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

何时选择在 SSIS 的 Lookup 组件中进行缓存 的相关文章

  • SSIS:如何将项目连接管理器移动到包中

    我有一个 2012 SSIS 项目 其中在项目级别定义了许多连接管理器 该项目还包括许多引用这些连接管理器的包 现在我想将我的项目转换为部署模型 但向导指定我需要删除项目中的连接管理器 这意味着将连接管理器移动到包中 如何将项目级连接管理器
  • SSIS - 将参数传递给 ADO .NET 源查询

    我知道早些时候已经有人问过这个问题 大多数答案都不相关 谷歌了一下 显示解决办法是在 数据流任务 中配置表达式并设置查询 然而 在 ADO NET 源中 当我尝试预览输出时 我不断收到 Must declare the variable 它
  • 安装 SQL Server 2012 错误“系统无法打开指定的设备或文件。”

    我正在尝试在已安装 SQL Server 2008 R2 Express 和 Windows 7 的计算机上安装 SQL Server 2012 Developer 我使用 Microsoft Secure Download Manager
  • 如何查询集成服务目录

    问题 识别连接到 SQL Server 上特定数据库表的所有 SSIS 包 详细信息 服务器上部署了近 100 个包 大多数包的大小都很大 因此很难以高精度手动检查它们 有没有一种快速且自动化的方法来做到这一点 使用 SQL Server
  • 分组和切换列和行

    我不知道这是否会被正式称为枢轴 但我想要的结果是这样的 Alex Charley Liza 213 345 1 23 111 5 42 52 2 323 5 23 1 324 5 我的输入数据采用这种形式 Apt Name
  • 无法与重定向器建立连接。确保“sql browser”服务正在运行

    所以我尝试这个 sql server 2012 由于这个错误我无法打开任何 ssis 包 无法与重定向器建立连接 确保 sql browser 服务正在运行 我的 Sql 浏览器肯定正在运行 我尝试在本地服务 本地系统和网络下更改它 仍然没
  • 跳过行:将数据从 SSIS 导出到 Excel 文件

    我正在尝试使用 SSIS 将数据从 SQL Server 数据库导出到 Excel 文件中 我希望从第 6 行插入数据 第 5 行有标题 我可以映射标题名称Excel 目标编辑器 通过编写 SQL 命令到 SQL 表头 SELECT FRO
  • SSIS Master 包执行来自另一个项目的包

    我有多个SSIS项目 但其中的一些包是相同的 我想创建一个包含所有内容的项目generic包并将其他项目与他们的特定包一起保存 所以我的问题是 是否有可能有一个主包可以执行并将父变量传递给另一个项目的包 我是 SSIS 新手 如果这是一个明
  • 从 SQL Server 2012 查询结果中减去小时数

    我正在 SQL Server 2012 Management Studio 中的警报系统信号自动化平台数据库上运行查询 但遇到了一些问题 我的查询运行得很好 但我无法将结果细化到我想要的水平 我正在选择一些格式为的列DATETIME 我只想
  • 指数数组的边界之外。 (微软.SqlServer.smo)

    我在用SQL Server 2008 R2 它运行良好 但最近 我改变了我的托管服务器 我发现他们已经安装了SQL Server 2012在服务器上 现在 问题是通过连接服务器数据库后SQL Server 2008 R2 当我单击任何表名称
  • 计算树中值的总和(递归查询)

    我在表员工 id name parentid 中有树结构 并且该表可以嵌套 employees 与另一个具有列 id employeeid quantity 的 Sales 表是一对多关系 每个员工都有销售数量 我想计算每个员工以及儿童员工
  • NOLOCK 和 UNCOMMITTED 之间有什么区别

    我使用 SQL Server 2012 我写了两个查询 但是它们之间有什么不同NOLOCK and UnCommitted SELECT lastname firstname FROM HR Employees with READUNCOM
  • SQL Server 列的默认值

    当您使用列的默认值时SQL Server Management Studio表设计器 SSMS 更改您的默认值并在其周围添加括号 在所有版本和 SQL Server 的所有版本中 例如 如果您设置0作为默认值 此默认值更改为 0 我不知道为
  • SSIS - 在整个项目中更改对变量/参数的引用

    我创建了一个 SSIS 项目 认为它将以项目部署模式进行部署 我的很多包都有 2 个参数 称为P OdsTbl and P SrcEtl 每当我使用执行包任务时 我都会将子参数绑定到父参数 我发现该项目将以包部署模式部署 这意味着我需要将参
  • sql中的sumProduct

    我正在尝试在服务器上的表中实现 sumproduct 来自 Excel select into myTable2 from myTable1 select a b c d e select c e 100 3423 from myTable
  • 无法在 SSIS 2012 上使用敏感项目参数

    在 SSIS 2012 中 我尝试对 Oracle 的 OLEDB 连接使用敏感项目参数 它与 Sensitive 属性设置为完美配合FALSE 在项目参数设计器中 但我不希望密码像那样可见 一旦我将敏感属性设置为TRUE并尝试执行我的包
  • 拆分列中的字符串并在列中添加值

    我有一个包含几行数据的表 如下所示 16 W 2 Work ALBO 00 Proposal ALxO Amendement 1 20091022 signed pdf 17 W 2 Work ALBO 00 Proposal Level1
  • SQL Server 2014 安装中缺少 SQL Server Integration Services

    我正在尝试使用 Integration Services 安装 SQL Server 2014 Here https www microsoft com en US download details aspx id 42299是我以前用工具
  • 解析带下划线的 SQL Server 数字文字

    我想知道它为什么有效以及为什么它不返回错误 SELECT 2015 11 Result 11 2015 第二种情况 SELECT 2 1 a a 2 1 检查元数据 SELECT name system type name FROM sys
  • 我是否需要在外键上指定 ON DELETE NO ACTION?

    我有以下与 SQL Server 2012 一起使用的 DDL CREATE TABLE Subject SubjectId INT IDENTITY 1 1 NOT NULL Name NVARCHAR 50 Not NULL CONST

随机推荐

  • 使用 jQuery .attr 或 .prop 设置属性值不起作用

    我创建了一个按钮 其属性名为 loaded 初始值为 no 单击按钮后 我正在运行一些 ajax 并在最后尝试将 已加载 属性设置为 是 以便如果用户多次单击该按钮 ajax 就不会再次运行 我有这样的事情 http jsfiddle ne
  • 滚动条在 WebView 的

    我有包含滚动分区的 Html 文件 当我在 WebView 中添加此 HTML 时 它不会显示该 div 的滚动条 我在 Html 文件中有代码 some Html code table style border 3px solid bla
  • Xcode4 与 Mac OS X 10.4 SDK

    在 Xcode 的最新版本 Xcode 4 0 中 不再包含 10 4 SDK 但是 我仍然需要支持 10 4 和 PowerPC 版本 我已经安装了最新的 Xcode 3 2 6 它仍然包含 10 4 支持 然后我安装了Xcode4 有没
  • 使用 C# 向 USB 连接的 GPRS 调制解调器发送 AT 命令

    任何人都可以给我一个关于如何访问连接到 USB 端口的 GPRS 调制解调器的良好指示或指南 我应该为我的程序制作一个 USB 驱动程序以将 AT 命令发送到调制解调器吗 或者就像一个路由器 我可以使用IP地址访问它 谢谢 如果 Windo
  • JTable 计算正在使用的行数并返回该数字

    我正在做一个小项目 停车场表 它允许您添加 删除和搜索汽车 除此之外 它还意味着返回已经停放的汽车数量 我的问题是 如何编写一个代码来计算已使用的行数并返回正在使用的行数 大概通过按钮或通过标签自动更新 注意 抱歉造成混乱 import j
  • 如何检查命令是否可用或存在?

    我正在 Linux 上用 C 语言开发一个控制台应用程序 现在 它的可选部分 不是必需的 取决于可用的命令 二进制文件 如果我检查system 我越来越sh command not found作为不需要的输出 并将其检测为存在 那么我该如何
  • PasswordDeriveBytes 与 Rfc2898DeriveBytes,已过时但速度更快

    我正在开发基于从 SymmetricAlgorithm 继承的类 例如 TripleDes DES 等 的加密功能 基本上有两个选项可以为我的算法类生成一致的密钥和 IV PasswordDeriveBytes and Rfc2898Der
  • 无法在设备“emulator-5554”上安装 apk:超时

    我是 Android 开发新手 我尝试在此文件夹中运行 LunarLander 项目 根据示例创建新项目 C Program Files Android android sdk windows samples android 9 Lunar
  • 在 Android 10 上以编程方式断开 Wifi

    I use WifiNetworkSuggestion以编程方式将我的应用程序连接到我的热点 但是当我尝试以编程方式断开此连接时 我使用了removeNetworkSuggestions就像文档提到的那样 删除之前的部分或全部网络建议 由应
  • 在 PHP 中管理巨型数组

    我正在为某人对数百万条旧日志条目进行数据挖掘 并且真的想在这件事上使用 PHP 来呈现这些材料 并将它们轻松链接到现有的 PHP 系统 我在终端 OSX 10 8 的 PHP 5 4 4 中运行此代码 Settings ini set er
  • 如何在 R 中显式调用函数参数的默认值?

    如何告诉 R 使用函数参数的默认值 而无需 i 省略函数调用中的参数以及 ii 不知道默认值是什么 我知道我可以使用默认值mean in rnorm rnorm n 100 by omitting the argument or rnorm
  • 如何将 FormsAuthentication cookie 添加到 HttpClient HttpRequestMessage

    我试图通过调用 FormsAuthentication SetAuthCookie someUser false 来验证内部集成测试之后 我确实需要调用 WebAPI 并且不会收到未经授权的异常 因为我已经应用了授权属性 我正在使用此代码来
  • Ruby Koans:为什么将符号列表转换为字符串

    我指的是 Ruby Koans 中 about symbols rb 中的这个测试https github com edgecase ruby koans blob master src about symbols rb L26 https
  • 如何从 Perl 与 ClearCase 交互?

    我的项目需要使用 Excel 工作表中的 Perl 脚本从 ClearCase 数据中提取一些内容 这些内容是 通过给出两条特定的时间线或两条基线 该基线内关联的所有活动 列标题 活动 所有者 ID 列标题 所有者 特定活动中关联的所有元素
  • 插座之间的管道

    我有一个充当镜像的 C 服务器 输入的内容会输出到不同的套接字 现在 它将套接字读入缓冲区并将其写入另一个套接字 我想提高吞吐量 I ve 读东西 http www kegel com c10k html zerocopy about se
  • 点之间的欧几里得距离

    我在 numpy 中有一个点数组 points rand dim n points 我想 计算某个点与所有其他点之间的所有 l2 范数 欧几里得距离 计算所有成对距离 最好都是 numpy 而没有 for 一个人怎样才能做到呢 如果您愿意使
  • PropertyPlaceholderConfigurer 从 XML 文件读取(Apache Commons 配置)

    是否可以配置 Spring PropertyPlaceholderConfigurer 来读取 properties xml 通过 Apache Commons 配置 我在帮助下找到了解决方案seanizer https stackover
  • 如何使用nodejs禁用Chrome的会话恢复警告?

    如何通过 NodeJS 在 Windows 中重新启动 Chromium Google Chrome 信息亭模式 以便它在重新启动时正常启动浏览器 就像普通人使用它一样 当我每次重新启动 Chromium Google chrome 时使用
  • 图像周围出现尴尬的线条

    可能最容易用图像来解释我想要什么 当我浮动图像时 文本围绕它运行 这很棒 但是 根据文本量和图像大小 我经常会遇到这些尴尬的情况 在这种情况下 尴尬的文本在图像旁边的列中看起来会更好 I could根据有多少尴尬的文本为图像添加更多的底部边
  • 何时选择在 SSIS 的 Lookup 组件中进行缓存

    在SSIS查找中有3种类型的缓存 完整 部分和无缓存 在我们的解决方案中 它一直使用默认的 完整 是否有任何特定的场景 可以使用部分缓存 无缓存 在我们的解决方案中 锁定表总是很小 例如 我们一直在查看小表来获取类型或获取描述 这可能是它在