高性能sql调优-整体架构

一、序言

     所谓的整体架构就是保证数据库系统的正常工作和运行所必须的组件及其实现。从大的方面来讲,主要包含实例和数据库。在此基础上面,实例又可分为相关内存区域和服务进程组成;数据库包括各种相关文件。而这些相关内存区域和服务进程以及相关文件又可以再分。

二、分步介绍

     

                                                                         (分布图)

1、实例(Instance)

      实例也就是数据库实例,是由服务器上面的一组内存结构和进程组成,用以支撑和完成数据库的正常运行和操作,实例可以独立于数据库存在,主要包含下面的组件。

    1)内存(Memory):服务器操作系统为实例分配的内存区域,用于数据库内存方面的活动和操作,主要分为两部分:SGA和PGA。SGA为实例范围内共享的,其内存分为共享池(Shared Pool)、数据缓冲(Buffer Cache)、Redo缓冲等。其中共享池又可以分为库缓冲(Library Cache)和字典缓冲(Data Dictionary Cache)等。PGA是各个会话私有的。

    2)后台进程(Background Process):创建和维护实例的一组后台进程(或者线程),用以完成数据库内部的各种统一管理和监控任务。进程的数量和名字随着版本和具体配置的不同而有所不同,但是这些进程都是共享的,不是属于某个或者某些会话。

   3)服务进程(Server Process):实例为数据库会话创建或者分配的,用来完成会话任务的服务器端服务进程。实例为会话分配服务进程的方式,分为两种情况:

      当实例设置为专用服务器模式,用户和数据库之间建立会话时,实例就会为该胡话创建一个服务进程,用来完成会话的任务

      当实例设置为共享服务器模式时,实例会在数据库服务器上面启动一组服务进程,这部分进程不专属于某个会话或者某些会话,而是在会话执行任务时,实例调度进程(Dispatcher)将会话任务放到共享内存中的相关任务队列中,并择机将该任务分配为这组进程中的某一个进程,该服务进程完成会话任务后,会将该会话额外你唔的结构放到共享内存的相关结果的队列中,实例调度结果再择机将任务的结果返回给相关会话。因此,该模式下面的实例的所有的会话共享一组进程,这个可以进程配置的。并且一旦该组服务进程不足以服务实例中所有的会话时,实例会根据相关的参数设置动态创建和分配另外的服务进程,此后,当服务金车那个进程数量过剩时,这些服务进程会被释放掉。

    2、数据库(Database)

        数据库是由服务器上面的一组磁盘文件组成,用于存储数据库的相关的各种管理信息和用户数据,以保证数据库的正常运行和用户数据不丢失,数据库及其文件就恶意独立于实例而存在,其主要包括以下文件:

     1)参数文件(Parameter File):这是一个非常重要的文件,实例(数据库)启动时要使用它,该文件存储着实例的以及数据库的相关配置这些重要的信息,如果文件不存在的话Oracle无法创建实例,因此也是不能正常启动或者使用数据库的。

    2)控制文件(Control File):文件也是很重要的,该文件中存储着数据库的物理结构等重要信息。损坏后导致数据库不能够打开和使用,如果没有备份创建起来会非常麻烦,庆幸的是,控制文件提供了多路复制功能,即相同的控制文件可以存在多个副本,这些副本可以分别存储在多个不同的设备上面,这样既可以防止文件的损坏和丢失,同时也提高了访问控制文件的并发和性能。

    3)数据文件(Data File):实例存储用户数据的文件,其内部格式随着版本的不同而不同,因为用户的数据都存储在这些文件中,因此这些数据库的核心。

   4)回滚文件(Undo File):存储用于构造数据块前影像的数据的文件。当用户修改数据库中的数据时,系统会为该修改操作生成反操作向量,并把这些反操作向量存储到Undo表空间中。

  5)临时文件(Temp File):存储数据库中临时数据的文件。临时数据主要来至于两个方面:一个是当PGA中内存不能够满足会话某些操作的需求时,会话就会将一些临时或者中间数据暂时存储到临时表空间内(临时文件构成脸是表空间);二是用户在数据库中创建了临时表,其中的数据聚会存储到临时空间表中。

  6)重做日志文件(Redo Log File):存数据库修改操作的相关信息的文件,通过该文件可以保证数据库及其数据的安全和可恢复。

  7)归档日志文件(Archive Log File):存储数据库的历史,修改操作相关新的文件。Oracle的Redo文件是循环利用的,为了使得Redo文件中的数据不被覆盖,需要预先将Redo文件复制到其他位置,哪些被复制到其他位置的Redo文件就是归档日志文件。归档日志文件可以用来对数据库进行时间点恢复,同时,要相对数据库进行热备份,也必须要将数据库置于归档模式,这样数据库就会在Redo文件被覆盖前,自动在指定位置生成归档日志文件

   8)警告日志文件(Alert Log File):存储数据库的运行状态日志信息的文件。其中会记录一些有关数据库的运行日志、操作、报错以及其他的运行状态的信息,具体位置因版本不同而不同。

   9)跟踪文件(Tree File):记录数据库内部行为的文件,该文件是系统自动生成的。也可以是用户手动生成。

三、总结

   主要是数据库的一些内部构造,了解一下还是可以的,也可以加深你对数据的了解和底层的了解,相信会对你由不少的用处。加油

猜你喜欢

转载自blog.csdn.net/JavaWeb_Hao/article/details/82714704