oracle實驗記錄 (連線選擇率,範圍與null)
~------------------------------------
optimizer_dynamic_sampling 2
LSE
先看下 10 G 動態取樣
SQL> select num_distinct ,column_name from dba_tab_col_statistics where table_na
me='T3';
no rows selected
L> select * from t3;
A
--------
1
L> select num_distinct ,column_name from dba_tab_col_statistics where table_na
='T3';
rows selected
L> select num_distinct ,column_name from dba_tab_col_statistics where table_na
SQL> exec dbms_stats.gather_table_stats('sys','T3');
PL/SQL procedure successfully completed.
SQL> select num_distinct ,column_name from dba_tab_col_statistics where table_na
me='T3';
NUM_DISTINCT COLUMN_NAME
------------ ------------------------------
1 A
動採不會寫入資料字典
~~~~~~~~關於範圍連線
中包含null
SQL> select column_name,num_distinct,num_nulls from dba_tab_col_statistics where
table_name='T2';
COLUMN_NAME NUM_DISTINCT NUM_NULLS
------------------------------ ------------ ----------
FILTER 50 100
JOIN1 40 0
V1 10000 0
PADDING 1 0
SQL> select column_name,num_distinct,num_nulls from dba_tab_col_statistics where
table_name='T1';
COLUMN_NAME NUM_DISTINCT NUM_NULLS
------------------------------ ------------ ----------
FILTER 25 200
JOIN1 30 500
V1 10000 0
PADDING 1 0
SQL> set autotrace traceonly explain
SQL> select t1.v1, t2.v1
2 from
3 t1,
4 t2
5 where
6 t1.filter = 1
7 and t2.join1 > t1.join1
8 and t2.filter = 1
9 ;
Execution Plan
----------------------------------------------------------
0 SELECT STATEMENT ptimizer=ALL_ROWS (Cost=68 Card=3881 Bytes
=131954)
1 0 MERGE JOIN (Cost=68 Card=3881 Bytes=131954)
2 1 SORT (JOIN) (Cost=34 Card=198 Bytes=3366)
3 2 TABLE ACCESS (FULL) OF 'T2' (TABLE) (Cost=18 Card=198
Bytes=3366)
4 1 SORT (JOIN) (Cost=35 Card=392 Bytes=6664)
5 4 TABLE ACCESS (FULL) OF 'T1' (TABLE) (Cost=18 Card=392
Bytes=6664)
SQL> select 198*392*0.05 from dual;~~~~~~~~~~~~~~~按 5%規定算,不是按公式 所以與null無關
198*392*0.05
------------
3880.8
t1 過濾基數=1/(num_distinct) *(10000-200(null))=SQL> select 1/25*(10000-200) from dual;
1/25*(10000-200)
----------------
392
t2=
SQL> select 1/50*(10000-100) from dual;
1/50*(10000-100)
----------------
198
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/12020513/viewspace-607804/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- uniapp 周選擇範圍時間APP
- element-ui 時間選擇器設定時間選擇範圍UI
- 直播帶貨原始碼,日期時間選擇器 選擇範圍限制原始碼
- vue 多時間段範圍選擇及回顯 元件封裝Vue元件封裝
- Go IP 段範圍校驗Go
- Oracle日期時間範圍查詢Oracle
- [20190827]函式索引與選擇率.txt函式索引
- Range範圍選區的理解
- 【問題記錄】—SignalR連線斷線重連SignalR
- dcat-admin 統計修改時間選擇器 日期範圍查詢
- 「Adobe國際認證」Adobe Photoshop,選擇影像中的顏色範圍
- 核範數與規則項引數選擇
- CSS 選擇器命名規範CSS
- 【NULL】Oracle null值介紹NullOracle
- MySQL 唯一索引範圍查詢鎖下一個記錄的理解MySql索引
- 記錄一下MySql update會鎖定哪些範圍的資料MySql
- element日期選擇器,時間範圍設定為一週,vue中的寫法Vue
- cx_Oracle 連線 OracleOracle
- 打家劫舍+數字範圍按位與
- Cookie 的特徵與範圍用例Cookie特徵
- JDBC連線MySQL8.0.13的記錄JDBCMySql
- TCP連線狀態異常記錄TCP
- 記錄一下MySQL的連線MySql
- HTTP客戶端連線,選擇HttpClient還是OkHttp?HTTP客戶端client
- 5G頻率如何影響範圍和速度
- 大資料實驗記錄大資料
- Redis連線超時排查實錄Redis
- Servlet連線OracleServletOracle
- PHP 連線 OraclePHPOracle
- thinkphp連線OraclePHPOracle
- PHP 連線oraclePHPOracle
- win10 顯示器頻率超出範圍怎麼辦 win10顯示器頻率超出範圍怎麼解決Win10
- Kotlin實戰【三】表示與選擇Kotlin
- wpf中DatePicker控制元件只能輸入年月,只能輸入年份,限制日期選擇範圍控制元件
- 記錄連線數導致警報失效,連線池少問題
- JavaScript基礎 —— DOM:遍歷 與 範圍JavaScript
- 備忘錄:關於.net程式連線Oracle資料庫Oracle資料庫
- mysql load 相關實驗記錄MySql
- oracle 連線查詢Oracle