热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Oracle优化新常态的五大禁止及其性能隐患

本文介绍了Oracle优化新常态中的五大禁止措施,包括禁止外键、禁止视图、禁止触发器、禁止存储过程和禁止JOB,并分析了这些禁止措施可能带来的性能隐患。文章还讨论了这些禁止措施在C/S架构和B/S架构中的不同应用情况,并提出了解决方案。


第一章

《Oracle优化新常态》第二章强拆(1)

《Oracle优化新常态》第二章强拆(2)

 第三章 三大配置

第四章 分库分表

第五章 急诊法

第六章 SQL优化大法


第一禁止 禁止外键


第二禁止 禁止视图


第三禁止  禁止触发器


第四禁止  禁止存储过程


第五禁止  禁止JOB


大禁止会带来很多性能隐患的,其中触发器就是特例,视图也会影响性能的,你说可以做成物化视图。


自从应用程序从C/S架构发展到B/S架构,然后在是水平扩展成多机器分布式集群架构。而以上的外键,视图,触发器以及存储过程都是C/S架构中的数据库为了实现企业业务逻辑的工具。以前企业和工厂数据库服务器都采用的是小型机器,比如如今的AIX操作系统必须运行在IBM的小型机上。而ORACLE+AIX+小型机是标准搭配。如今的ORACLE EBS系统依旧运行上面平台中。以前个人电脑性能不咋地,什么586,686,奔腾1-5估计你都没有听说过,都是单核CPU。所以当时就把大量的计算工作和业务逻辑也放在了数据库服务器上跑。


如今的WEB,云化的B/S架构,已经把业务逻辑移到了 TOMCAT容器或者是IIS上运行。使用的编程语言要么JAVA,要么是C#.NET。而数据库就充当数据存储的角色。数据对象就是表和索引,而对它们的操作就是SQL。除了这三样外就别无其它了。


曾经面试被问到业务逻辑放在哪端?你怎么看待存储过程的?当初经验缺乏,不知道如何回答。虽然后来想了下,觉得业务逻辑放在JAVA层,而存储过程只处理数据逻辑。也就是说存储过程一点都不涉及业务逻辑,只是GROUP BY  WHERE  SUM 掉大量的数据,返回少量的数据给应用层。虽然一直觉得这是个完美的方案,各就其位,各尽所长,充分发挥各自的优点。然而现在想起这方案比较理想,你无法让开发人员又写JAVA中的业务逻辑,还要让他们写存储过程。那开发人员会无法区分业务逻辑写在哪里去了,或许那个实现方便,快捷就使用谁。或许两边都使用下,这样来业务就被拆分在两端了。


视图也是一段SQL代码,当初是为了屏蔽低下某些表给某些人看,或者是公共一段代码作为共享SQL。既然是SQL必然是业务逻辑的实现体,所以也要移植到应用层里去。


外键和触发器 如今JAVA开发人员已经取得了认识不在数据库端实现了。


关于JOB的禁止, JOB JAVA应用开发已经实现定时调度的功能,并且调度何时调度都是业务逻辑的考虑。


OK !! 我小仙并没有说真的在数据库上禁止这五个东西,而是说禁止开发人员去使用它们。这五个东西专属我们DBA的,我们DBA就可以使用这五个东西。因为我们不会把业务逻辑写在存储过程,视图里面啊!


苹果手机用户打赏区




                                                                               有想法请在这里留言-->


祖仙教

祖仙的神话

祖仙教

祖仙教-性


过往文章目录

理科精华

RAC crs_stat 命令结果完整显示

归档日志比在线日志小

分区表

INDEX肥胖化

OracleDG 备库 STANDBY 日志传输小结

ORACLE索引名称矫情

ASM中的几个概念

抓取性能不错的脚本

RMAN duplicate 方式做个备库

DG中归档日志删除遇警告

direct path read

共享池内存三维

PGA内存

一个性能优化案例INSERT

SGA内存

Linux 64 页表,进程内存,大页

Linux_x86_64BIT内存管理与分布

部分SWAP 内存知识

理解队列锁

ORACLE闪回之闪回查询

ORACLE 闪回之闪回删除

ORACLE闪回之闪回表

ORACL 闪回功能之闪回数据库

ORACLE 索引全扫描逻辑读

解析过程中的软软解析

ORACLE索引范围扫描逻辑读ARRAY

UNDO

归档日志比在线日志小

RAC 修改 IP

RAC

ASM 再平衡

RAC安装

使用UDEV绑定ASM盘符

网络命名关系图


RAC 修改私有网卡IP

RAC私网修改错了咋办

只有数据文件情况下恢复数据库



文史经典

纸版书和电子书

爱情是什么

IT界程序员泡妞《葵花宝典》

读书日谈读书

反对道德恐怖主义

论当今的婚介公司如何赚钱

失眠三重天

明朝灭亡真想

祖仙曰:万事皆亡

活见鬼

IT界人员提高智商

21世纪孩子的教育

祖仙教

家庭常平仓

北韩的高辐射性核武器

吵架时候男人避免10点可以继续幸福下去

亲戚借钱条款

给英国防YSL极端恐怖支两招

八十岁老人上飞机扔硬币进发动机

剩女招聘老公--爱情婚姻新思维


财经经典

西帝和东帝谈判成果

岁月静好-两场战争

熊案--马后炮

税收制度是穷人在交税养富人

房价再次限购后资金的流向?

加息的马后炮

P2P和换汇的生意

房地产资金流

静待股市台风信息-上

股市的制胜之道

股市事后诸葛亮

藏债与民

股市与理财产品

黄金获利逃顶

黄金如期下跌

楼市第六限--->限婚

M2什么情况下才会减少?

黄金差不多跌够了

黄金又跌了--凡仙分析法

黄金好像到了该买涨的时候了




推荐阅读
  • Python SQLAlchemy库的使用方法详解
    本文详细介绍了Python中使用SQLAlchemy库的方法。首先对SQLAlchemy进行了简介,包括其定义、适用的数据库类型等。然后讨论了SQLAlchemy提供的两种主要使用模式,即SQL表达式语言和ORM。针对不同的需求,给出了选择哪种模式的建议。最后,介绍了连接数据库的方法,包括创建SQLAlchemy引擎和执行SQL语句的接口。 ... [详细]
  • 本文讨论了在数据库打开和关闭状态下,重新命名或移动数据文件和日志文件的情况。针对性能和维护原因,需要将数据库文件移动到不同的磁盘上或重新分配到新的磁盘上的情况,以及在操作系统级别移动或重命名数据文件但未在数据库层进行重命名导致报错的情况。通过三个方面进行讨论。 ... [详细]
  • 基于PgpoolII的PostgreSQL集群安装与配置教程
    本文介绍了基于PgpoolII的PostgreSQL集群的安装与配置教程。Pgpool-II是一个位于PostgreSQL服务器和PostgreSQL数据库客户端之间的中间件,提供了连接池、复制、负载均衡、缓存、看门狗、限制链接等功能,可以用于搭建高可用的PostgreSQL集群。文章详细介绍了通过yum安装Pgpool-II的步骤,并提供了相关的官方参考地址。 ... [详细]
  • 本文介绍了Python高级网络编程及TCP/IP协议簇的OSI七层模型。首先简单介绍了七层模型的各层及其封装解封装过程。然后讨论了程序开发中涉及到的网络通信内容,主要包括TCP协议、UDP协议和IPV4协议。最后还介绍了socket编程、聊天socket实现、远程执行命令、上传文件、socketserver及其源码分析等相关内容。 ... [详细]
  • 本文介绍了数据库的存储结构及其重要性,强调了关系数据库范例中将逻辑存储与物理存储分开的必要性。通过逻辑结构和物理结构的分离,可以实现对物理存储的重新组织和数据库的迁移,而应用程序不会察觉到任何更改。文章还展示了Oracle数据库的逻辑结构和物理结构,并介绍了表空间的概念和作用。 ... [详细]
  • 本文介绍了如何使用php限制数据库插入的条数并显示每次插入数据库之间的数据数目,以及避免重复提交的方法。同时还介绍了如何限制某一个数据库用户的并发连接数,以及设置数据库的连接数和连接超时时间的方法。最后提供了一些关于浏览器在线用户数和数据库连接数量比例的参考值。 ... [详细]
  • 本文由编程笔记小编整理,介绍了PHP中的MySQL函数库及其常用函数,包括mysql_connect、mysql_error、mysql_select_db、mysql_query、mysql_affected_row、mysql_close等。希望对读者有一定的参考价值。 ... [详细]
  • 本文介绍了Hyperledger Fabric外部链码构建与运行的相关知识,包括在Hyperledger Fabric 2.0版本之前链码构建和运行的困难性,外部构建模式的实现原理以及外部构建和运行API的使用方法。通过本文的介绍,读者可以了解到如何利用外部构建和运行的方式来实现链码的构建和运行,并且不再受限于特定的语言和部署环境。 ... [详细]
  • 计算机存储系统的层次结构及其优势
    本文介绍了计算机存储系统的层次结构,包括高速缓存、主存储器和辅助存储器三个层次。通过分层存储数据可以提高程序的执行效率。计算机存储系统的层次结构将各种不同存储容量、存取速度和价格的存储器有机组合成整体,形成可寻址存储空间比主存储器空间大得多的存储整体。由于辅助存储器容量大、价格低,使得整体存储系统的平均价格降低。同时,高速缓存的存取速度可以和CPU的工作速度相匹配,进一步提高程序执行效率。 ... [详细]
  • Tomcat/Jetty为何选择扩展线程池而不是使用JDK原生线程池?
    本文探讨了Tomcat和Jetty选择扩展线程池而不是使用JDK原生线程池的原因。通过比较IO密集型任务和CPU密集型任务的特点,解释了为何Tomcat和Jetty需要扩展线程池来提高并发度和任务处理速度。同时,介绍了JDK原生线程池的工作流程。 ... [详细]
  • Linux如何安装Mongodb的详细步骤和注意事项
    本文介绍了Linux如何安装Mongodb的详细步骤和注意事项,同时介绍了Mongodb的特点和优势。Mongodb是一个开源的数据库,适用于各种规模的企业和各类应用程序。它具有灵活的数据模式和高性能的数据读写操作,能够提高企业的敏捷性和可扩展性。文章还提供了Mongodb的下载安装包地址。 ... [详细]
  • 一句话解决高并发的核心原则
    本文介绍了解决高并发的核心原则,即将用户访问请求尽量往前推,避免访问CDN、静态服务器、动态服务器、数据库和存储,从而实现高性能、高并发、高可扩展的网站架构。同时提到了Google的成功案例,以及适用于千万级别PV站和亿级PV网站的架构层次。 ... [详细]
  • 嵌入式处理器的架构与内核发展历程
    本文主要介绍了嵌入式处理器的架构与内核发展历程,包括不同架构的指令集的变化,以及内核的流水线和结构。通过对ARM架构的分析,可以更好地理解嵌入式处理器的架构与内核的关系。 ... [详细]
  • 本文介绍了操作系统的定义和功能,包括操作系统的本质、用户界面以及系统调用的分类。同时还介绍了进程和线程的区别,包括进程和线程的定义和作用。 ... [详细]
  • 本文讨论了微软的STL容器类是否线程安全。根据MSDN的回答,STL容器类包括vector、deque、list、queue、stack、priority_queue、valarray、map、hash_map、multimap、hash_multimap、set、hash_set、multiset、hash_multiset、basic_string和bitset。对于单个对象来说,多个线程同时读取是安全的。但如果一个线程正在写入一个对象,那么所有的读写操作都需要进行同步。 ... [详细]
author-avatar
zxcvbnm89
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有