- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
tl;博士版本
运行几个晚上后,我在使用 OLE DB (SNC10.0) 连接管理器时遇到错误,连接可能无法正确超时吗?切换到 ADO.NET 连接管理器和源似乎可以解决这个问题,为什么?
我对通用标题表示歉意,但有太多细节无法在一行中说明。
技术:
在所有情况下,数据库服务器(源和目标)都是 SQL Server 2008 R2
设置:
我有一组 SSIS 包,它们在半夜一个接一个地运行。目前有 7 个。它们都执行一组相似的任务:首先连接到源数据库并将数据复制到临时数据库。然后他们在临时数据库中进行各种转换。最后,该进程连接到目标数据库并用数据填充它。
我将所有连接设置为 OLE DB 连接 (SQL Native Client 10.0),以便可以将它们与查找组件和其他特定于 OLE 的组件一起使用。
问题:
我们在自动运行 SSIS 包时反复遇到问题。一般来说,我会在我的站手动测试它,它会运行良好;然后我们将SSIS包保存到SQL Server中并安排它,它就会正常运行。几天后的晚上,我们会遇到如下问题:
SSIS Error Code DTS_E_OLEDBERROR. An OLE DB error has occurred. Error code: 0x80004005. An OLE DB record is available. Source: "Microsoft OLE DB Provider for SQL Server" Hresult: 0x80004005 Description: "Protocol error in TDS stream".
或
SSIS Error Code DTS_E_OLEDBERROR. An OLE DB error has occurred. Error code: 0x80004005. An OLE DB record is available. Source: "Microsoft SQL Server Native Client 10.0" Hresult: 0x80004005 Description: "Unknown token received from SQL Server".
在线搜索时,这两个问题都指向连接问题,特别是网络连接问题。
解决方法:
我发现解决这些问题的一个快速(如果并不总是简单)的解决方案是用 ADO NET 源而不是 OLE DB 源替换源节点。在某些情况下,这在我的数据流任务中是可以接受的,但在我需要使用查找组件或仅适用于 OLE 源的其他此类工具的情况下,如果我仍然遇到这种情况,这不是一个足够好的解决方案这些问题。
问题:
我知道 ADO.NET 和 OLE DB 连接之间存在大量差异,但我注意到的一件主要事情是 OLE DB 连接管理器有两个超时,两者都默认值“0”,这通常意味着禁用(没有超时)。 ADO.NET 连接管理器有一个超时,并将其设置为值“15”(15 秒)。
这两个连接管理器如何处理超时和关闭连接?当 OLE DB 连接管理器超时值为 0 时,除非在 SQL Server 上执行某些操作,否则该连接将永远不会关闭吗?这可能是我的问题的一部分,有这么多数据流任务打开 OLE DB 连接然后没有关闭?我可以在 SSIS 包中执行任何操作来强制关闭这些连接吗?
****编辑****
这是相关数据流任务的屏幕截图。我更改了一些名字以保护无辜者等。
如图所示的任务将完全正常运行并且 100% 的时间都有效。如果我将该 ADO.NET 源更改为 OLE DB 源,我会收到帖子中提到的错误。在其他一些情况下,我通过扩展源查询来完成并消除查找。在这个任务中我没有。
最佳答案
我们找出了所有问题的根源是什么,以及问题描述与环境描述不符以及没有足够线索解决的原因。
最后一切都崩溃了,我们发现“网络或服务器上没有任何变化”并非如此。
我们工作期间发生了一次备份。该备份使用卷影复制并备份生产数据库和 tempdb。由于磁盘 IO 问题/锁定,tempdb 由于未写入的更改而增长到半太字节,然后进一步尝试进行卷影复制。
关闭 tempdb 和生产数据库上的备份/卷影副本会导致作业立即完成。过去需要 > 30 分钟的查询现在只需 < 1 分钟。
感谢你们一直支持我并认真思考。
关于sql-server - SSIS 如何管理关闭连接?我可以强制吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13733692/
SQL、PL-SQL 和 T-SQL 之间有什么区别? 谁能解释一下这三者之间的区别,并提供每一个的相关使用场景? 最佳答案 SQL 是一种对集合进行操作的查询语言。 它或多或少是标准化的,几乎所有关
这个问题已经有答案了: What is the difference between SQL, PL-SQL and T-SQL? (6 个回答) 已关闭 9 年前。 我对 SQL 的了解足以完成我的
我在数据库中有一个 USER 表。该表有一个 RegistrationDate 列,该列有一个默认约束为 GETDATE()。 使用 LINQ 时,我没有为 RegistrationDate 列提供任
我有一个可能属于以下类型的字符串 string expected result 15-th-rp 15 15/12-rp 12 15-12-th
很难说出这里问的是什么。这个问题模棱两可、含糊不清、不完整、过于宽泛或言辞激烈,无法以目前的形式合理回答。如需帮助澄清此问题以便可以重新打开,visit the help center . 9年前关闭
我有一个存储过程(称为 sprocGetArticles),它从文章表中返回文章列表。这个存储过程没有任何参数。 用户可以对每篇文章发表评论,我将这些评论存储在由文章 ID 链接的评论表中。 有什么方
我目前正在做一个 *cough*Oracle*cough* 数据库主题。讲师介绍embedded SQL作为让其他语言(例如 C、C++)与(Oracle)数据库交互的方式。 我自己做了一些数据库工作
SQL Server 中 SQL 语句的最大长度是多少?这个长度是否取决于 SQL Server 的版本? 例如,在 DECLARE @SQLStatement NVARCHAR(MAX) = N'S
这个问题已经有答案了: Simple way to transpose columns and rows in SQL? (9 个回答) 已关闭 8 年前。 CallType
预先感谢您对此提供的任何帮助。 假设我有一个查询,可以比较跨年的数据,从某个任意年份开始,永无止境(进入 future ),每年同一时期直到最后一个完整的月份(其特点是一月数据永远不会显示至 2 月
我在数据库中有一个 USER 表。该表有一个 RegistrationDate 列,该列的默认约束为 GETDATE()。 使用 LINQ 时,我没有为 RegistrationDate 列提供任何数
下面是我试图用来检查存储过程是否不存在然后创建过程的 sql。它会抛出一个错误:Incorrect syntax near the keyword 'PROCEDURE' IF NOT EXISTS
我有一个同事声称动态 SQL 在许多情况下比静态 SQL 执行得更快,所以我经常看到 DSQL 到处都是。除了明显的缺点,比如在运行之前无法检测到错误并且更难阅读,这是否准确?当我问他为什么一直使用
来自 lobodava 的动态 SQL 查询是: declare @sql nvarchar(4000) = N';with cteColumnts (ORDINAL_POSITION, CO
使用 SQL Server 中的存储过程执行动态 SQL 命令的现实优点和缺点是什么 EXEC (@SQL) 对比 EXEC SP_EXECUTESQL @SQL ? 最佳答案 sp_executes
我有这个有效的 SQL 查询: select sum(dbos.Points) as Points, dboseasons.Year from dbo.StatLines dbos i
我正在调试一些构建成功运行的 SQL 命令的代码。 然而,在查询结束时,查询结果似乎被写入了一个文本文件。 完整的查询如下 echo SELECT DATE,DATETABLE,DATE,APPDAT
我有一些创建表的 .sql 文件(MS SQL 数据库): 表_1.sql: IF OBJECT_ID (N'my_schema.table1', N'U') IS NOT NULL DROP TAB
我写了下面的 SQL 存储过程,它一直给我错误@pid = SELECT MAX(... 整个过程是: Alter PROCEDURE insert_partyco @pname varchar(20
我在 SQL Server 2005 中有包含两列 Fruit 和 Color 的表,如下所示 Fruit Colour Apple Red Orange
我是一名优秀的程序员,十分优秀!