2012-04-07 190 views
0

我知道,当我们选择或更新等时,SQL服务器通过将数据从硬盘加载到RAM来为所有操作使用内存缓存。另外,我已经像SSIS一样读取数据流任务所以,我的问题是......ssis数据流缓冲区

1)这些缓冲区和缓存是否相同?

2)如果是,我们用来在数据流任务(例如:OLEDB数据源任务)中编写sql语句,以便SSIS必须创建一些缓冲区来加载数据。OLEDB Source任务中执行的sql语句是否会不创建任何缓存?

回答

2

不,他们不一样。

SQL Server数据库引擎有自己的缓存,运行的包中的每个SSIS数据流任务也都有自己的缓存。

因此,当您在运行的SSIS包中的数据流任务中的OLEDB数据源任务中有SQL Server查询时,SQL Server必须将所有数据都带到数据库引擎缓存中,并且数据然后读入数据流任务的缓冲区(然后可以通过数据流管道中的各种缓冲区)。

SQL Server数据库引擎和SSIS包的内存使用量本身就是一个巨大的话题,但我希望这可以回答你的问题。