jes*_*loo 7 sql-server-2008 sql-server ssis azure-sql-database ssis-2008
在 BIDS 中,我正在运行数据流任务,我想知道对 OLE DB 源的数据访问模式使用“表或视图”与“SQL 命令”之间的幕后区别是什么。例如,假设我有一个名为 mytable 的表,它有 5 列(column1、column2、column3、column4、column5),但我只对 column1 感兴趣。我看到这两个选项:
当我进行测试时,第二个选项似乎运行得更快,但是当我使用“表或视图”然后只选择某些列时,我想确认幕后发生了什么。我很感激任何人都可以提供的任何见解。
(在我的特定用例中,mytable 是一个异地 Azure 数据库表,column2 中包含大量 xml。我的猜测是,当我使用“表或视图”时,所有列都通过网络传输)
我会做一个小实验。我将使用SQL 探查器来查看OLEDB Source在两种情况下使用 an时后台发生了什么:
我有一个名为的表dbo.Table_1,其中包含 3 列(ID、名称、部门)
我使用 SQL 探查器来调整包含此表的数据库,并使用 2 访问模式,在结果下方:
表或视图 - 仅选择 ID 列
探查器显示执行了以下命令
SELECT * FROM [dbo].[Table_1]
Run Code Online (Sandbox Code Playgroud)
即使您只选择一列,OLEDB 源也会读取所有数据,然后在读取所有数据后过滤列。
SQL 命令
探查器显示执行了以下命令
SELECT [ID] FROM [dbo].[Table_1]
Run Code Online (Sandbox Code Playgroud)
最近我发表了一篇文章,其中包含更多详细信息,您可以在以下链接中查看:
| 归档时间: |
|
| 查看次数: |
1509 次 |
| 最近记录: |