尝试在VT
上收集样本2 pct多列统计信息
问题是,它没有采样或我遗漏了什么
COLLECT STATISTICS USING sample 2 percent
COLUMN ( C1,C2,C3) ,
COLUMN ( C1 ) on vt ,
易失性表VT具有几十亿行,并且在VT上收集统计数据需要与“常规统计数据集合”一样多的“永久”时间。
在其他地方,在过去类似的情况下,我观察到如果我使用'new'(多个cols in one)stats集合语法,它会对第一个col进行采样并忽略其余部分(现在这个第二部分是自从我把它更多地放在一个“花时间”预感而不是偷偷摸摸地进入历史时,所以我一直都在验证。)
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,
我正在经历的事情。我相信我错过了一些东西。
答案 0 :(得分:1)
这/* DBSVersion */ '14.00.00',
是否正确?您似乎运行了一个非常旧的版本,这是TD Express吗?
好吧,如果你有一个5,000,000,000行表,这个/* NumOfRows */ 1201056221,
似乎表示约。 25%,这也很奇怪。
如果你解释一下COLLECT STATS
,你可以看到它是否真的是在抽样。
你可以添加表的DDL吗?