码迷,mamicode.com
首页 > 其他好文 > 详细

SSIS 数据类型的选择

时间:2016-05-19 19:23:10      阅读:478      评论:0      收藏:0      [点我收藏+]

标签:

对于SSIS的数据类型,容易遗漏精度的是DateTime,不正确的使用DateTime,time,decimal 等数据类型,可能导致溢出或数据丢失。

1,Variable 和 Parameter的DateTime

Variable 和 Parameter的DateTime对应 DT_DBTIMESTAMP (对应SQL Server的Datatime),格式是:yyyy-MM-dd hh:mm:ss XM,例如 “2016-05-19 5:41:32 PM”,只精确到秒。

2,转换组件

由于转换组件不能丢失精度,因此有以下三种方式:DT_DBTIMESTAMP,DT_DBTIMESTAMP,DT_DBTIMESTAMPOFFSET.

技术分享

DT_DBTIMESTAMP 对应 SQL Server的 Datetime,格式是 "yyyy-MM-dd hh:mm:ss",精确到秒

DT_DBTIMESTAMP2 对应 SQL Server的 Datetime2(N),有precision,可以精确到ss.nnnnnnn

DT_DBTIMESTAMPOFFSET 对应 SQL Server的datetimeoffset(N),有precision,可以精确到ss.nnnnnnn

3,类型转换对性能的影响

只在必要时,进行数据类型的转换,因为每次转换,SSIS Engine都需要付出一定的代价。

如果将值转换为一个不支持的数据类型,那么将会在SSIS内部产生一个到映射数据的额外转换,最好将数据类型转换为与目标最接近的数据类型。

4,数据类型的选择

SSIS的 Data Flow需要在内存中完成大量的工作,消除了最费时的IO操作,使数据的读取,转换和加载性能飞快。由于SSIS使用内存缓存区来完成相关操作,被加载到缓冲区的行数直接和row的宽度相关,row的宽度越窄,缓冲区容纳的行数越多,被处理的数据量越大,性能越好。如果要定义大型输入源的数据类型,必须慎重挑选数据类型,使用最接近的大小和精度存储和转换数据,既能使row的宽度不至于太宽,也能避免过多的数据类型转换。

 

SSIS 数据类型的选择

标签:

原文地址:http://www.cnblogs.com/ljhdo/p/5509410.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!