table column histogram .親自實驗檢驗得出的學習筆記。
-- 看來,學習還是要時常牢記那句話:
紙上得來終覺淺,絕知此事要躬行。
表欄位柱狀圖的理解:
-- dictionary :
dba_tab_col_statistics/user_tab_col_statistics
dba_tab_histogram/user_tab_histogram
-- definition:
the definition name is base the meaning of column endpoint_number.
1, 當欄位列DISTINCT VALUE>255 時,只能建立HBH(HEIGHT-BALANCED)HISTOGRAM. 即:平衡樹。
here endpoint_number is stand for card-weighted(記錄行數加權值),
and endpoint_value is stand for the statistics-top-limit value(統計截止列值)。
calculate the full table scan result cardinality between valus of a specific column col1 is :
return card = ((endpoint-number1- endpoint-number2 ) PER (endpoint_value1 - endpoint_value2) )/ (MAX(endpoint-number)in the column bucket)
return card is (0,1), the closer to 1 and the larger of card .
成本值是個百分比,大於零,小於1,越接近1,越接近返回所有行記錄。
2, 當欄位列DISTINCT VALUE<=255 時,建立VBH(VALUE-BASED) HISTOGRAM 或者 FH(FREQUENCY-HISTOGRAM). 即:頻率分部圖。
--
endpoint-number:
1,HBH : cumulative card weight , used for (endpoint-number1 - endpoint-number2)/(MAX(endpoint-number)in the column bucket) get the return card percent of full table . 簡記為:成本加權
2,FH : the frequency of the actual column value that is the same row of endpoint_value. 簡記為:值為endpoint_value在表中的記錄行數
endpoint-value:
1,HBH : the specific column value , used for (endpoint-value1 - endpoint-value2) 簡記為:表的當前列值,只有區間使用才有意義(colvalue >endpoint_value1 and colvalue
---UNDERSTANDING:
in use HBH:
card weight = (endpoint-number1- endpoint-number2 ) PER (endpoint_value1 - endpoint_value2)
if the value is even distribute, then the difference of neighbor endpoint-number is around 1, and start with 0.
if the value is skew distribute, then the difference of neighbor endpoint-number is very large than others , maybe not start with 0.
in use FH: -- sample 例子:
endpoint-number IS standing for the cumulative value of rows AT every endpoint_value, so here the endpoint_value is actually equal to the database column value.
and we can conclude :
for a individual value search , such as where col1='val1' . then the return cardinality/rows is:
value (endpoint_number1- endpoint_number2) in user_tab_histogram(where table_name='tab1' and column_name='COL1' and endpoint_value=NUM_VAL1.
for a RANGE value search , such as where col1 > num1 and col1
and endpoint_value>NUM_VAL1 and endpoint_value
exec dbms_stats.gather_table_stats(user,'TB1',estimate_percent => NULL, method_opt => 'FOR COLUMNS id SIZE AUTO' )
if you use the specified column , then the other unspecified column will not be statisticed.
estimate_percent => NULL means using compute statiscs ,that's 100 percent or full table statistics.
by default , parameter 'SIZE AUTO' will not generate histogram when the column value is distribute even. But you can enforce oracle generate
bucket by using parameter 'SIZE 10' (1..254).
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/350519/viewspace-1040168/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Mysql學習筆記-臨鍵鎖實驗MySql筆記
- oracle實驗記錄 (histogram是否影響解析)OracleHistogram
- 學習筆記:openstack實驗環境安裝筆記
- Django學習筆記—驗證碼Django筆記
- Redis學習筆記六:持久化實驗(AOF,RDB)Redis筆記持久化
- swoft 學習筆記之驗證器筆記
- validator 驗證框架(學習筆記)框架筆記
- 強化學習-學習筆記10 | 經驗回放強化學習筆記
- [PT]Column Histogram StatisticsHistogram
- haproxy實驗筆記筆記
- substrate學習筆記1:Substrate初體驗筆記
- angular學習筆記(二十)-表單驗證Angular筆記
- 工作學習筆記(八)去重校驗筆記
- 應用統計學與R語言實現學習筆記(七)——擬合優度檢驗R語言筆記
- lfs 6.3實驗筆記筆記
- 學習筆記 檢視筆記
- Nacos 學習筆記:安裝執行初體驗筆記
- Symfony2學習筆記之資料校驗筆記
- 真實記錄我的學習linux的經驗Linux
- vsftpd筆記後的實驗薦FTP筆記
- 物化檢視學習筆記筆記
- 20160322 javaweb 學習筆記--response驗證碼實現JavaWeb筆記
- Bootstrap Table 學習筆記之列引數(一)boot筆記
- MVC學習筆記之:ASP.NET MVC的客戶端驗證-jQuery.validate驗證結合Model驗證中的實現MVC筆記ASP.NET客戶端jQuery
- MYSQL學習與實驗(八)——儲存過程實驗MySql儲存過程
- KgCaptcha驗證碼實現筆記GCAPT筆記
- UWP學習——來自前輩們的經驗
- substrate學習筆記8:ink合約開發之初體驗筆記
- 深度學習“吃雞外掛”——目標檢測 SSD 實驗深度學習
- oracle學習筆記——檢視、索引Oracle筆記索引
- 演算法學習之路|檢驗身份證演算法
- 在香港尖沙咀基因檢測中心6周查血驗男女檢測後的感想,分享親身經驗
- 漏洞挖掘-靜態分析實驗筆記筆記
- 全面學習MySQL中的檢視(1) 檢視安全驗證的方式MySql
- AC自動機學習筆記筆記
- AC 自動機學習筆記筆記
- 實驗設計(DOE)學習心得
- 實戰表單驗證學習