真实战争中oracle数据库优化综述
2。范式和反范式在数据库设计阶段的灵活应用,在正常情况下,对于频繁访问,但不经常修改数据,内部设计应该在物理上不规范。对于经常修改但不经常访问的数据,内部设计应物理化标准化。
3、充分利用内存,优化SGA、PGA等。(11g实现了SGA + PGA自动化,但有时仍需要手动调节),并适当把小桌子保持缓存。
4。优化SQL语句
1)减少数据库查询次数,减少系统资源请求,利用快照和可视图,分布式数据库对象数据库可以减少查询次数。
2)尝试使用相同或非常相似的SQL语句进行查询,这样我们不仅可以充分利用SQL共享池中已经分析过的语法树,而且可以增加SGA中查询的数据被击中的概率。
3)限制动态SQL的使用。尽管动态SQL很容易使用,即使SQL共享池中有相同的查询值,动态SQL也会重新分析语法。
4)避免在没有任何条件的情况下执行SQL语句,在没有任何条件下,SQL语句在执行时通常执行FTS。数据库首先查找数据块,然后依次查找其他数据,这将是大表的长过程。
5)如果某些表中的数据受到约束,最好用表完整性描述表中的SQL语句,而不是SQL程序中的语句。
6)通过取消自动提交模式,SQL语句可以在一组执行中收集,并可以集中提交。该程序还可以提交和回滚事务的提交和rollbacl显式使用。
7)大量的数据检索的时间很长,设置性能行预取数可以提高系统,设置最大值时,SQL语句返回多值,暂时停止执行的数值库,除非用户发出新的指令,开始组织和显示数据,不要让用户等待。
5、优化IO,将不同的数据文件、控制文件、不同磁盘上的日志文件、表和索引放在不同的表空间中,设置适当的块大小、设置异步IO等。
6。正确设置只读表空间,以减少数据块的更新和数据库故障的发生。
7。表的设计优化
1)分区
2)压缩
3)建立适当的索引
4)适当设置PCTFREE减少线路连接和行迁移
5)设置适当的存储以控制表片段。
6)其他
8。充分利用CPU资源,并行查询选项的使用(打印队列操作员,并行查询选择)进行数据查询,使用打印队列操作员请求处理不仅可以在多个CPU配置SQL语句,查询时,数据在不同的磁盘,一个独立的进程可以同时读数据。
9。优化数据库连接
1)使用直接数据库连接方式。
ADO连接数据库的方式有两种,一种是传统的ODBC的OLE db.ado是建立在OLE DB技术。为了支持ODBC,必须建立相应的OLE DB到ODBC的调用转换,而不用直接的OLE DB模式进行转换,从而提高处理速度。
2)使用连接池机制
在数据库处理中,最大的资源成本是建立数据库连接,用户将有较长的连接等待时间。解决方案是重用现有连接,即使用连接池对象机制。
连接池的原理是:asp—asp系统维护一个连接池,以便当下一个用户访问时,直接访问数据库连接池中的连接,而不需要重新连接到数据库,这样可以大大提高系统的响应速度。
10。充分利用数据后台处理方案降低网络流量
1)创建临时表或视图
所谓创建临时表或视图是基于需要创建基于多表或视图的数据库的一个表,该协会在信息查询可以创建单表查询一个新表,可以创建一个视图,可以充分利用大容量数据库,可扩展性强等特点,所有条件的判断值,统计计算可以追加到临时表中,数据库服务器统一处理,过程或函数可用数据库形成数据实现的结果。
2)充分利用数据库封装技术
数据库描述语言用于编写数据库的过程或功能,然后在数据库后台将进程或函数打包成统一的操作包。
3)远程过程调用技术的数据复制、快照、视图和应用
数据复制,这是复制一份到本地的数据,以便以后查询使用本地数据,但是只对那些有点变化。使用快照可以动态的分布式数据库之间的数据复制,定义刷新时间或手动刷新快照,从而保证数据的完整性。调用远程程序也大大减少了频繁的SQL语句造成的网络拥塞的电话。
11。系统资源管理分发计划的实现
Oracle提供的数据库资源管理(DRM,数据库资源管理器)来控制用户的资源分配,和DBA可以使用它来配置用户类和作业类系统资源的百分比。在消耗系统的CPU资源75%可以分配给在线用户,而剩下的25%是留给批用户此外,CPU的多级配置也可以进行。除了CPU资源分配,DRM还可以执行并行操作的资源的用户群体。