问题描述
我的客户有一个大的5节点RAC与计数和指标如下所示。它的目的是一个数据仓库,但实际上它用于许多不同类型的数据和流程。目前看来,它的表现相当不错,但是我对对象计数及其多方面的使用有一些担忧。我的直觉是将其拆分为更专注于特定用途的较小实例。我知道数据量是合理的,我不认为它正在接近任何硬限制,但字典似乎缓慢 (例如: 从下面的dba_extents查询计数需要25分钟)。
我的担忧是否有效?
我们是否需要考虑其他问题,或者这对于Oracle DB来说是合理的负载?
什么样的 “对象计数” 应该让DBA紧张?
谢谢你能提供的任何建议。
我的担忧是否有效?
我们是否需要考虑其他问题,或者这对于Oracle DB来说是合理的负载?
什么样的 “对象计数” 应该让DBA紧张?
/* = 2,138 */ select count(*) from dba_data_files ; /* = 15,632,812 */ select count(*) from dba_extents ; /* = 39,551 */ select count(*) from dba_indexes ; /* = 63,675 */ select count(*) from dba_ind_columns ; /* = 160,969 */ select count(*) from dba_ind_partitions ; /* = 157,322 */ select count(*) from dba_ind_subpartitions ; /* = 549,434 */ select count(*) from dba_objects ; /* = 406,332 */ select count(*) from dba_segments ; /* = 1,866,084 */ select count(*) from dba_source ; /* = 32,474 */ select count(*) from dba_tables ; /* = 538 */ select count(*) from dba_tablespaces ; /* = 1,156,530 */ select count(*) from dba_tab_cols ; /* = 47,959 */ select count(*) from dba_tab_partitions ; /* = 14,800 */ select count(*) from dba_tab_subpartitions ; /* = 1,264 */ select count(*) from dba_users ; /* = 10,761 */ select count(*) from dba_views ; select sum(bytes) from dba_data_files ; /* = 73 terabytes */ select sum(bytes) from dba_free_space ; /* = 9 terabytes */ select * from v$version ; /* Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production PL/SQL Release 11.2.0.4.0 - Production "CORE 11.2.0.4.0 Production" TNS for Linux: Version 11.2.0.4.0 - Production NLSRTL Version 11.2.0.4.0 - Production */复制
谢谢你能提供的任何建议。
专家解答
你在向后接近这个。一个应用程序可以有成百上千个表。所以你可以有大量的对象,但没有 (简单的) 方法来拆分它跨数据库。
同样,我会担心一个大型应用程序,它的表数量很少。说不到10个。这表明人们依赖于 “通用” 数据模型。
因此,与其查看对象计数,不如询问对象是否在逻辑上相关。如果你能支持业务需求。
例如:
-客户对其查询/应用程序的性能感到满意吗?
-开发人员是否能够在合理的时间范围内构建和发布更改?
-您是否可以以满足企业恢复时间和点对象的方式备份和还原数据?
-...
并询问是否可以通过拆分数据库来改进其中的任何一个。
拥有单个 “存储桶” 数据库的关键领域通常是修补和升级。例如,对以下任何一项回答 “是” 可能意味着一小部分功能会阻止您升级数据库:
-数据库是否托管仅支持特定版本的任何第三方应用程序?
-测试数据库中的所有内容是否会成为修补和升级的重要障碍?
-您是否必须应用一次性补丁或设置下划线参数来修复应用程序的一小部分?
-...
在这种情况下,将它们拆分为单独的数据库是有意义的。如果升级到12c时,您很幸运地使用单独的可插拔数据库获得了多租户选项,则可以对此有所帮助。
也就是说,有一些物理数据库限制。您可以在以下位置检查这些内容:
https://docs.oracle.com/cd/E11882_01/server.112/e40402/limits002.htm#REFRN0042
此外,像这样的大型 “桶” 数据库通常包含许多过时的对象。例如,弃用功能、为备份或报告目的而创建的临时表等。可能值得一看,看看是否有什么可以删除的;)
PS-在Oracle数据库术语中,数据库是文件。实例是服务器和内存区域上运行的进程。所以如果你有一个5节点RAC,你有一个数据库,五个实例。没有一个实例!
同样,我会担心一个大型应用程序,它的表数量很少。说不到10个。这表明人们依赖于 “通用” 数据模型。
因此,与其查看对象计数,不如询问对象是否在逻辑上相关。如果你能支持业务需求。
例如:
-客户对其查询/应用程序的性能感到满意吗?
-开发人员是否能够在合理的时间范围内构建和发布更改?
-您是否可以以满足企业恢复时间和点对象的方式备份和还原数据?
-...
并询问是否可以通过拆分数据库来改进其中的任何一个。
拥有单个 “存储桶” 数据库的关键领域通常是修补和升级。例如,对以下任何一项回答 “是” 可能意味着一小部分功能会阻止您升级数据库:
-数据库是否托管仅支持特定版本的任何第三方应用程序?
-测试数据库中的所有内容是否会成为修补和升级的重要障碍?
-您是否必须应用一次性补丁或设置下划线参数来修复应用程序的一小部分?
-...
在这种情况下,将它们拆分为单独的数据库是有意义的。如果升级到12c时,您很幸运地使用单独的可插拔数据库获得了多租户选项,则可以对此有所帮助。
也就是说,有一些物理数据库限制。您可以在以下位置检查这些内容:
https://docs.oracle.com/cd/E11882_01/server.112/e40402/limits002.htm#REFRN0042
此外,像这样的大型 “桶” 数据库通常包含许多过时的对象。例如,弃用功能、为备份或报告目的而创建的临时表等。可能值得一看,看看是否有什么可以删除的;)
PS-在Oracle数据库术语中,数据库是文件。实例是服务器和内存区域上运行的进程。所以如果你有一个5节点RAC,你有一个数据库,五个实例。没有一个实例!
文章转载自ASKTOM,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。
评论
相关阅读
【纯干货】Oracle 19C RU 19.27 发布,如何快速升级和安装?
Lucifer三思而后行
800次阅读
2025-04-18 14:18:38
Oracle数据库一键巡检并生成HTML结果,免费脚本速来下载!
陈举超
602次阅读
2025-04-20 10:07:02
【ORACLE】你以为的真的是你以为的么?--ORA-38104: Columns referenced in the ON Clause cannot be updated
DarkAthena
551次阅读
2025-04-22 00:13:51
【活动】分享你的压箱底干货文档,三篇解锁进阶奖励!
墨天轮编辑部
536次阅读
2025-04-17 17:02:24
【ORACLE】记录一些ORACLE的merge into语句的BUG
DarkAthena
511次阅读
2025-04-22 00:20:37
一页概览:Oracle GoldenGate
甲骨文云技术
503次阅读
2025-04-30 12:17:56
火焰图--分析复杂SQL执行计划的利器
听见风的声音
473次阅读
2025-04-17 09:30:30
OR+DBLINK的关联SQL优化思路
布衣
386次阅读
2025-05-05 19:28:36
Oracle数据库Hint大全,31个使用案例,速来下载!
陈举超
371次阅读
2025-04-16 21:25:19
Oracle19C低版本一天遭遇两BUG(ORA-04031/ORA-00600)
潇湘秦
334次阅读
2025-04-16 17:05:16