0

试图在一个VT 问题上收集样本 2 pct 多列统计信息,它没有采样或者我遗漏了一些东西

COLLECT STATISTICS USING sample 2 percent 
        COLUMN ( C1,C2,C3) , 
        COLUMN ( C1 ) on vt  , 

易失性表 VT 有几十亿行,收集 VT 上的统计数据与常规统计数据收集一样多“永远”时间。
同样在其他地方,在过去的类似情况下,我观​​察到如果我使用“新”(一个多列)统计集合语法,它会对第一个列进行采样并忽略其余部分(现在这第二部分没有全部验证自从我把它更多地基于“花费时间”的预感而不是窥视历史以来的方式。)

    show  stats values  
            COLUMN ( C1,C2,C3 ) , 
            COLUMN ( C1 )  on vt;

COLLECT STATISTICS 
            COLUMN ( C1,C2,C3 )
                ON  vt 
            VALUES
(
 /** SummaryInfo **/ 
 /* Data Type and Length: 'I8:8', 'I:4', 'CF:1' */
 /* TimeStamp             */ TIMESTAMP '2016-03-29 16:16:13-00:00', 
 /* Version               */ 6, 
 /* OriginalVersion       */ 6, 
 /* DBSVersion            */ '14.00.00', 
 /* UsageType             */ 'D', 
 /* ComplexStatInfo       */ 'ComplexStatInfo', 
 /* NumOfBiasedValues     */ 0, 
 /* NumOfEHIntervals      */ 200, 
 /* NumOfHistoryRecords   */ 1, 
 /* SamplePercent         */ 0.00, 
 /* NumOfNulls            */ 0, 
 /* NumOfAllNulls         */ 0, 
 /* NumOfPartialNullVals  */ 0, 
 /* PartialNullHMF        */ 0, 
 /* AvgAmpRPV             */ 0.000000, 
 /* MinVal                */ 2012070201942549261, 221945585, 'P', 
 /* MaxVal                */ 2014022922306867633, 277308727, 'P', 
 /* ModeVal               */ 2012070201942549261, 221945585, 'P', 
 /* HighModeFreq          */ 1, 
 /* NumOfDistinctVals     */ 1201056221, 
 /* NumOfRows             */ 1201056221, 
 /* CPUUsage              */ 0.000000, 
 /* IOUsage               */ 0.000000, 
 /* Reserved              */ 0, 
 /* Reserved              */ 0, 
 /* Reserved              */ 0.000000, 
 /* Reserved              */ 0.000000, 
 /* Reserved              */ '', 
 /* StatsSkipCount        */ 0, 
 /* SysInsertCnt          */ 0, 
 /* SysDeleteCnt          */ 0, 
 /* SysUpdateCnt          */ 0, 
 /* SysInsDelLastResetTS  */ TIMESTAMP '9999-12-31 23:59:59-00:00', 
 /* SysUpdLastResetTS     */ TIMESTAMP '9999-12-31 23:59:59-00:00', 
 /* IsSampleFollowingTrend*/ 0, 
 /** Interval: MaxVal[3], ModeVal[3], ModeFreq, LowFreq, OtherVals, OtherRows **/ 

这里

/* SamplePercent */ 0.00,
是我要去的。我确定我错过了一些东西。

4

1 回答 1

1

这是/* DBSVersion */ '14.00.00',正确的吗?您似乎运行了一个非常旧的版本,这是 TD Express 吗?

好吧,如果你有一个 5,000,000,000 行的表,这/* NumOfRows */ 1201056221,似乎表明大约。25%,这也很奇怪。

如果你解释你的COLLECT STATS,你可以看看它是否真的是采样。

你可以添加表的 DDL 吗?

于 2016-03-30T12:09:10.720 回答