日期:2014-05-16  浏览次数:20516 次

微软商务智能项目问题 问题解决的话再+分100
微软商务智能SSIS 开发的ETL包 在我2G内存下运行,由于数据过多,经常内存溢出,然后我+了虚拟内存

在ETL包执行时,内存、PF使用 使用一直在增加,到达2G左右,等ETL包执行完毕后,升上去的内存、PF使用 都没有再还原回去只能重启电脑后才行。
求解决方案,可以不用重启电脑
------解决方案--------------------
Dbcc freeproccahe 清一下緩存
------解决方案--------------------
弄个释放虚拟内存的工具释放下  
pagedfrg
------解决方案--------------------
用鲁大师  点几下释放内存  不过不知道有没有用
------解决方案--------------------
任何一个RDBMS都会尽可能地占住内存,但是正常的占住的内存往往都能【重用】。如果你是纯粹用来做ETL/SSIS而产生的内存,清掉倒没关系。不过如果还存放有大量查询的缓存,那么就尽量不要释放你眼前的内存。缓存对性能至关重要,释放了就等于重启服务器。后续的所有查询都要重新缓存到内存中。
对于你在2G内存中运算,如果是32位,可以考虑开启AWE来扩大,不过做ETL,除了测试之外,貌似不可能用这么小的内存。如果的确感觉很卡,那执行Dbcc freeproccahe是可以的。如果不是感觉很卡。那内存占了7、80%也没关系,我公司的服务器长期95%运行,也从来没感觉卡。
------解决方案--------------------
2G内存开AWE也木用。加内存呗。
不过没释放的高速缓存也不可能这么多的。
------解决方案--------------------
有连锁行业的BI项目经验介绍吗
------解决方案--------------------
我们都是32G的内存的
2G内存加载一个表都不够呀

个人PC,至少要4G呀
------解决方案--------------------
你为啥要把内存降下去?

因为你查询过程中,会把结果缓存在内存中,下次再查询的时候就可以直接从内存中读取(数据)出来了

从而避免了物理上的IO(从磁盘上读)

假如你内存吃紧的话,缓存的数据时可以通过“挤出”内存区的

没必要手动释放
------解决方案--------------------
都是乱码啊
------解决方案--------------------
限制下内存的使用,这样超过后会自动释放然后再重新申请。
------解决方案--------------------
SSIS里做data loading的时候设置合适的row per batch大小避免数据量大消耗过多内存。
------解决方案--------------------
引用:
SSIS里做data loading的时候设置合适的row per batch大小避免数据量大消耗过多内存。


同意,我们的项目就是这么做的