標籤

4GL (1) 人才發展 (10) 人物 (3) 太陽能 (4) 心理 (3) 心靈 (10) 文學 (31) 生活常識 (14) 光學 (1) 名句 (10) 即時通訊軟體 (2) 奇狐 (2) 爬蟲 (1) 音樂 (2) 產業 (5) 郭語錄 (3) 無聊 (3) 統計 (4) 新聞 (1) 經濟學 (1) 經營管理 (42) 解析度 (1) 遊戲 (5) 電學 (1) 網管 (10) 廣告 (1) 數學 (1) 機率 (1) 雜趣 (1) 證券 (4) 證券期貨 (1) ABAP (15) AD (1) agentflow (4) AJAX (1) Android (1) AnyChart (1) Apache (14) BASIS (4) BDL (1) C# (1) Church (1) CIE (1) CO (38) Converter (1) cron (1) CSS (23) DMS (1) DVD (1) Eclipse (1) English (1) excel (5) Exchange (4) Failover (1) Fedora (1) FI (57) File Transfer (1) Firefox (3) FM (2) fourjs (1) Genero (1) gladiatus (1) google (1) Google Maps API (2) grep (1) Grub (1) HR (2) html (23) HTS (8) IE (1) IE 8 (1) IIS (1) IMAP (3) Internet Explorer (1) java (4) JavaScript (22) jQuery (6) JSON (1) K3b (1) ldd (1) LED (3) Linux (120) Linux Mint (4) Load Balance (1) Microsoft (2) MIS (2) MM (51) MSSQL (1) MySQL (27) Network (1) NFS (1) Office (1) OpenSSL (1) Oracle (131) Outlook (3) PDF (6) Perl (60) PHP (33) PL/SQL (1) PL/SQL Developer (1) PM (3) Postfix (2) postfwd (1) PostgreSQL (1) PP (50) python (5) QM (1) Red Hat (4) Reporting Service (28) ruby (11) SAP (234) scp (1) SD (16) sed (1) Selenium (3) Selenium-WebDriver (5) shell (5) SQL (4) SQL server (8) sqlplus (1) SQuirreL SQL Client (1) SSH (3) SWOT (3) Symantec (2) T-SQL (7) Tera Term (2) tip (1) tiptop (24) Tomcat (6) Trouble Shooting (1) Tuning (5) Ubuntu (37) ufw (1) utf-8 (1) VIM (11) Virtual Machine (2) VirtualBox (1) vnc (3) Web Service (2) wget (1) Windows (19) Windows (1) WM (6) Xvfb (2) youtube (1) yum (2)

2026年7月21日 星期二

嚴重 screwed column,強制指定建立 254 階直方圖,讓oracle 選擇正確excution plan

REPORT_PROCESS_MAIL 嚴重 screwed 

BEGIN
    DBMS_STATS.GATHER_TABLE_STATS(
        ownname          => 'REVIEWREPORT',
        tabname          => 'REPORT_PROCESS_MAIL',
        method_opt       => 'FOR COLUMNS SIZE 254 SEND_MAIL_FLAG',
        estimate_percent => DBMS_STATS.AUTO_SAMPLE_SIZE,
        -- estimate_percent => 100,
        
cascade          => TRUE
    );
END;
/



收集後驗證 Histogram 是否成功建立

SELECT column_name, num_distinct, num_buckets, histogram
  FROM all_tab_col_statistics
WHERE owner = 'REVIEWREPORT' 
     AND table_name = 'REPORT_PROCESS_MAIL'
     AND column_name = 'SEND_MAIL_FLAG';


如果 HISTOGRAM 顯示 FREQUENCYHYBRID(且 NUM_BUCKETS > 1),才代表直方圖建立成功

以下SQL 可以觀察 直方圖分布
SELECT 
    column_name,
    endpoint_number,     -- 累積筆數/端點編號 (Cumulative row count or bucket number)
    endpoint_value,      -- 數值型態的值 (若是文字型態會被轉成 Double)
    endpoint_actual_value-- Oracle 12c+ 用於顯示文字型態的真實字串 (若是文字欄位)
FROM all_tab_histograms
WHERE owner = 'REVIEWREPORT'
  AND table_name = 'REPORT_BATCH_MAIL'
  AND column_name = 'ERROR_FLAG' -- 指定要查看直方圖的欄位
ORDER BY endpoint_number;

沒有留言:

張貼留言