CLUSTERING_FACTOR

 我们知道clustering_factor是通过oracle的索引得到表数据块的一个因子,实际上表示index列的排列顺序和表中index这个列的排列顺序的关系,在极端的情况下:
1、clustering_factor=表中记录的数目,这表明表中index这个列的存储是随机的。
比如:
SQL> create table t1 as select * from all_objects order by object_name;
表已创建。
SQL> create index t1_i1 on t1(object_id);
索引已创建。
SQL> exec dbms_stats.gather_table_stats(USER,'T1',cascade=>true);
PL/SQL 过程已成功完成。
SQL> SELECT num_rows,blocks FROM user_tables where table_name='T1' ;
NUM_ROWS         BLOCKS
----------         --------------
     41742                  578

SQL> SELECT clustering_factor from user_indexes where index_name='T1_I1';
CLUSTERING_FACTOR
-----------------
            21402  
(可以这样理解,如果我们要通过index的顺序读完这个表的所有数据块,那么需要查看21402个数据块,你也许觉得奇怪
   这个表一共才578个数据块,怎么会需要读21402个块呢? 这是因为由于数据的存放顺序是按object_name来
存放的,通过index通过object_id的顺序来读取表必然导致oracle多次重复读取一个块,而oracle并不会保留它曾经读过的块
的记录,当然在oracle9i中的perfetch功能一定程度上减轻了这个问题)
表数据库的存放顺序是按object_name来排序的,而index是按object_id来排序的,这种情况下,t1_i1的clustering_factor应该接近
表 t1的记录条数。
2、clustering_factor=表中数据块的个数
比如:
SQL> create table t1 as select * from all_objects order by object_id;
表已创建。
SQL> SELECT COUNT(*) FROM T1;
COUNT(*)
----------
     41744
SQL> create index t1_i1 on t1(object_id);
索引已创建。
SQL> exec dbms_stats.gather_table_stats(USER,'T1',cascade=>true);
PL/SQL 过程已成功完成。
SQL> SELECT clustering_factor from user_indexes where index_name='T1_I1';
CLUSTERING_FACTOR
-----------------
              578
SQL> select blocks from user_tables where table_name='T1';
    BLOCKS
----------
       578
SQL>
表数据库的存放顺序是按object_id来排序的,而index是按object_id来排序的,这种情况下,t1_i1的clustering_factor应该和表占用空间的块数相当(这个例子恰好相等)。
关于clustering_factor的几个神话
1、通过索引的重建可以减少clustering_factor,这是错误的因为重建index不能改变表中数据存放的顺序,因此也不能改变
    clustering_factor。
2、高的clustering_factor意胃这index中的碎片很高,或者有很多的空的叶子块。
3、删除后再创建index可以降低clustering_factor。
需要注意的是clustering_factor主要影响index range scan和对于 index equal的查询影响相对小些。高的clustering_factor对于执行计划来说是绝对不好的,但是我们知道一个表中不可能所有的index clustering_factor都低,因为表的存放顺序是一定的。
 
--------------------------------转载.....

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/24217871/viewspace-677689/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/24217871/viewspace-677689/

``` {—————————————— 智能选股系统 V8.3 OPTIMIZED ——————————————} // 神经微分进化优化器 PARAM_OPTIMIZE := NEURAL_DIFFERENTIAL_EVOLUTION( EPOCH=3000, POP_SIZE=2000, MUTATION_RATE=ADAPTIVE_MUTATION(0.15, 0.003), CROSSOVER=TOPOGRAPHY_AWARE_CROSS(0.7), FITNESS=0.7*SHARPE_RATIO + 0.3*CALMAR_RATIO, CONSTRAINT=[MAX_PARAM_CHANGE<0.2, FEATURE_IMPORTANCE>0.05]); // 3D特征引擎 ALPHA_FACTOR := DEEP_FEATURE_FUSION( TEMPORAL_STREAM=TEMPORAL_CONVOLUTION( [NEURAL_VOL_SURFACE(5,0.7), DEEP_ORDERBOOK_IMBALANCE(10,0.9)], KERNEL_SIZE=[3,5,7]), SPATIAL_STREAM=SPATIAL_ATTENTION( INDUSTRY_CORR_MATRIX, SECTOR_EMBEDDING=64), FUSION_LAYERS=[ TRANSFORMER_ENCODER(8,256), GRADIENT_BOOSTED_SELECTOR(500,0.01)] ); // 高频资金流模型 NORTH_FLOW := MULTI_SCALE_DRL( TIME_SCALES=[1M,5M,30M,1H], STATE_ENCODING=GRAPH_CONV_NET( NODE_FEATURES=[HKHOLD,INDEX_FUTURE,ETF_FLOW_DERIV], EDGE_WEIGHTS=CROSS_ASSET_CORR), REWARD=1.4*RETURN_SMOOTH(0.9) - 0.3*VOL_ADJUSTED_DRAWDOWN + 0.2*FLOW_GRADIENT ); // 自适应波动率引擎 VOL_REGIME := NEURAL_REGIME_SWITCH( VOL_COMPONENTS=[VOL_BAND, GARCH(1,1), JUMP_DIFFUSION], TRANSITION_NET=TCN( INPUT_DIM=6, LEVELS=8, DILATION_FACTOR=2), JUMP_DETECTION=BAYESIAN_CHANGE_POINT( PRIOR_ALPHA=0.1, WARNING_THRESH=0.95) ); // 行业轮动升级版 INDUSTRY_SCORE := 0.35*DYNAMIC_NLP_SENTIMENT( [NEWS,TWITTER,REDDIT,INST_RESEARCH], TIME_DECAY=EXP(-0.07*DELAY), TOPIC_CLUSTERING=BERT_TOPIC(256)) + 0.30*ADAPTIVE_MOMENTUM( WINDOW=FOURIER_ADAPTIVE(14), VOL_ADJUSTED=TRUE, DECAY=0.02) + 0.25*FLOW_MOMENTUM_3D( LEAD_LAG=[1.2, 0.8], LIQUIDITY_MULT=VOL_SMOOTH_ADJ) + 0.10*POLICY_SENSITIVITY** (2.0 - 0.35*MARKET_PHASE); // 深度信号融合 FINAL_SIGNAL := DEEP_FUSION_NET( INPUTS=[ TEMPORAL_CONVOLUTION(ALPHA_STREAMS, [3,5,7]), SPATIAL_ATTENTION(INDUSTRY_CORR_MATRIX, 64) ], FUSION_LAYERS=[ TRANSFORMER_ENCODER(8,256), GRADIENT_BOOSTED_SELECTOR(500,0.01) ], ACTIVATION_CONDITIONS=[ Q_SIGNAL >= NEURAL_THRESHOLD(MARKET_PHASE), VOL_RATIO > 1.5*DYNAMIC_BETA, PRICE_QUANTILE(0.85, 50, ADAPTIVE=TRUE), LIQUIDITY_SCORE > 0.97, INST_FLOW_DURATION >= 3.2, ANOMALY_SCORE > NEURAL_ANOMALY_THRESH, FUND_CONFIRM(3D, 0.8, CONFIRM_RATIO=0.7) ], DYNAMIC_WEIGHTS=NEURAL_PERTURBATION_WEIGHTS(0.0005,20) ); // 多层级风控 RISK_CONTROL := HIERARCHICAL_RISK_SYSTEM( L1=VOLATILITY_CAP(0.25, ADAPTIVE_SKEW), L2=CORRELATION_DIVERSIFIER( MAX_SECTOR_EXPOSURE=0.15, MIN_FACTOR_DIVERGENCE=0.3), L3=BLACKSWAN_PROTECTION( STRESS_INDEX>0.85, LIQUIDITY_FLOOR=0.001, HEDGE_RATIO=0.3) );```你的身份是高级编程技术专家,精通各类编程语言,能对编程过程中的各类问题进行分析和解答。我的问题是【我正在编辑【通达信条件选股】代码,遇到了 【错误句 : 详细信息 : 单词最大字符数不得超过 15 个 错误起始位置 : 0 ; 长度: 0】,请帮我检查并改正错误点补全正确代码,生成修正后完整代码。原有选股逻辑完整保留。
最新发布
03-29
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值