国产一区二区精品-国产一区二区精品久-国产一区二区精品久久-国产一区二区精品久久91-免费毛片播放-免费毛片基地

千鋒教育-做有情懷、有良心、有品質(zhì)的職業(yè)教育機(jī)構(gòu)

手機(jī)站
千鋒教育

千鋒學(xué)習(xí)站 | 隨時(shí)隨地免費(fèi)學(xué)

千鋒教育

掃一掃進(jìn)入千鋒手機(jī)站

領(lǐng)取全套視頻
千鋒教育

關(guān)注千鋒學(xué)習(xí)站小程序
隨時(shí)隨地免費(fèi)學(xué)習(xí)課程

當(dāng)前位置:首頁(yè)  >  技術(shù)干貨  > Oracle數(shù)據(jù)庫(kù)運(yùn)行越來(lái)越慢,應(yīng)該怎么優(yōu)化?

Oracle數(shù)據(jù)庫(kù)運(yùn)行越來(lái)越慢,應(yīng)該怎么優(yōu)化?

來(lái)源:千鋒教育
發(fā)布人:xqq
時(shí)間: 2023-10-13 13:27:44 1697174864

一、Oracle數(shù)據(jù)庫(kù)運(yùn)行越來(lái)越慢的優(yōu)化方法

1、應(yīng)用層優(yōu)化

應(yīng)用程序的設(shè)計(jì)和開(kāi)發(fā)中,可以采用合理的數(shù)據(jù)查詢語(yǔ)句來(lái)減少數(shù)據(jù)庫(kù)的 I/O 操作次數(shù),例如通過(guò)合并多個(gè) SQL 語(yǔ)句或使用批量操作等方式來(lái)優(yōu)化查詢效率。同時(shí),在應(yīng)用程序中適當(dāng)使用緩存技術(shù),減輕數(shù)據(jù)庫(kù)負(fù)載。

2、數(shù)據(jù)庫(kù)層優(yōu)化

Oracle 數(shù)據(jù)庫(kù)在運(yùn)維過(guò)程中可以通過(guò)優(yōu)化數(shù)據(jù)表結(jié)構(gòu)、調(diào)整索引、升級(jí)數(shù)據(jù)庫(kù)版本、重新啟動(dòng)數(shù)據(jù)庫(kù)實(shí)例等方式來(lái)提高性能。具體而言,例如在設(shè)計(jì)表結(jié)構(gòu)時(shí)盡量避免多表關(guān)聯(lián)查詢,優(yōu)化查詢語(yǔ)句,減少鎖定等待時(shí)間。

3、內(nèi)存層優(yōu)化

調(diào)整數(shù)據(jù)庫(kù)的緩存和內(nèi)存設(shè)置是提高 Oracle 數(shù)據(jù)庫(kù)性能的關(guān)鍵,例如增加共享池和高速緩存的大小,以及啟用自動(dòng) PGA(程序全局區(qū))管理功能等。優(yōu)化這些參數(shù),可以減少數(shù)據(jù)庫(kù)的磁盤 I/O 操作,提高訪問(wèn)速度。

4、存儲(chǔ)層優(yōu)化

除了進(jìn)行數(shù)據(jù)庫(kù)、應(yīng)用和內(nèi)存層面的優(yōu)化外,還可以通過(guò)在存儲(chǔ)設(shè)備上進(jìn)行調(diào)整,在存儲(chǔ)層面上提高 Oracle 數(shù)據(jù)庫(kù)的性能。例如使用 RAID 磁盤陣列來(lái)提高磁盤 I/O 效率,使用快速的存儲(chǔ)介質(zhì)如 SSD 來(lái)強(qiáng)化存儲(chǔ)性能等。

二、Oracle數(shù)據(jù)庫(kù)性能檢查方法

1、檢查數(shù)據(jù)庫(kù)的等待事件

select sid,event,p1,p2,p3,WAIT_TIME,SECONDS_IN_WAIT from v$session_wait where event not like 'SQL%' and event not like 'rdbms%';

如果數(shù)據(jù)庫(kù)長(zhǎng)時(shí)間持續(xù)出現(xiàn)大量像 latch free,enqueue,buffer busy waits, db file sequential read,db file scattered read 等等待事件時(shí),需要對(duì)其進(jìn)行分析,可能存在問(wèn)題的語(yǔ)句。

2、Disk Read較高的SQL語(yǔ)句的獲取

SELECT SQL_TEXT FROM (SELECT * FROM V$SQLAREA ORDER BY DISK_READS) WHERE ROWNUM<=5 desc;

3、查找前十條性能差的sql

SELECT * FROM (SELECT PARSING_USER_ID EXECUTIONS,SORTS,COMMAND_TYPE,DISK_READS, SQL_TEXT FROM V$SQLAREA ORDER BY DISK_READS DESC) WHERE ROWNUM<10 ;

4、等待時(shí)間非常多的 5 個(gè)系統(tǒng)等待事件的獲取

SELECT * FROM (SELECT * FROM V$SYSTEM_EVENT WHERE EVENT NOT LIKE 'SQL%' ORDER BY TOTAL_WAITS DESC) WHERE ROWNUM<=5;

5、檢查運(yùn)行很久的SQL

COLUMN USERNAME FORMAT A12 COLUMN OPNAME FORMAT A16 COLUMN PROGRESS FORMAT A8
SELECT USERNAME,SID,OPNAME,ROUND(SOFAR*100 / TOTALWORK,0) || '%' AS PROGRESS,TIME_REMAINING,SQL_TEXT FROM V$SESSION_LONGOPS , V$SQL WHERE
TIME_REMAINING <> 0 AND SQL_ADDRESS=ADDRESS AND SQL_HASH_VALUE = HASH_VALUE;

6、檢查消耗CPU較高的進(jìn)程

SET LINE 240 SET VERIFY OFF
COLUMN SID FORMAT 999 COLUMN PID FORMAT 999 COLUMN S_# FORMAT 999
COLUMN USERNAME FORMAT A9 HEADING "ORA USER"
COLUMN PROGRAM FORMAT A29 COLUMN SQL FORMAT A60
COLUMN OSNAME FORMAT A9 HEADING "OS USER"
SELECT P.PID PID,S.SID SID,P.SPID SPID,S.USERNAME USERNAME,S.OSUSER OSNAME,P.SERIAL# S_#,P.TERMINAL,P.PROGRAM PROGRAM,P.BACKGROUND,S.STATUS,RTRIM(SUBSTR(A.SQL_TEXT, 1, 80)) SQLFROM V$PROCESS P, V$SESSION S,V$SQLAREA A WHERE P.ADDR = S.PADDR AND S.SQL_ADDRESS = A.ADDRESS(+) AND P.SPID LIKE '%&1%';

7、檢查碎片程度高的表

SELECT segment_name table_name,COUNT() extents FROM dba_segments WHERE owner NOT IN ('SYS', 'SYSTEM') GROUP BY segment_name HAVING COUNT()=(SELECT MAX(COUNT(*))
FROM dba_segments GROUP BY segment_name);

8、檢查表空間的 I/O 比例

SELECT DF.TABLESPACE_NAME NAME,DF.FILE_NAME "FILE",F.PHYRDS PYR, F.PHYBLKRD PBR,F.PHYWRTS PYW, F.PHYBLKWRT PBW FROM V$FILESTAT F, DBA_DATA_FILES DF WHERE F.FILE# = DF.FILE_ID ORDER BY DF.TABLESPACE_NAME;

9、檢查文件系統(tǒng)的 I/O 比例

SELECT SUBSTR(A.FILE#,1,2) "#", SUBSTR(A.NAME,1,30) "NAME",
A.STATUS,A.BYTES,B.PHYRDS,B.PHYWRTS FROM V$DATAFILE A, V$FILESTAT B WHERE A.FILE# =
B.FILE#;

10、檢查死鎖及處理

select sid,serial#,username,SCHEMANAME,osuser,MACHINE, terminal,PROGRAM,owner,object_name,object_type,o.object_id from dba_objects o,v$locked_object l,v$session s
where o.object_id=l.object_id and s.sid=l.session_id;

延伸閱讀1:數(shù)據(jù)庫(kù)系統(tǒng)的數(shù)據(jù)模型

層次模型:是數(shù)據(jù)庫(kù)系統(tǒng)中較早出現(xiàn)的數(shù)據(jù)模型,層次數(shù)據(jù)庫(kù)系統(tǒng)采用層次模型作為數(shù)據(jù)的組織方式。它采用樹(shù)形結(jié)構(gòu)來(lái)表示各類實(shí)體以及實(shí)體間的聯(lián)系。網(wǎng)狀數(shù)據(jù)模型:用有向圖表示實(shí)體和實(shí)體之間的聯(lián)系的數(shù)據(jù)結(jié)構(gòu)模型稱為網(wǎng)狀數(shù)據(jù)模型。關(guān)系型數(shù)據(jù)模型:關(guān)系型數(shù)據(jù)模型對(duì)應(yīng)的數(shù)據(jù)庫(kù)自然就是關(guān)系型數(shù)據(jù)庫(kù)了,這是目前應(yīng)用非常多的數(shù)據(jù)庫(kù),使用表格表示實(shí)體和實(shí)體之間關(guān)系的數(shù)據(jù)模型稱之為關(guān)系數(shù)據(jù)模型。
聲明:本站稿件版權(quán)均屬千鋒教育所有,未經(jīng)許可不得擅自轉(zhuǎn)載。
10年以上業(yè)內(nèi)強(qiáng)師集結(jié),手把手帶你蛻變精英
請(qǐng)您保持通訊暢通,專屬學(xué)習(xí)老師24小時(shí)內(nèi)將與您1V1溝通
免費(fèi)領(lǐng)取
今日已有369人領(lǐng)取成功
劉同學(xué) 138****2860 剛剛成功領(lǐng)取
王同學(xué) 131****2015 剛剛成功領(lǐng)取
張同學(xué) 133****4652 剛剛成功領(lǐng)取
李同學(xué) 135****8607 剛剛成功領(lǐng)取
楊同學(xué) 132****5667 剛剛成功領(lǐng)取
岳同學(xué) 134****6652 剛剛成功領(lǐng)取
梁同學(xué) 157****2950 剛剛成功領(lǐng)取
劉同學(xué) 189****1015 剛剛成功領(lǐng)取
張同學(xué) 155****4678 剛剛成功領(lǐng)取
鄒同學(xué) 139****2907 剛剛成功領(lǐng)取
董同學(xué) 138****2867 剛剛成功領(lǐng)取
周同學(xué) 136****3602 剛剛成功領(lǐng)取
相關(guān)推薦HOT
java開(kāi)發(fā)需要會(huì)什么?

一、Java基礎(chǔ)知識(shí)要成為一名合格的Java開(kāi)發(fā)人員,首先需要掌握J(rèn)ava的基礎(chǔ)知識(shí)。這包括了解Java的語(yǔ)法、變量、數(shù)據(jù)類型、運(yùn)算符和控制流程等基本...詳情>>

2023-10-13 15:23:26
數(shù)據(jù)庫(kù)Union連接兩張表之前,怎么判斷要連接的另一張表是否存在?

一、Union連接兩張表之前,怎么判斷要連接的另一張表是否存在那你這個(gè)必須通過(guò)程序判斷 或者存儲(chǔ)過(guò)程去實(shí)現(xiàn),只用一條SQL是解決不了的。若是MyS...詳情>>

2023-10-13 15:20:02
mysql 不加條件查詢速度挺快,加上過(guò)濾條件就特別慢是為什么?

一、mysql 不加條件查詢速度挺快,加上過(guò)濾條件就特別慢是為什么不加條件查詢,如果是自增主鍵的話,會(huì)順序讀盤,順序讀取磁盤數(shù)據(jù)的話,速度可...詳情>>

2023-10-13 15:18:26
mysql中,replace into后怎么連接where子句?

一、mysql中,replace into后怎么連接where子句REPLACE INTO?語(yǔ)法完全?與?INSERT INTO?一樣工作,只是在新行已插入。這意味著您應(yīng)該將主鍵...詳情>>

2023-10-13 15:13:31
什么是數(shù)據(jù)庫(kù)表結(jié)構(gòu)?

一、什么是數(shù)據(jù)庫(kù)表結(jié)構(gòu)數(shù)據(jù)庫(kù)表結(jié)構(gòu)是指數(shù)據(jù)庫(kù)中表的組織和定義方式。它描述了表的名稱、列(字段)的定義和屬性,以及表與其他表之間的關(guān)系。...詳情>>

2023-10-13 14:52:13
快速通道