ssis 中的包错误但不是出价
package error in ssis but not bids
我使用向导(因为为什么要重新发明轮子)使用视图(我后来发现视图永远占用 运行)作为数据源创建了一个访问包的导出。我做了一些研究,发现如果我只采用构建视图的查询并将其用作源,它 运行 会更快。这 运行 比 2008 年的出价要快(3 秒对将近 30 分钟)。所以我把它放在 sql 服务器的作业代理上,这样我们就可以自动导出数据,运行 它来测试它,但它失败了。
Microsoft (R) SQL Server Execute Package Utility Version 10.50.6000.34 for 64-bit Copyright (C) Microsoft Corporation 2010. All rights reserved. Started: 11:43:31 AM Error: 2017-10-31 12:04:09.50 Code: 0xC0202009 Source: Data Flow Task 1 Destination - Etching_LookupView_Sink1Temperature [109] Description: SSIS Error Code DTS_E_OLEDBERROR. An OLE DB error has occurred. Error code: 0x80040E03. End Error Error: 2017-10-31 12:04:09.50 Code: 0xC0047022 Source: Data Flow Task 1 SSIS.Pipeline Description: SSIS Error Code DTS_E_PROCESSINPUTFAILED. The ProcessInput method on component "Destination - Etching_LookupView_Sink1Temperature" (109) failed with error code 0xC0202009 while processing input "Destination Input" (122). The identified component returned an error from the ProcessInput method. The error is specific to the component, but the error is fatal and will cause the Data Flow task to stop running. There may be error messages posted before this with more information about the failure. End Error DTExec: The package execution returned DTSER_FAILURE (1). Started: 11:43:31 AM Finished: 12:04:09 PM Elapsed: 1237.81 seconds. The package execution failed. The step failed.
根据我对这个错误代码所做的研究,它谈到了铸造,但我没有铸造任何东西。
这是我为视图提供的查询。
SELECT dbo.Etching_Trace_Data.Etch_Date, dbo.Etching_Trace_Data.EtchLot, dbo.Etching_Trace_Data.Part_Number, dbo.Etching_Trace_Data.Lot_Number, dbo.Etching_Trace_Data.Leadbond_Lot,
dbo.Etching_Trace_Data.Acid_Batch, dbo.Etching_Trace_Data.Operator_ID, dbo.Etching_Trace_Data.WorkOrder, dbo.Etching_Trace_Data.Etch_Sink, dbo.Etching_Trace_Data.Num_Diodes,
dbo.Etching_Trace_Data.Etch_Number, AVG(dbo.Etching_Meas_Runtime.[210Temperature]) AS AvgOf210Temperature, MAX(dbo.Etching_Meas_Runtime.[210Temperature]) AS MaxOf210Temperature,
MIN(dbo.Etching_Meas_Runtime.[210Temperature]) AS MinOf210Temperature, AVG(dbo.Etching_Meas_Runtime.NitricTemperature) AS AvgOfNitricTemperature,
MAX(dbo.Etching_Meas_Runtime.NitricTemperature) AS MaxOfNitricTemperature, MIN(dbo.Etching_Meas_Runtime.NitricTemperature) AS MinOfNitricTemperature,
AVG(dbo.Etching_Meas_Runtime.LeftRinseWaterTemperature) AS AvgOfLeftRinseWaterTemperature, MAX(dbo.Etching_Meas_Runtime.LeftRinseWaterTemperature)
AS MaxOfLeftRinseWaterTemperature, MIN(dbo.Etching_Meas_Runtime.LeftRinseWaterTemperature) AS MinOfLeftRinseWaterTemperature,
AVG(dbo.Etching_Meas_Runtime.RightRinseWaterTemperature) AS AvgOfRightRinseWaterTemperature, MAX(dbo.Etching_Meas_Runtime.RightRinseWaterTemperature)
AS MaxOfRightRinseWaterTemperature, MIN(dbo.Etching_Meas_Runtime.RightRinseWaterTemperature) AS MinOfRightRinseWaterTemperature,
AVG(dbo.Etching_Meas_Runtime.RightRinseWaterResistivity) AS AvgOfRightRinseWaterResistivity, dbo.Etching_LookupView_LeadbondLots.RecipeName,
dbo.Etching_Trace_Data.Etch_Time_210_1, dbo.Etching_Trace_Data.Etch_Time_210_2, dbo.Etching_Trace_Data.Etch_Time_210_3, dbo.Etching_Trace_Data.Etch_Time_210_4,
dbo.Etching_Trace_Data.Etch_Time_Nitric_1, dbo.Etching_Trace_Data.Etch_Time_Nitric_2
FROM dbo.Etching_Trace_Data INNER JOIN
dbo.Etching_Meas_Runtime ON dbo.Etching_Trace_Data.Leadbond_Lot = dbo.Etching_Meas_Runtime.LotNumber INNER JOIN
dbo.Etching_LookupView_LeadbondLots ON dbo.Etching_Trace_Data.Leadbond_Lot = dbo.Etching_LookupView_LeadbondLots.Leadbond_lot
WHERE (dbo.Etching_Trace_Data.Etch_Date > '2017-08-01 00:00:00')
GROUP BY dbo.Etching_Trace_Data.Etch_Date, dbo.Etching_Trace_Data.EtchLot, dbo.Etching_Trace_Data.Part_Number, dbo.Etching_Trace_Data.Lot_Number, dbo.Etching_Trace_Data.Leadbond_Lot,
dbo.Etching_Trace_Data.Acid_Batch, dbo.Etching_Trace_Data.Operator_ID, dbo.Etching_Trace_Data.WorkOrder, dbo.Etching_Trace_Data.Etch_Sink, dbo.Etching_Trace_Data.Num_Diodes,
dbo.Etching_Trace_Data.Etch_Number, dbo.Etching_Trace_Data.Etch_Time_210_1, dbo.Etching_Trace_Data.Etch_Time_210_2, dbo.Etching_Trace_Data.Etch_Time_210_3,
dbo.Etching_Trace_Data.Etch_Time_210_4, dbo.Etching_Trace_Data.Etch_Time_Nitric_1, dbo.Etching_Trace_Data.Etch_Time_Nitric_2, dbo.Etching_LookupView_LeadbondLots.RecipeName
我通过重新运行导出向导并使用源查询而不是视图来解决 "fixing" 我的问题,它执行得很好。我的猜测是我在投标时搞砸了一些我不知道的东西。
查询与视图的重要性在于,当 SSIS 尝试验证视图时会出现严重的减速,导致包在 运行 通过代理时失败,但是当您提供查询时,它的验证速度要快得多。
详情在这里:
相关部分是
Posted by Microsoft on 4/28/2008 at 2:45 PM
This is a know issue and the result of the current design.
There are 2 ways to pull data from a view in OLE DB source:
Use "Table or view" access method
Use "SQL command" access method, and enter a query "select * from ***"
A different execution plan is generated in the two approaches.
The one used in the former is not as efficient as the latter.
If you hit the performance issue when going with the first approach, you can switch to the second approach as a work around.
We have also blogged this issue - >http://blogs.msdn.com/sqlperf/archive/2007/04/29/set-up-ole-db-source-to-read-from-view-efficiently.aspx.
Since this is a 'By Design' item and we believe that there is a work around we will not be providing any change at this time. As a result we are closing the case associated with your submission. If you disagree, please feel free to re-submit.
We appreciate your time, effort, and support of SSIS.
我使用向导(因为为什么要重新发明轮子)使用视图(我后来发现视图永远占用 运行)作为数据源创建了一个访问包的导出。我做了一些研究,发现如果我只采用构建视图的查询并将其用作源,它 运行 会更快。这 运行 比 2008 年的出价要快(3 秒对将近 30 分钟)。所以我把它放在 sql 服务器的作业代理上,这样我们就可以自动导出数据,运行 它来测试它,但它失败了。
Microsoft (R) SQL Server Execute Package Utility Version 10.50.6000.34 for 64-bit Copyright (C) Microsoft Corporation 2010. All rights reserved. Started: 11:43:31 AM Error: 2017-10-31 12:04:09.50 Code: 0xC0202009 Source: Data Flow Task 1 Destination - Etching_LookupView_Sink1Temperature [109] Description: SSIS Error Code DTS_E_OLEDBERROR. An OLE DB error has occurred. Error code: 0x80040E03. End Error Error: 2017-10-31 12:04:09.50 Code: 0xC0047022 Source: Data Flow Task 1 SSIS.Pipeline Description: SSIS Error Code DTS_E_PROCESSINPUTFAILED. The ProcessInput method on component "Destination - Etching_LookupView_Sink1Temperature" (109) failed with error code 0xC0202009 while processing input "Destination Input" (122). The identified component returned an error from the ProcessInput method. The error is specific to the component, but the error is fatal and will cause the Data Flow task to stop running. There may be error messages posted before this with more information about the failure. End Error DTExec: The package execution returned DTSER_FAILURE (1). Started: 11:43:31 AM Finished: 12:04:09 PM Elapsed: 1237.81 seconds. The package execution failed. The step failed.
根据我对这个错误代码所做的研究,它谈到了铸造,但我没有铸造任何东西。
这是我为视图提供的查询。
SELECT dbo.Etching_Trace_Data.Etch_Date, dbo.Etching_Trace_Data.EtchLot, dbo.Etching_Trace_Data.Part_Number, dbo.Etching_Trace_Data.Lot_Number, dbo.Etching_Trace_Data.Leadbond_Lot,
dbo.Etching_Trace_Data.Acid_Batch, dbo.Etching_Trace_Data.Operator_ID, dbo.Etching_Trace_Data.WorkOrder, dbo.Etching_Trace_Data.Etch_Sink, dbo.Etching_Trace_Data.Num_Diodes,
dbo.Etching_Trace_Data.Etch_Number, AVG(dbo.Etching_Meas_Runtime.[210Temperature]) AS AvgOf210Temperature, MAX(dbo.Etching_Meas_Runtime.[210Temperature]) AS MaxOf210Temperature,
MIN(dbo.Etching_Meas_Runtime.[210Temperature]) AS MinOf210Temperature, AVG(dbo.Etching_Meas_Runtime.NitricTemperature) AS AvgOfNitricTemperature,
MAX(dbo.Etching_Meas_Runtime.NitricTemperature) AS MaxOfNitricTemperature, MIN(dbo.Etching_Meas_Runtime.NitricTemperature) AS MinOfNitricTemperature,
AVG(dbo.Etching_Meas_Runtime.LeftRinseWaterTemperature) AS AvgOfLeftRinseWaterTemperature, MAX(dbo.Etching_Meas_Runtime.LeftRinseWaterTemperature)
AS MaxOfLeftRinseWaterTemperature, MIN(dbo.Etching_Meas_Runtime.LeftRinseWaterTemperature) AS MinOfLeftRinseWaterTemperature,
AVG(dbo.Etching_Meas_Runtime.RightRinseWaterTemperature) AS AvgOfRightRinseWaterTemperature, MAX(dbo.Etching_Meas_Runtime.RightRinseWaterTemperature)
AS MaxOfRightRinseWaterTemperature, MIN(dbo.Etching_Meas_Runtime.RightRinseWaterTemperature) AS MinOfRightRinseWaterTemperature,
AVG(dbo.Etching_Meas_Runtime.RightRinseWaterResistivity) AS AvgOfRightRinseWaterResistivity, dbo.Etching_LookupView_LeadbondLots.RecipeName,
dbo.Etching_Trace_Data.Etch_Time_210_1, dbo.Etching_Trace_Data.Etch_Time_210_2, dbo.Etching_Trace_Data.Etch_Time_210_3, dbo.Etching_Trace_Data.Etch_Time_210_4,
dbo.Etching_Trace_Data.Etch_Time_Nitric_1, dbo.Etching_Trace_Data.Etch_Time_Nitric_2
FROM dbo.Etching_Trace_Data INNER JOIN
dbo.Etching_Meas_Runtime ON dbo.Etching_Trace_Data.Leadbond_Lot = dbo.Etching_Meas_Runtime.LotNumber INNER JOIN
dbo.Etching_LookupView_LeadbondLots ON dbo.Etching_Trace_Data.Leadbond_Lot = dbo.Etching_LookupView_LeadbondLots.Leadbond_lot
WHERE (dbo.Etching_Trace_Data.Etch_Date > '2017-08-01 00:00:00')
GROUP BY dbo.Etching_Trace_Data.Etch_Date, dbo.Etching_Trace_Data.EtchLot, dbo.Etching_Trace_Data.Part_Number, dbo.Etching_Trace_Data.Lot_Number, dbo.Etching_Trace_Data.Leadbond_Lot,
dbo.Etching_Trace_Data.Acid_Batch, dbo.Etching_Trace_Data.Operator_ID, dbo.Etching_Trace_Data.WorkOrder, dbo.Etching_Trace_Data.Etch_Sink, dbo.Etching_Trace_Data.Num_Diodes,
dbo.Etching_Trace_Data.Etch_Number, dbo.Etching_Trace_Data.Etch_Time_210_1, dbo.Etching_Trace_Data.Etch_Time_210_2, dbo.Etching_Trace_Data.Etch_Time_210_3,
dbo.Etching_Trace_Data.Etch_Time_210_4, dbo.Etching_Trace_Data.Etch_Time_Nitric_1, dbo.Etching_Trace_Data.Etch_Time_Nitric_2, dbo.Etching_LookupView_LeadbondLots.RecipeName
我通过重新运行导出向导并使用源查询而不是视图来解决 "fixing" 我的问题,它执行得很好。我的猜测是我在投标时搞砸了一些我不知道的东西。
查询与视图的重要性在于,当 SSIS 尝试验证视图时会出现严重的减速,导致包在 运行 通过代理时失败,但是当您提供查询时,它的验证速度要快得多。
详情在这里:
相关部分是
Posted by Microsoft on 4/28/2008 at 2:45 PM This is a know issue and the result of the current design.
There are 2 ways to pull data from a view in OLE DB source:
Use "Table or view" access method
Use "SQL command" access method, and enter a query "select * from ***"
A different execution plan is generated in the two approaches.
The one used in the former is not as efficient as the latter.
If you hit the performance issue when going with the first approach, you can switch to the second approach as a work around.
We have also blogged this issue - >http://blogs.msdn.com/sqlperf/archive/2007/04/29/set-up-ole-db-source-to-read-from-view-efficiently.aspx.
Since this is a 'By Design' item and we believe that there is a work around we will not be providing any change at this time. As a result we are closing the case associated with your submission. If you disagree, please feel free to re-submit.
We appreciate your time, effort, and support of SSIS.