什么是统计信息以及收集查看方法
概念: oracle的统计信息:存储在数据字典里,且从多个维度描述了Oracle数据库里对象的详细信息。CBO会利用这些统计信息来计算各条路径的成本。 分类: 表、索引、列、系统、数据字典、内部对象的统计信息 收集统计信息: ANALYZE 命令和DBMS_STATS包。表、
概念: oracle的统计信息:存储在数据字典里,且从多个维度描述了Oracle数据库里对象的详细信息。CBO会利用这些统计信息来计算各条路径的成本。分类: 表、索引、列、系统、数据字典、内部对象的统计信息
收集统计信息: ANALYZE 命令和DBMS_STATS包。表、索引、列、数据字典都可以用两个。系统、内部对象只能用DBMS_STATS。
1、ANALYZE analyze table PROC_PROGRESS_LOG delete statistics; --删除统计信息 analyze table PROC_PROGRESS_LOG estimate statistics sample 15 percent for table ; --估算模式,采样比例15%(估算结果和实际结果不一定会完全匹配) analyze table PROC_PROGRESS_LOG compute statistics;--计算模式
select * from dba_tables where table_name = 'PROC_PROGRESS_LOG'; --查看表相关信息 select * from USER_TAB_COLUMNS where TABLE_NAME='PROC_PROGRESS_LOG'--查看列相关信息
analyze table PROC_SMCS compute statistics for columns service_id , channel_id ; --对列进行计算模式的统计信息收集 执行完成之后,service_id , channel_id 确实已经有统计信息了,但是PROC_SMCS 表中的统计信息将会被抹掉。 也就是说,对同一个对象而言,新执行的analyze 命令会抹掉之前的analyze 的结果。
如果想一次性以计算模式收集表、表上的列、和表上的索引的统计信息,执行: analyze table PROC_PROGRESS_LOG compute statistics;
用DBMS_STATS包收集统计信息 官方推荐,oracle 8.1.5之后才有,看成是analyze的增强版 1、GATHER_TABLE_STATS:用于收集目标表、目标表的列和索引的统计信息。 2、GATHER_INDEX_STATS:收集索引的。 3、GATHER_SCHEMA_STATS:收集指定schema下的所有对象的。 4、GATHER_DATABASE_STATS:收集全库所有对象的。
exec dbms_stats.gather_table_stats(ownname => 'TEST',tabname=>'PROC_LETTER',estimate_percent => 15,method_opt => 'FOR TABLE',cascade => false); 只有PROC_LETTER表有统计信息,列和索引没有。 method_opt => 'FOR TABLE' 只适合11g以上版本,10以下的,还会收集列和索引的信息。 如果采用计算模式,将estimate_percent => 15 设置成100或者NULL
exec dbms_stats.gather_table_stats(ownname => 'TEST',tabname=>'PROC_LETTER',estimate_percent => 100,method_opt => 'FOR columns size 1 service_id channel_id',cascade => false); 以计算模式收集 service_id channel_id的统计信息,同时PROC_LETTER表上也会有统计信息。 DBMS_STATS做不到只收集列的统计信息而不收集表的统计信息。
exec dbms_stats.delete_table_stats(ownname => 'TEST' , tabname => 'PROC_LETTER'); 删除统计信息。
exec dbms_stats.gather_table_stats(ownname => 'TEST',tabname=>'PROC_LETTER',estimate_percent => 100,cascade => false); 一次性统计表、列、索引信息。
analyze 和 dbms_stats的区别: 1、analyze 不能正确收集分区表的统计信息,而dbms_stats可以。 2、analyze 不能并行收集统计信息,而dbms_stats可以。 exec dbms_stats.gather_table_stats(ownname => 'TEST',tabname=>'PROC_LETTER',estimate_percent => 100,cascade => false,degree=4); --并行度为4 3、dbms_stats不能收集与CBO无关的额外信息,如行迁移/行链接的数量、校验表和索引的结构信息。 analyze table XXX list chained rows into YYY --分析收集行迁移/行链接的数量 analyze index XXX validate structure 分析索引的结构

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

熱門話題

要查詢 Oracle 表空間大小,請遵循以下步驟:確定表空間名稱,方法是運行查詢:SELECT tablespace_name FROM dba_tablespaces;查詢表空間大小,方法是運行查詢:SELECT sum(bytes) AS total_size, sum(bytes_free) AS available_space, sum(bytes) - sum(bytes_free) AS used_space FROM dba_data_files WHERE tablespace_

在 Oracle 中獲取時間有以下方法:CURRENT_TIMESTAMP:返回當前系統時間,精確到秒。 SYSTIMESTAMP:比 CURRENT_TIMESTAMP 更準確,精確到納秒。 SYSDATE:返回當前系統日期,不含時間部分。 TO_CHAR(SYSDATE, 'YYYY-MM-DD HH24:MI:SS'): 將當前系統日期和時間轉換為特定格式。 EXTRACT:從時間值中提取特定部分,如年份、月份或小時。

Oracle 視圖加密允許您加密視圖中的數據,從而增強敏感信息安全性。步驟包括:1) 創建主加密密鑰 (MEk);2) 創建加密視圖,指定要加密的視圖和 MEk;3) 授權用戶訪問加密視圖。加密視圖工作原理:當用戶查詢加密視圖時,Oracle 使用 MEk 解密數據,確保只有授權用戶可以訪問可讀數據。

在 Oracle 中查看實例名的方法有三種:命令行中使用 "sqlplus" 和 "select instance_name from v$instance;" 命令。在 SQL*Plus 中使用 "show instance_name;" 命令。通過操作系統的任務管理器、Oracle Enterprise Manager 或檢查環境變量 (Linux 上的 ORACLE_SID)。

Oracle 安裝失敗的卸載方法:關閉 Oracle 服務,刪除 Oracle 程序文件和註冊表項,卸載 Oracle 環境變量,重新啟動計算機。若卸載失敗,可使用 Oracle 通用卸載工具手動卸載。

Oracle 無效數字錯誤可能由數據類型不匹配、數字溢出、數據轉換錯誤或數據損壞引起。排查步驟包括檢查數據類型、檢測數字溢出、檢查數據轉換、排查數據損壞,並探索其他可能的解決方案,如配置 NLS_NUMERIC_CHARACTERS 參數和啟用數據驗證日誌記錄。

可以通過使用 Oracle 的動態 SQL 來根據運行時輸入創建和執行 SQL 語句。步驟包括:準備一個空字符串變量來存儲動態生成的 SQL 語句。使用 EXECUTE IMMEDIATE 或 PREPARE 語句編譯和執行動態 SQL 語句。使用 bind 變量傳遞用戶輸入或其他動態值給動態 SQL。使用 EXECUTE IMMEDIATE 或 EXECUTE 執行動態 SQL 語句。

解決 Oracle 游標關閉問題的方法包括:使用 CLOSE 語句顯式關閉游標。在 FOR UPDATE 子句中聲明游標,使其在作用域結束後自動關閉。在 USING 子句中聲明游標,使其在關聯的 PL/SQL 變量關閉時自動關閉。使用異常處理確保在任何異常情況下關閉游標。使用連接池自動關閉游標。禁用自動提交,延遲游標關閉。
