Sql Teradata会话中止AMP CPU阈值
我有一个正在刷新SSAS多维数据集分区的SSIS包。每个分区都是针对Teradata运行的SQL查询。我正在SSIS包中使用“Teradata的网络数据提供程序”。SSAS多维数据集正在使用“Teradata.Client.Provider”。任何特定的查询都可以正常执行。然而,在5-10次迭代之后,我得到了一个会话中止。经过一些调查,我发现所有查询都在同一会话中使用:Sql Teradata会话中止AMP CPU阈值,sql,ssis,ssas,teradata,Sql,Ssis,Ssas,Teradata,我有一个正在刷新SSAS多维数据集分区的SSIS包。每个分区都是针对Teradata运行的SQL查询。我正在SSIS包中使用“Teradata的网络数据提供程序”。SSAS多维数据集正在使用“Teradata.Client.Provider”。任何特定的查询都可以正常执行。然而,在5-10次迭代之后,我得到了一个会话中止。经过一些调查,我发现所有查询都在同一会话中使用: sel * from DBC.DBQLogTbl where sessionid = 123456 此查询返回多行,其中包含
sel * from DBC.DBQLogTbl where sessionid = 123456
此查询返回多行,其中包含来自循环的查询。每个查询本身不超过CPU AMP阈值,但是组合AMP使用量超过阈值。
我已将SSIS和SSAS中的连接字符串配置如下:
- SSAS:连接超时=180;认证机制=LDAP;响应缓冲区大小=64000;用户Id=***;数据源=my.production.server;持久安全信息=True;会话字符集=UTF16;连接池=False;连接池超时=15;命令超时=900
- SSIS:Data Source=my.production.server;用户Id=***;认证机制=LDAP;持久安全信息=True;会话字符集=UTF16;连接池=False李>
string dcs = @"Connection Timeout=180;Authentication Mechanism=LDAP;Response Buffer Size=64000;User Id=***;Data Source=my.production.server;Persist Security Info=True;Session Character Set=UTF16;Connection Pooling=False;Connection Pooling Timeout=15;Command Timeout=900";
Random r = new Random();
var shuffled = dcs.Split(';').OrderBy(x => r.Next()).ToArray();
var newCs = string.Join(";", shuffled);
强制限制总会话CPU是不寻常的;通常,此类限制适用于单个请求。但是,也许可以与您的DBA团队谈谈,看看他们是否愿意考虑当前的多维数据集刷新行为。如果没有,您可能需要单独的作业/包来强制单独的会话。对于最初提出的问题(如何强制单独的会话),您可能需要添加SSA和/或SSIS标记。这实际上不是Teradata或SQL语言问题。