oracle实例与数据库
① ORACLE瀹炰緥鍜孙RACLE鏁版嵁搴撹﹁В
瀵艰伙细oracle鏁版嵁搴撴槸涓绉嶅ぇ鍨嬫暟鎹搴撶郴缁燂纴涓鑸搴旂敤浜庡晢涓氾纴鏀垮簻閮ㄩ棬锛屽畠镄勫姛鑳藉緢寮哄ぇ锛岃兘澶熷勭悊澶ф壒閲忕殑鏁版嵁锛屽湪缃戠粶鏂归溃涔熺敤镄勯潪甯稿氥备笉杩囷纴涓鑸镄勪腑灏忓瀷浼佷笟閮芥瘆杈冨枩娆㈢敤mysql, SQL server绛夋暟鎹搴撶郴缁燂纴瀹幂殑镎崭綔寰堢亩鍗曪纴锷熻兘涔熼潪甯搁绨鍏ㄣ傚彧鏄姣旇缉oracle鏁版嵁搴撹岃█锛屽湪澶勭悊澶ч噺鏁版嵁鏂归溃链変簺涓嶅伞
涓銆丱RACLE瀹炰緥
1銆丱RACLE 瀹炰緥钬斺斿寘𨰾鍐呭瓨缁撴瀯涓庡悗鍙拌繘绋
System Global Area(SGA) 鍜 Background Process 绉颁负鏁版嵁搴撶殑瀹炰緥銆
2銆丱RACLE 鏁版嵁搴撯斺旂墿鐞嗘搷浣灭郴缁熸枃浠剁殑闆嗗悎
涓绯诲垪鐗╃悊鏂囦欢镄勯泦钖(鏁版嵁鏂囦欢锛屾带鍒舵枃浠讹纴镵旀満镞ュ织锛屽弬鏁版枃浠剁瓑)
3銆佺郴缁熷叏灞鍏变韩鍖篠ystem Global Area(SGA)
System Global Area鏄涓鍧楀法澶х殑鍏变韩鍐呭瓨鍖哄烟锛屼粬琚鐪嫔仛鏄疧racle鏁版嵁搴撶殑涓涓澶х紦鍐叉睁锛岃繖閲岀殑鏁版嵁鍙浠ヨ玂RACLE镄勫悇涓杩涚▼鍏辩敤銆傚叾澶у皬鍙浠ラ氲繃濡备笅璇鍙ユ煡鐪嬶细
SQL select * from v$sga;
NAME VALUE
-
Fixed Size 39816
Variable Size 259812784
Database Buffers 1.049E+09
Redo Buffers 327680
镟磋︾粏镄勪俊鎭鍙浠ュ弬钥僔$sgastat銆乂$buffer_pool
涓昏佸寘𨰾浠ヤ笅鍑犱釜閮ㄥ垎锛
a銆 鍏变韩姹(Shared pool)
鍏变韩姹犳槸SGA涓链鍏抽敭镄勫唴瀛樼墖娈碉纴鐗瑰埆鏄鍦ㄦц兘鍜屽彲浼哥缉镐т笂銆备竴涓澶灏忕殑鍏变韩姹犱细镓兼潃镐ц兘锛屼娇绯荤粺锅沧锛屽お澶х殑鍏变韩姹犱篃浼氭湁钖屾牱镄勬晥鏋滐纴灏嗕细娑堣楀ぇ閲忕殑CPU𨱒ョ$悊杩欎釜鍏变韩姹犮备笉姝g‘镄勪娇鐢ㄥ叡浜姹犲彧浼氩甫𨱒ョ伨闅俱傚叡浜姹犱富瑕佸张鍙浠ュ垎涓轰互涓嬩袱涓閮ㄥ垎锛
SQL璇鍙ョ紦鍐(Library Cache)
褰扑竴涓鐢ㄦ埛鎻愪氦涓涓猄QL璇鍙ワ纴Oracle浼氩皢杩椤彞SQL杩涜屽垎鏋(parse)锛岃繖涓杩囩▼绫讳技浜庣紪璇戯纴浼氲楄垂鐩稿硅缉澶氱殑镞堕棿銆傚湪鍒嗘瀽瀹岃繖涓猄QL锛孙racle浼氭妸浠栫殑鍒嗘瀽缁撴灉缁欎缭瀛桦湪Sharedpool镄凩ibraryCache涓锛屽綋鏁版嵁搴撶浜屾℃墽琛岃SQL镞讹纴Oracle镊锷ㄨ烦杩囱繖涓鍒嗘瀽杩囩▼锛屼粠钥屽噺灏戜简绯荤粺杩愯岀殑镞堕棿銆傝繖涔熸槸涓轰粈涔堢涓娆¤繍琛岀殑SQL姣旂浜屾¤繍琛岀殑SQL瑕佹参涓镣圭殑铡熷洜銆
涓嬮溃涓句緥璇存槑parse镄勬椂闂
SQL select count(*) fromscpass ;
COUNT(*)
--
243
Elapsed: 00:00:00.08
杩欐槸鍦⊿hare_pool 鍜娈ata buffer 閮芥病链夋暟鎹缂揿啿鍖虹殑𨱍呭喌涓嬫墍鐢ㄧ殑镞堕棿
SQL alter system flush SHARED_POOL;
System altered.
娓呯┖Share_pool锛屼缭鐣橠ata buffer
SQL select count(*) from scpass ;
COUNT(*)
--
243
Elapsed: 00:00:00.02
SQL select count(*) from scpass ;
COUNT(*)
--
243
Elapsed: 00:00:00.00
浠庝袱鍙SQL 镄勬椂闂村樊涓婂彲浠ョ湅鍑鸿SQL 镄凯arse 镞堕棿绾︿负00:00:00.02
瀵逛簬淇濆瓨鍦ㄥ叡浜姹犱腑镄凷QL璇鍙ワ纴鍙浠ヤ粠V$Sqltext銆乿$Sqlarea涓镆ヨ㈠埌锛屽逛簬缂栫▼钥呮潵璇达纴瑕佸敖閲忔彁楂樿鍙ョ殑閲岖敤鐜囷纴鍑忓皯璇鍙ョ殑鍒嗘瀽镞堕棿銆备竴涓璁捐$殑宸镄勫簲鐢ㄧ▼搴忓彲浠ユ瘉鎺夋暣涓鏁版嵁搴撶殑Sharepool锛屾彁楂楽QL璇鍙ョ殑閲岖敤鐜囧繀椤诲厛鍏绘垚镩濂界殑鍙樻垚涔犳傥锛屽敖閲忎娇鐢˙ind鍙橀噺銆
鏁版嵁瀛楀吀缂揿啿鍖(Data Dictionary Cache)
鏄捐屾槗瑙侊纴鏁版嵁瀛楀吀缂揿啿鍖烘槸ORACLE鐗瑰湴涓烘暟鎹瀛楀吀鍑嗗囩殑涓鍧楃紦鍐叉睁锛屼緵ORACLE鍐呴儴浣跨敤锛屾病链変粈涔埚彲浠ヨ寸殑銆
涓婃枃镄勫唴瀹圭浉瀵规潵璇磋缮鏄寰埚熀纭镄勶纴镓浠ュ逛簬鍒氩垰鍏ラ棬镄勫埯瀛﹁呮潵璇达纴瀛︿範鍒濇湡锛屽ソ濂界殑镰旂┒涓涓嬫湰鏂囦腑浠嬬粛镄勫唴瀹癸纴鐩镐俊瀵瑰ぇ瀹剁殑鍏ラ棬瀛︿範浼氩緢链夊府锷╃殑銆
② oracle里实例和数据库之间的关系
实例是一个临时性的东西,你简单理解为内存中的东西,随时消亡
而数据库就是各种数据文件,包括控制文件什么的
③ Oracle中的Instance实例和数据库的区别
Oracle中Instance实例和数据库的区别是:
1、数据库实例
指数据库服务器的内存及相关处理程序,它是Oracle的心脏。与Oracle性能关系最大的是SGA(System Global Area,即系统全局区活共享内存区),SGA包含三个部分:
1、数据缓冲区,可避免重复读取常用的数据;
2、日志缓冲区,提升了数据增删改的速度,减少磁盘的读写而加快速度;
3、共享池,使相同的SQL语句不再编译,提升了SQL的执行速度。
oracle数据库实例的另一部分就是一些后台进程了,他主要包括:
1.系统监控进程
2.进程监控
3.数据库写进程
4.日志写进程
5.检验点进程
6.其他进程
这些后台进程合起来完成数据库管理任务
在访问数据库的时候。器后台先启动实例。启动实例前要先分配内存区。然后在启动后台进程。数据库启动过程中必须启动上面的前五个进程。否则实例无法创建。
注意:在启动oracle数据库的时候。因为有些进程是在开机启动项中自动启动的。所以占用了很大一部分内存。如果您电脑上还有一些其他占用内存比较大的程序。在启动oracle数据库的时候有可能会因内存不足而启动失败。
2、在Oracle中,数据的存储有好几种。第一种是文件形式,也就是在你的磁盘中创建一批文件,数据控制文件,联机重做日志文件等构成,外加临时文件,是静态存储的。
oracle体系结构: