Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/vim/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
收集teradata 14中的统计信息-不允许在同一组列上使用不同列顺序的多个统计信息_Teradata - Fatal编程技术网

收集teradata 14中的统计信息-不允许在同一组列上使用不同列顺序的多个统计信息

收集teradata 14中的统计信息-不允许在同一组列上使用不同列顺序的多个统计信息,teradata,Teradata,Teradata 14(由TC提供)还有另一个妙招,可能会让人大吃一惊 使用如下定义的表: CREATE TABLE test( CALENDAR_DATE DATE FORMAT 'YY/MM/DD' NOT NULL ,RETAIL_OUTLET_NUMBER INTEGER NOT NULL ,BASE_PRODUCT_NUMBER INTEGER NOT NULL ) PRIMARY INDEX (calendar_date, retail_o

Teradata 14(由TC提供)还有另一个妙招,可能会让人大吃一惊

使用如下定义的表:

CREATE TABLE test( 
CALENDAR_DATE DATE FORMAT 'YY/MM/DD' NOT NULL           
,RETAIL_OUTLET_NUMBER INTEGER NOT NULL   
,BASE_PRODUCT_NUMBER INTEGER NOT NULL      
) 
PRIMARY INDEX (calendar_date, retail_outlet_number, base_product_number)
此SQL将失败:

COLLECT STATS test COLUMN(
calendar_date, base_product_number, retail_outlet_number); 
出现以下错误消息:

3706:语法错误:不允许在同一组列上具有不同列顺序的多个统计信息

但是:

好的

现在,collect stats语句和主索引中的列顺序必须相同

有没有其他方法可以让它们在不改变列顺序的情况下工作


谢谢…

使用Teradata 14,您可以通过显式命名多列统计信息来解决这一问题:

COLLECT STATISTICS
 COLUMN (Calendar_Date, Base_Product_Number, Retail_Outlet_Number) AS Stats_CalDate_ProdNum_RtlNum
     ON test;
可使用以下方法进行后续回忆:

COLLECT STATISTICS COLUMN Stats_CalDate_ProdNum_RtlNum ON test;

Teradata客户可以通过Teradata@Your Service或您的CSR获得一本橙色手册,其中解释了这一点以及Teradata 14统计数据的其他注意事项。Carrie Ballinger还简要介绍了Teradata 14统计信息的增强功能。

这个错误是因为已经按顺序收集了统计信息

日历日期、零售店编号、基本产品编号

不能按不同顺序收集同一列的统计信息。因此,如果你想按你想要的顺序收集,即

日历日期、基本产品编号、零售店编号

你必须首先使用

DROP STATS ON TEST COLUMN(calendar_date, retail_outlet_number, base_product_number);

然后使用您的首选订单再次收款。

谢谢您的回复。我担心的是,我的逻辑在我自己的环境中以及在舞台上都能正常工作。但是,当我在生产中使用相同的代码时,它会因给定的错误而失败。这是因为任何Teradata环境设置吗?teradata的数据设备在生产和测试中是不同的。您在每个环境中运行的teradata版本是什么?我在测试和生产中都使用teradata 14。如果两个环境都运行teradata 14,那么如果您不在同一组数据上使用命名的多列统计信息集合,我将看到错误3706列的顺序不同。不应该与环境设置有任何关系。当您在PROD中获取错误后收集统计数据时,是否可能测试中不存在这些统计数据。
DROP STATS ON TEST COLUMN(calendar_date, retail_outlet_number, base_product_number);