Oracle数据库属于大型数据库系统,功能很强大,可以处理大批量数据,在网络上也用的很多,通常在商业以及政府部门应用。但是通常中小型企业由于MySQL,SQLserver操作简单,功能齐全都更倾向于用mysql,SQLserver等数据库系统。mysql,SQLserver只是不如oracle数据库处理大量数据。
(一)ORACLE实例
1、ORACLE实例:包括内存结构以及后台进程
SystemGlobalArea(SGA)和BackgroundProcess称为数据库实例。
2、ORACLE数据库:就是说物理操作系统文件的集合
是数据文件、控制文件、联机日志以及参数文件等一系列物理文件的集合。
3、系统全局共享区SystemGlobalArea(SGA)
SystemGlobalArea属于共享内存区域,看做是Oracle数据库大缓冲池,在这里数据能被ORACLE的各个进程共用。
它的大小能够通过语句查看,如下:
SQL>select*fromv$sga;
NAMEVALUE
-
FixedSize39816
VariableSize259812784
DatabaseBuffers1.049E+09
RedoBuffers327680
包括以下几个主要部分:
(1)共享池(Sharedpool)
SGA当中最关键的内存片段是共享池,尤其是在性能以及可伸缩性上。共享池太小会扼杀性能,使系统停止;共享池太大也会扼杀性能,使系统停止,并且消耗大量的CPU管理。错误的使用共享池只会带来灾难。
(2)SQL语句缓冲(LibraryCache)
在用户提交SQL语句后,Oracle会分析这句SQL,这类似于编译,会耗费相对较多的时间。在分析完这个SQL,Oracle会把分析结果保存在Sharedpool的LibraryCache当中。数据库第二次执行这个SQL时,Oracle自动跳过这个分析过程,就减少了系统运行的时间。这也是第一次运行的SQL比第二次运行的SQL要慢一点的原因。
举例说明parse的时间:
SQL>selectcount(*)fromscpass;
COUNT(*)
--
243
ElaPSed:00:00:00.08
在Share_pool以及Databuffer都没有数据缓冲区时所用的时间
SQL>altersystemflushSHARED_POOL;
Systemaltered.
清空Share_pool,保留Databuffer
SQL>selectcount(*)fromscpass;
COUNT(*)
--
243
Elapsed:00:00:00.02
SQL>selectcount(*)fromscpass;
COUNT(*)
--
243
Elapsed:00:00:00.00
从两句SQL的时间差上能看出SQL的Parse时间约为00:00:00.02
可以从V$Sqltext、v$Sqlarea中查询保存在共享池中的SQL语句,对编程者来说,尽量要提高语句的重用率,减少分析时间。设计的差的应用程序会毁掉整个数据库的Sharepool,要先养成良好的变成习惯,尽量用Bind变量提高SQL语句的重用率。
(3)数据字典缓冲区(DataDictionaryCache)
数据字典缓冲区很明显是ORACLE故意为python数据字典准备的缓冲池,供ORACLE内部使用。
总结:小编今天就把关于ORACLE实例和ORACLE数据库全都介绍完了,对于刚刚入门的初学者来说,上文的内容还是很基础的,学习初期好好的研究本文介绍的内容,相信对大家的入门学习会很有帮助的。小编也会不断的给大家更新关于数据库以及各种考试认证的资讯,大家可以关注我们课课家教育网站来获取更多资讯。
下一篇:oracle数据类型详解
¥798.00
¥48.00¥180.00
¥29.90
¥48.00¥180.00
¥199.00
¥199.00