2012-01-02 61 views
0

当我使用BTEQ从teradata中导出表时,输出行数与选择查询数不匹配。以下是BTEQ所示的警告BTEQ由DBS返回的活动计数与返回的实际行数不匹配

Warning: The activity count returned by DBS does not match 
       the actual number of rows returned. 
       Activity Count=495294, Total Rows Returned=495286 

这里是选择查询,

SELECT CUST_ID, SPEC1_CODE FROM Table 
GROUP BY 1,2 

这里是创建表的脚本,

CREATE MULTISET TABLE Table ,NO FALLBACK , 
    NO BEFORE JOURNAL, 
    NO AFTER JOURNAL, 
    CHECKSUM = DEFAULT 
    (
     RECORD_KEY DECIMAL(20,0) NOT NULL, 
     CUST_ID VARCHAR(40) CHARACTER SET LATIN NOT CASESPECIFIC NOT NULL, 
     SPEC1_CODE VARCHAR(50) CHARACTER SET LATIN NOT CASESPECIFIC) 
PRIMARY INDEX (RECORD_KEY); 

当我们接触Teradata的支持,他们问我们运行以下查询。

DIAGNOSTIC NOAGGRENH ON FOR SESSION; 

因此,如果我们运行上面的查询,然后运行我们的select/BTEQ导出,它工作正常。

+0

您能否提供有关生成警告消息的SELECT语句的更多详细信息?源表是否定义为SET或MULTISET? – 2012-01-02 14:50:42

回答

2

我希望你能尽快回复我的问题,但我会把这个问题作为你在警告信息中看到的差异的可能原因。

您的表格被定义为MULTISET,它具有非唯一的主索引或可能作为Teradata 13.x中的NOPI表。表格或唯一索引没有附加的唯一约束。该表已加载8个重复的数据行。

由于我无法根据您的描述精确定位的原因BTEQ返回了一组唯一的记录,但优化程序指出该语句的活动计数更大。因此你看到的警告信息。

+1

感谢您的回复Paller。用更多信息更新了我的问题。 – emaillenin 2012-01-06 11:45:59

+0

GROUP BY绝对不应该导致显示该警告消息。不熟悉那个特定的诊断。我想知道这是否与一个开放的NTA有关,这个开放的NTA没有DR或没有应用到你的环境中。 – 2012-01-06 14:38:06