博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
SSIS Design7:数据类型的选择
阅读量:6084 次
发布时间:2019-06-20

本文共 1045 字,大约阅读时间需要 3 分钟。

对于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的宽度不至于太宽,也能避免过多的数据类型转换。

 

作者
出处
本文版权归作者和博客园所有,欢迎转载,但未经作者同意,必须保留此段声明,且在文章页面醒目位置显示原文连接,否则保留追究法律责任的权利。
分类:
本文转自悦光阴博客园博客,原文链接:http://www.cnblogs.com/ljhdo/p/5509410.html,如需转载请自行联系原作者
你可能感兴趣的文章
深入理解编译注解(五)RetentionPolicy.SOURCE 和 RetentionPolicy.CLASS区别讨论
查看>>
nosql数据库:mongodb,redis,memcached,其优缺点和使用应用场景
查看>>
移动端 输入框 如果类型是number,用户也可以输入汉字和字母
查看>>
Security
查看>>
【排序算法】基于交换的排序算法(冒泡排序和快速排序)
查看>>
iOS 地图定位 定位
查看>>
Matplotlib 画廊
查看>>
Node.js 服务器
查看>>
Redis 高级主题之HyperLogLog
查看>>
openstack从入门到放弃
查看>>
HDU 4803 Poor Warehouse Keeper (贪心+避开精度)
查看>>
JVM
查看>>
微服务学习笔记
查看>>
UDP示例
查看>>
数据结构12-AVL树
查看>>
iOS开发之BLE(一)——理论知识
查看>>
Sql 查询锁
查看>>
HTTP Protocol
查看>>
Codeforces 919E - Congruence Equation
查看>>
React Diff 算法
查看>>