一.說明

一網友問我將一個查詢的結果集存放到臨時表里,如果估算臨時表的大小,當時想的方法是通過統計block來計算。后來想,此方法的操作性也不是很高。 最好是能在查詢操作執行之前就能估算出大小。

查看了一下ALL_TABLES 表,其中有個字段:avg_row_len. 該值單位為bytes。 可以一句這個字段來進行一個估算。

AVG_ROW_LEN*

NUMBER

Average length of a row in the table (in bytes)

根據對表大小的估算,進而可以估算出整個數據庫的大小。 在項目測試階段,可以根據所有對象進行估算,從而可以估算出系統上線以后數據庫的大小,根據這些數據可以規划存儲。這里要注意一點,要給備份留足存儲空間。 一般備份需要的空間是DB的2-3倍。 如果DB 是100G,那么給備份的空間最好是200G以上。

根據dba_segments視圖可以查看數據庫中占用存儲空間的對象:

SYS@anqing2(rac2)> select distinctsegment_type from dba_segments;

SEGMENT_TYPE

------------------

LOBINDEX

INDEX PARTITION

TABLE PARTITION

NESTED TABLE

ROLLBACK

LOB PARTITION

LOBSEGMENT

INDEX

TABLE

CLUSTER

TYPE2 UNDO

11 rows selected.

這里主要就是表和索引。把所有表和索引的大小估算出來,在相加就可以估算出DB的大小了。

二. 估算表的大小

表的大小=記錄數*平均字段大小(avg_row_len)

Avg_row_len 可以通過如下SQL 查詢。 其單位為bytes。

SYS@anqing2(rac2)> selecttable_name,avg_row_len from all_tables where table_name='T1';

TABLE_NAME                     AVG_ROW_LEN

------------------------------ -----------

T1                                      93

如果T1 表未來估計為1000萬行,那么其大小就是1000w*93bytes。

三.估算表上索引的大小

All_indexes 視圖沒有all_tables 上的avg_row_len 字段,不過我們可以通過視圖和表大小的一個比率進行估算。 表的大小我們可以估算出來,索引的大小可以通過這個比率進行估算。

SQL>create index idx_t1_created on t1(created)

SQL>exec dbms_stats.gather_table_stats('SYS','T1',cascade=>TRUE)

SYS@anqing2(rac2)> selectsegment_name,segment_type,bytes,blocks from dba_segments where segment_namein  ('T1','IDX_T1_CREATED');

SEGMENT_NAME    SEGMENT_TYPE            BYTES     BLOCKS

--------------- ---------------------------- ----------

T1              TABLE                 6291456        768

IDX_T1_CREATED  INDEX                 2097152        256

計算索引和表的比率:

SYS@anqing2(rac2)> select (2097152/6291456)*100,(256/768)*100 from dual;

(2097152/6291456)*100 (256/768)*100

--------------------- -------------

33.3333333    33.3333333

從bytes 和 blocks 的比率是一樣,即索引是表的33%。 那么如果估算表以后的大小是1000M,那么對應的索引大小就是1000M*33%=330M。

把所有表和索引的大小加起來,就是整個數據庫大小的估算值。

-------------------------------------------------------------------------------------------------------

Blog: http://blog.csdn.net/tianlesoftware

Weibo: http://weibo.com/tianlesoftware

Email: dvd.dba@gmail.com

DBA1 群:62697716(滿);   DBA2 群:62697977(滿)  DBA3 群:62697850(滿)

DBA 超級群:63306533(滿);  DBA4 群:83829929(滿) DBA5群: 142216823(滿)

DBA6 群:158654907(滿)   DBA7 群:69087192(滿)  DBA8 群:172855474

DBA 超級群2:151508914  DBA9群:102954821     聊天 群:40132017(滿)

--加群需要在備注說明Oracle表空間和數據文件的關系,否則拒絕申請

oracle估算大小,Oracle 估算數據庫大小的方法相关推荐

  1. jpa oracle mysql,JPA-Oracle-Mysql連接數據庫配置

    //...省略datasouce class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean" ...

  2. oracle.manageddataaccess idataparameter,.net 通過ODP.NET Managed 連接Oracle數據庫

    1.  Oralce官網 下載 安裝   ODTforVS2015_121025    重啟VS 2.項目引用 Oracle.ManagedDataAccess.dll 3.數據庫連接字符串: use ...

  3. FMDB與SQLite 數據庫應用示範:打做一隻簡單的電影資料庫 App

    原文:http://www.appcoda.com/fmdb-sqlite-database/ 作者:GABRIEL THEODOROPOULOS 譯者:kmyhy 通常在 App 中使用數據庫并處理 ...

  4. oracle缺少key xe.reg,【Oracle XE系列之一】Windows 7 64位安裝Oracle XE(32位)數據庫(REG_XE報錯、字符集、修改8080端口等)...

     一.安裝 1.去Oracle官網下載XE版的安裝包(貌似Windows只有32位的,Linux只有6位的),解壓. 2.雙擊Setup.exe,啟動安裝程序,在選在路徑那里不要點下一步,否則會報 ...

  5. 數據庫ORACLE轉MYSQL存儲過程遇到的坑~(總結)

    ORACLE數據庫轉MySQL數據庫遇到的坑 總結 最近在做Oracle轉mysql的工程,遇到的坑是真的多,尤其是存儲過程,以前都沒接觸過類似的知識,最近也差不多轉完了就總結一下.希望能幫到一些人( ...

  6. rodbc 连接oracle,R語言 使用RODBC連接oracle數據庫

    使用R語言有多種包可以連接oracle數據庫,我今天在這里講一下使用使用RODBC連接oracle數據庫. 1. 如果你的本地是windows系統的話,你需要安裝oracle客戶端. 2. 然后需要在 ...

  7. 远程连接oracle01017,連接Oracle遠程數據庫錯誤:ORA-12541,ORA-12514,ORA-01017的解決方法!...

    1.出現如下錯誤:ORA-12541:TNS:no listener,如下圖所示: 錯誤原因是我們沒有開啟Listener監聽器服務,解決方法是在服務中開啟這個服務,如下圖所示. 2.出現如下錯誤:O ...

  8. oracle odp arraybindcount 极限,極限挑戰—C#+ODP 100萬條數據導入Oracle數據庫僅用不到1秒...

    .Net程序中可以通過ODP調用特性,對Oracle數據庫進行操作,今天來講一下數據批量插入的功能,所用技術不高不深,相信很多朋友都接觸過,小弟班門弄斧了,呵呵.這篇文章是上篇文章的續集,因為上一次試 ...

  9. MVC+Ninject+三层架构+代码生成 -- 总结(一、數據庫)

    一.數據表 是參照 別人的庫建表的 ,主鍵都是用int 自增,若是跨數據庫的話,建議使用GUID為主鍵. 转载于:https://www.cnblogs.com/chuangjie1988/p/739 ...

最新文章

  1. python编程入门书-关于 Python 的经典入门书籍有哪些?
  2. css border 制作三角形
  3. python中带*(单星号)的变量和**(双星号)的变量
  4. 相信坚持的力量,我的程序员打怪升级之路
  5. Microsoft Enterprise Library 5.0 系列(四) Logging Application Block
  6. Andriod Atom x86模拟器启动报错
  7. C#用SqlCilent模式连接数据库实例
  8. 部分手机浏览器存在将ajax请求当成广告过滤的情况,及解决方案
  9. Learn Python the hard way, ex40 字典,可爱的字典
  10. PowerGUI错误-Microsoft SharePoint is not supported with version 4 of the Microsoft .Net Runtime
  11. 2022-07-25 第五小组 顾祥全 学习笔记 day18-JavaSE-接口
  12. 好读书之后是什么?(转)
  13. Coursera | Applied Plotting, Charting Data Representation in Python(UMich)| Assignment3
  14. 初学者如何选择适合自己的吉他?0基础新手男女生吉他推荐
  15. Cloudreved云盘搭建及配置Aria2离线下载
  16. MT7628平台编程设计指南资料
  17. 研华IO板卡驱动安装与PICE-1753(PCIE-1751)接线说明
  18. Python3.7对文本批量进行词频分析
  19. 面向对象的三个基本特征
  20. 各国海关单证有哪些要求?

热门文章

  1. 文献记录(part68)--K- 近邻分类器鲁棒性验证:从约束放松法到随机平滑法
  2. python方格染色_Luogu P3631 [APIO2011]方格染色
  3. SAP UI5 应用开发教程之六十二 - 基于 OData V4 的 SAP UI5 表格控件使用方法介绍试读版
  4. Kyma Application Connectivity 特性介绍
  5. 关于 SAP Spartacus defaultCmsContentProvider 和默认 layoutConfig 的一些测试
  6. Rxjs 里 filter(Boolean) 的用法
  7. 使用 Visual Studio Code SQLite 扩展来浏览 SAP Cloud Application Programming 数据库
  8. 使用CSS属性处理前端开发中长文本造成的内容显示重叠问题
  9. 什么是SAP HANA Database Procedure(数据库过程)
  10. SAP CRM WebClient UI的配置存储数据库表