`

SSIS 经验总结

    博客分类:
  • SSIS
 
阅读更多

1、在Execute SQL Task组件中创建临时表,需要使用create显示创建,不能使用select into。

 

2、Dump数据到SqlServer中,存在数据文件情况下,Bulk Insert Task组件快于Data Flow Task。在Data Flow Task中,使用OLE DB Destination快于ADO NET Destination,设置OLE数据访问模式为fast。

如:

 

3、使用Bulk Insert Task直接从源DB导出数据到目标DB,需要先使用Data Flow Task将数据导入指定文件中。虽然Bulk速度很快,但是数据导入文件的速度受IO限制,所以当数据文件不存在情况下使用Bulk并不理想。

 

4、Lookup is a case sensitive and blank space sensitive.
So need trim the lookup column data and use either UPPER/LOWER case for comparison.

 

5、数据类型对照

SSIS->DB

double-precision float [DT_R8]->FLOAT

string [DT_STR]->CHAR

four-byte signed integer [DT_I4]->INT

database timestamp [DT_DBTIMESTAMP]->DATETIME

 

6、Error:The multi-part identifier could not be bound.

解决:不使用alias别名,直接使用表名应用列

 

7、大批量数据的更新方法和速度

1)在Data Flow Task中使用OLE DB Command直接更新

具体做法可参见:http://blog.csdn.net/zjcxc/article/details/1202876

 

2)先使用Execute SQL Task 创建临时表,然后使用Data Flow Task数据导入临时表,最后使用Execute SQL Task 执行Update 语句,根据临时表更新目标表

具体做法可参见:http://bidn.com/blogs/DanMatisis/ssas/689/ssis-updating-a-table-with-a-temp-table-not-an-ole-db-command

 

3)在数据库中创建物理表,使用Data Flow Task数据导入物理表,最后使用Execute SQL Task 执行Update 语句,根据物理表更新目标表

具体做法可参见:http://www.ssistalk.com/2009/10/29/ssis-why-is-my-data-flow-so-slow-with-an-ole-db-command-component/

 

速度1<2<3

原理:

1)OLE DB Command是逐条更新,每条数据的更新都需要扫描全表,慢于后两种方法的批量数据更新

2)数据导入物理表可以使用fast load(参考上面第2条) 方式,速度快于导入临时表

 

注意:

如果使用第2种方法,必须将目标数据源的Connection的属性RetainSameConnection设置成true。这样视为保证在Execute SQL Task 中创建的临时表可以继续在Data Flow Task中使用。大家都知道数据库一个连接一旦关闭,这个连接所创建的临时表也就消失,就是这个原因。

在Data Flow Task中,使用OLE DB Destination将数据导入临时表时,必须将OLE DB Destination的属性ValidateExtranalMetadata设置成false。因为在package运行之前,临时表是不存在的,所以一旦验证package就会失败。

在OLE DB Destination中使用New按钮创建临时表时,临时表名需要使用[]括起来。如Create table [##Temptable]...

 

8、like关键字的替代方法

Column LIKE '%abc%'

SSIS Expression:

FINDSTRING([Column],"abc",1)>0

 

Column LIKE 'abc%'

SSIS Expression:
SUBSTRING([
Column],1,3) == "abc"

or

LEFT( [ Column] , X) == "value"

or

FINDSTRING([Column],"abc",1)==1

 

Column LIKE '%abc'

SSIS Expression:

RIGHT( [Column] , X) == "value"

or

LEFT(REVERSE([Column] ), X) == "value"

 

9、case when 关键字的替代方法

case when column = "a" then 1

when column = "b" then 2

else 3 end

<Expression>

column == "a"?1:column == "b"?2:3

 

10、error:cannot convert between unicode and non-unicode string data types.

Resolve:convert the column data type to DT_STR (If you know the size)/ DT_TEXT  in the data convertion transformation.

 

11、Convert Blank/Empty into NULL use Derived Column

1- set the DEFAULT(NULL) for EVERY column that needs this behaviour

2-set up some Derived Column option in the package to return NULL if the value is missing.

 

TRIM(<YourColumnName>) == "" ? (DT_STR,4,1252)NULL(DT_STR,4,1252) : <YourColumnName>

 

FYI:http://www.bidn.com/blogs/DonnyJohns/ssas/1919/handling-null-or-implied-null-values-in-an-ssis-derived-column

  • 大小: 4.5 KB
分享到:
评论

相关推荐

    SSIS基础指南 SSIS 基础指南

    这一指南旨在为用户提供关于SSIS的基本概念、实用技巧以及来自有经验用户的建议。 #### 二、SSIS在SQL Server 2008中的新特性 随着SQL Server 2008的发布,SSIS也迎来了一系列重要的更新和增强功能。这些新特性...

    SSIS:从MsSql到Mysql

    对于已有SSIS经验的用户来说,继续使用SSIS更为便捷。 #### 七、总结 本文档详细介绍了如何利用SSIS从MsSql迁移到MySQL的具体步骤,包括前期准备、项目构建、任务配置以及测试与部署等关键环节。通过这些步骤,能够...

    SQL Server从DTS到SSIS

    同时,也需要技术人员具备扎实的SQL Server知识和经验,以便更好地应对迁移过程中可能出现的各种挑战。通过对DTS到SSIS迁移过程的深入了解和规划,可以确保项目的顺利进行,从而充分利用SQL Server 2008的新特性。

    31 Days of SSIS

    - **Recursive Wrap-up**: 总结递归SSIS包的优点和应用场景。 6. **What The Sorts?!** - **Sort Configuration**: 介绍SSIS中排序组件的配置选项。 - **String Comparisons**: 讨论字符串比较的高级策略。 - ...

    wrox professional sql server 2005 integration services

    - 成果展示与经验总结 #### 四、总结 《Wrox Professional SQL Server 2005 Integration Services》是一本全面覆盖SQL Server 2005 Integration Services各个方面的重要参考书。无论是初学者还是经验丰富的开发...

    SQL Server Integration Services:从 Project REAL 中获得的经验教训

    总结来说,"SQL Server Integration Services:从 Project REAL 中获得的经验教训"这篇文章揭示了从DTS迁移到SSIS的过程中可能出现的复杂性和挑战,提供了宝贵的实施策略和技巧,对于那些正在进行或计划进行类似升级...

    Integration Services:高性能策略

    Elizabeth Vitt,Intellimentum和Hitachi Consulting的专家,以及Donald Farmer和Ashvini Sharma,Microsoft Corporation的成员,以及Stacia Misner,Hitachi Consulting的代表,共同提供了宝贵的洞察和经验,...

    微软SQL Server 2012 集成服务发布组件

    "融智技术学院官方论坛.url"是一个链接,指向一个在线社区或论坛,用户可以在其中讨论SQL Server 2012集成服务的相关问题,获取技术支持,或者与其他专业人士交流经验。 总结而言,微软SQL Server 2012集成服务发布...

    SQL Server 2008 教案(实际授课总结)

    SQL Server 2008是微软公司推出的一款关系型数据库管理系统,它在企业级数据管理、数据存储和分析...在学习过程中,不断练习和解决问题,将理论知识与实践经验相结合,是成长为一名合格的SQL Server管理员的关键步骤。

    SQL2005数据仓库设计经验

    #### 八、总结 SQL Server 2005数据仓库设计涵盖了从数据装载到查询优化的全过程,旨在构建一个高性能、高可用性的数据仓库系统。通过上述介绍的关键技术和实践方法,可以帮助初学者快速掌握SQL Server 2005数据...

    sissis软件包现代化,利用aws-lambda

    总结起来,这个项目旨在将传统的SSIS数据集成流程迁移到AWS云环境中,利用Lambda的无服务器特性,实现更灵活、可扩展的数据处理。开发者需要掌握C#编程、AWS服务操作、SSIS包设计和云安全等相关技能。通过此项目,...

    SQL Server 2005数据库简明教程 电子教案.

    总结,SQL Server 2005数据库简明教程全面涵盖了从基础到进阶的各种主题,适合初学者和有一定经验的学习者参考。通过深入学习并实践教程中的内容,你将能够熟练掌握SQL Server 2005的诸多功能,并能应对实际工作中...

    Microsoft SQL Server 2014 Business Intelligence

    该书由Reza Rad撰写,他拥有超过10年的数据库和软件应用经验,尤其在数据仓库方面有丰富的实战经历。 #### 二、基础知识介绍 - **Microsoft SQL Server 2014**: 这是一款由微软公司开发的关系型数据库管理系统...

    Pro SQL Server 2012 BI Solutions.pdf

    ### Pro SQL Server 2012 ...无论是初学者还是有一定经验的专业人士,都能从中受益匪浅。本书不仅提供了理论指导,更重要的是提供了大量实战案例,帮助读者将理论知识转化为实践技能,为自己的职业生涯增添宝贵的财富。

    Microsoft SQL Server 管理员手册

    总结来说,《Microsoft SQL Server 管理员手册》全面讲解了SQL Server的各项管理技能,无论你是初学者还是经验丰富的管理员,都能从中获得宝贵的指导,提升你在SQL Server领域的专业能力。通过学习和实践,你将能够...

    一本很好的数据库学习笔记

    这本“数据库学习笔记”很可能是对SQL Server的深入探索和实践总结。 首先,笔记可能会涵盖SQL Server的基本概念,如数据库、表、索引、视图等。数据库是存储数据的容器,而表则是数据的具体组织形式。索引可以加速...

Global site tag (gtag.js) - Google Analytics