首页 > 其他 > 详细

ssis trainning

时间:2014-03-31 09:20:35      阅读:412      评论:0      收藏:0      [点我收藏+]

1.

防止包打开后hang住,可以使用delay validation=false.

   

2.2008R2 configuration 起作用的优先级?

一是des ign time.

二是运行的时候指定的文件

2012parameter 则是相反。

   

3.注意SSIS包的32位与64位跑的区别?
agentjob 默认是64位的去跑,如果你是包需要在32位下面跑,有选项可以勾选。

你可以使用不同folder下面的dtsexec去跑你的job.

第三方的driver也许需要设置allow in process?

  

4.load flat file 可以在source 组件上去掉某些列,但是不能在connection manager上改。

  

5.SP 作为数据源的时候会有一些问题,set fmtonly off.

SP无法获取元数据。

SSIS 去拿元数据的时候,如果是从存储过程中去拿时候,需要把存储过程执行完才可以。

  

6.INDEX:

index structure:

include index 中的include 部分是存放在叶子结点中的。

复合索引与include索引的区别?

复合索引的键值都包含在索引的非叶子结点中,但是只能使用排在第一个的字段进行seek,其他的进行scan.

include的非叶子结点的键值只有键值字段,include字段只存在叶子结点层。

index seek与index scan 的区别?

index seek是在非叶子结点进行查找,而index scan是在叶子结点进行线性扫描。

  

7.查询优化器:

创建了索引之后?查询优化器何时会使用它?怎么判断要使用它?

选择unique度比较高字段指定一个作为索引键。一个表在操作的时候只能使用一个索引。

  

8.存储过程的参数嗅探

第一次编译的时候根据传递的参数产生的执行计划,往往会被重用,但后来传递的参数也许与原来的巨大的不同,造成查询效率巨慢。

这个时候非常建议存储过程重新编译执行计划,这时候可以使用一个关键字指定要求它做这个重编译。

  

9.exec sp with recompile.

parameter sniffering

一个中庸的计划是不在SP中直接让参数参与语句,而是把参数给本地变量,然后使用变量参与Sql语句的查询。

  

10.nested looped :

for 让小的结果集放在外面,不要放在里面。切记。

内存使用比较少,driven table存储里表的是一条一条地取。

  

scan ,loop join 对于查询结果比较漫长的query 第一感觉是看这些。

如果预计的行数与实际的行数差很多,sqlserver 就很有可能弄错了。

第二种是merge join.

两边的结果集都已排序然后。。。。

这样就无所谓某个表做driven table, 避免了上一个方法的bug.

内存需求不是太多。缺点就是需要两边都需要排序。

  

11.从右下到左上这是看执行计划的方法。

HASH table

找到一个相对小的表,建成桶。

优点:不需要索引good for ad-hoc query.

有可能占用巨大的内存,选错了build table.

  

首先就是要让他们去更新统计信息。然后再执行去看看。然后再drop cache再看看。

他估计的时候是单次的,所以要让次数乘以每次估计的行数与实际的行数相比较。

  

with force order(强制按你写的表顺序进行join)

with tablelock. 可以好很多。

maxdoop 并发度的问题。

cpu contextswitch

  

 

  

  

  

  

  

ssis trainning,布布扣,bubuko.com

ssis trainning

原文:http://www.cnblogs.com/huaxiaoyao/p/3634994.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!