SSIS错误锦集3)

浏览: 1464

question21::一个用户在一台机器上写的SSIS移植到另一台机器上,报错的问题

解决方案:设置项目的一个属性ProtectionLevel 为DontSaveSensitive,然后设置包的ProtectionLevel 属性为DontSaveSensitive

question22:[SSIS.Pipeline] 错误: OLE DB 源 在执行前阶段失败,返回的错误代码为 0x80040E21。解决方案:hj_name=hj_name collate Chinese_PRC_CI_AS

question23:ETL优化问题

ETL优化大的方面从3个方面考虑:

 1)优化数据源

 2)数据流优化

 3)插入性能优化

优化数据源
(1) 删除不需要的列; (2) 优化数据源查询; 2清除隐藏的操作 (1) 只在必要的时候进行列的解析或转换; (2) 清除不必要的日志记录;
数据流优化
(1)使用索引; (2)清楚不必要的操作 (3) 将查找引用配对; 避免使用“select * from ” (4)近可能的在SQL Server中执行以数据集为基础的操作。例如:在SQL Server中比“排序”转换组件速度要快,特别是有索引时 (5) 有些开销比较大的组件慎用:如:OLEDB命令、模糊查找、数据转换、导出列/到入列、字词查找。 (6)消除“聚合”,“查找”,“排序”操作 SSIS优化----数据流优化

插入性能优化
(1) 使用“SQL SERVER 目标”适配器; (2)关闭约束; (3)删除“日志记录”; (4) 再加载时考虑禁用索引;
question23:文件的copy,解压缩问题

executable是要执行的EXE文件的路径,argument是要执行的文件的原始文件夹,目标文件夹question24:SSIS典型应用场景

1.合并来做异类数据存储区(txt,xml,excle)的数据

2.填充数据仓库和数据集市

3.清楚数据和数据标准化

4.将商业智能置入数据转换过程

5.使管理功能和数据加载自动化

原始文件源如XML文件。

question25:将一个文件夹下面的excle数据导入数据仓库,用foreach循环或者for循环。

我现在的需求:我的excle文件命名是年月形式的,比如201409,年份是2014,月份是9月。将年月转换为int然后分别存数数据库的两个int类型字段中。

网上给的解决方案:

Excel读取出来的时候 默认可以设置第一行是列名。

在 DataFlow数据流 Excel Source的地方,可以在预览页面看到你所加载到的所有Excel列。然后从 Control List里拖一个 OleDbDestination, 建立 她两之间的关系 这时候打开 OleDbDestination就能看到 你对应的数据匹配。

获取文件名的方式:执行脚本任务,

然后编辑脚本:Dts.TaskResult = (int)ScriptResults.Success;

                     MessageBox.Show(Dts.Variables["v1"].Value.ToString());//弹出文件名

                     MessageBox.Show();

//MessageBox.Show(Dts.Variables["v1"].Value.ToString());

            Int32 year =Convert.ToInt32(Dts.Variables["v1"].Value.ToString().Substring(0,4));

            MessageBox.Show("----"+year);

推荐 0
本文由 xiaoyaya 创作,采用 知识共享署名-相同方式共享 3.0 中国大陆许可协议 进行许可。
转载、引用前需联系作者,并署名作者且注明文章出处。
本站文章版权归原作者及原出处所有 。内容为作者个人观点, 并不代表本站赞同其观点和对其真实性负责。本站是一个个人学习交流的平台,并不用于任何商业目的,如果有任何问题,请及时联系我们,我们将根据著作权人的要求,立即更正或者删除有关内容。本站拥有对此声明的最终解释权。

0 个评论

要回复文章请先登录注册