如何结合多个"收集统计数据" openquery中的陈述

时间:2016-06-29 18:20:00

标签: sql-server-2008 teradata

我想结合多个"收集统计数据"插入语句后,在SqlServer上执行openquery到Teradata。有办法吗?我无法在线找到答案。这是一个例子:

EXEC(' INSERT INTO TABLE1 SELECT * FROM TABLE2; 收集TABLE1 INDEX(IDX1,IDX2)的统计数据; 收集TABLE1 INDEX(IDX3)上的统计数据;')AT [linkserver];

1 个答案:

答案 0 :(得分:1)

COLLECT STATS是一个DDL语句,必须立即提交,无法在多语句请求中运行多个收集。

但是你可以简单地在一个收集中收集多个统计数据,这应该有效:

EXEC ('INSERT INTO TABLE1 SELECT * FROM TABLE2; 
       COLLECT STATISTICS INDEX ( IDX1,IDX2), INDEX ( IDX3) ON TABLE1;') AT [linkserver];