{eval=Array;=+count(Array);}

成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

問答專欄Q & A COLUMN

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

bladefurybladefury 回答0 收藏1
問題描述:怎么對Oracle數(shù)據(jù)庫進(jìn)行優(yōu)化,提升運(yùn)行速度?
收藏問題

3條回答

Pluser

Pluser

回答于2022-06-28 15:18

我根據(jù)所維護(hù)的Oracle 項目經(jīng)驗(yàn)來回答這個問題,希望能夠幫助到題主及有需要的朋友。

Oracle 運(yùn)行越來越慢,是有多種原因,我從由易到難的思路,介紹一下我們實(shí)際運(yùn)用的方法分享給大家:


一、Oracle 數(shù)據(jù)庫層自身的優(yōu)化

1. 表的優(yōu)化。表是Oracle中存放數(shù)據(jù)的最終載體,表的優(yōu)化是核心。 隨時業(yè)務(wù)系統(tǒng)使用時間越長,表中的數(shù)據(jù)就越多,表的優(yōu)化會起到立竿見影的效果。

(1) 表的高水位問題。

表中的數(shù)據(jù),因較多的 delete 操作,會產(chǎn)生高水位,此時當(dāng)發(fā)生全表讀的操作,將會額外消耗資源,從而造成業(yè)務(wù)人員直接感覺到系統(tǒng)使用慢。

補(bǔ)救的辦法是:回收高水位。

(2) 表的統(tǒng)計信息過舊或者不準(zhǔn)確

   統(tǒng)計信息不準(zhǔn)確,會引起執(zhí)行計劃出錯,造成業(yè)務(wù)系統(tǒng)越來越慢。 表的統(tǒng)計信息就相當(dāng)于人的基本情況,當(dāng)基本情況都不準(zhǔn)確時,如何能夠保證正確的執(zhí)行呢。

補(bǔ)救的辦法是:收集表的統(tǒng)計信息。

(3) 未實(shí)施表分區(qū)技術(shù)

化整為零的思想。 某些表,根據(jù)業(yè)務(wù)的實(shí)際需要,未做表分區(qū)。 比如會經(jīng)常用按年月來查詢表中某月的數(shù)據(jù),如果表中的數(shù)據(jù)量非常大,比如超100萬條,就可以按月進(jìn)行分區(qū),讓按月的查詢,只需要讀取所需要月份的分區(qū)表。

補(bǔ)救的辦法是: 對表實(shí)行化整為零,轉(zhuǎn)為分區(qū)表


2. 索引的優(yōu)化

(1) 差索引

數(shù)據(jù)庫運(yùn)行慢,很多的情況是查詢語句中引用的列,差索引。索引是提升速度非常重要的手段。

補(bǔ)救的辦法是: 分析SQL 語句,對缺失的索引進(jìn)行創(chuàng)建。

(2) 索引的統(tǒng)計信息不準(zhǔn)

索引的統(tǒng)計信息與表的信息信息思想是一樣的, 只有統(tǒng)計信息準(zhǔn)確,SQL 才能夠最大程度的選擇最好的執(zhí)行計劃,以最短的時間執(zhí)行完所需要的業(yè)務(wù)SQL。

補(bǔ)救的辦法是:收集索引的統(tǒng)計信息。

3. SQL 語句的優(yōu)化

數(shù)據(jù)庫慢,很多情況是因?yàn)镾QL寫法不對,造成執(zhí)行時間長,消耗了過多的資源。 因此優(yōu)化SQL 是非常重要的方式之一。

補(bǔ)救的辦法是:收集Oracle 數(shù)據(jù)庫的 AWR, ADDM, ASH 等性能報告,找出執(zhí)行時間長、消耗資源多的SQL 語句進(jìn)行優(yōu)化。


4. Oracle 數(shù)據(jù)庫的參數(shù)優(yōu)化

數(shù)據(jù)庫想要運(yùn)行速度快,對Oracle的運(yùn)行參數(shù)進(jìn)行優(yōu)化是重要的手段和方法,比如大家所熟悉的 SGA、PGA、DB_Cache_Size 、Process 等參數(shù)進(jìn)行分析、優(yōu)化。



二、 操作系統(tǒng)不建議用 WIndows

Oracle 數(shù)據(jù)庫的運(yùn)行也是要挑系統(tǒng)平臺的,一般的中、小企業(yè),推薦的是使用 Linux ,從每次Oracle新版本的發(fā)行就知道,首先推出的是Linux平臺,然后是 Unix平臺,最后才是Windows平臺。


三、 升級 Oracle 數(shù)據(jù)庫硬件

如經(jīng)過前面 2 個大項的優(yōu)化,仍然不能提升Oracle 數(shù)據(jù)庫的運(yùn)行速度,則可能是因?yàn)楝F(xiàn)有的硬件不能滿足當(dāng)前的業(yè)務(wù)需求,必須采取升級 Oracle 數(shù)據(jù)庫服務(wù)器的硬件資源比如:升級CPU、內(nèi)存、磁盤(特別是提升 磁盤 I/O 速度),來提升Oracle數(shù)據(jù)庫的運(yùn)行速度。


以上方法和思路,是我們實(shí)際項目中遇到并運(yùn)用的方法和手段,歡迎大家交流。

評論0 贊同0
  •  加載中...
CHENGKANG

CHENGKANG

回答于2022-06-28 15:18

隨著業(yè)務(wù)數(shù)據(jù)的增長,以及新業(yè)務(wù)的推出,很多企業(yè)都面臨著系統(tǒng)性能的問題,并且日益凸顯。似乎用盡了所有招數(shù),但性能就是不見改善,問題到底出在哪里?

遇到如此問題,我們一般怎么做呢?是不是都有過下面的體會?

不差錢人的做法:

升級cpu、擴(kuò)內(nèi)存、換固態(tài)盤存儲,只能說一開始很管用,慢慢地老問題又出現(xiàn)了。

老實(shí)人做法:

新上線了業(yè)務(wù)系統(tǒng)性能不佳,怎么辦呢?我們來玩打游擊。把一些不重要的業(yè)務(wù)放在晚上運(yùn)行,調(diào)整新業(yè)務(wù)的功能模塊,或者暫時不做數(shù)據(jù)同步等

扯皮做法:

看看網(wǎng)絡(luò)有沒有問題呢,有的話就改;是不是存儲的問題呢,有問題就換;運(yùn)維人員有沒有問題呢,服務(wù)商也隨意招;但要誰來承擔(dān)責(zé)任呢,每次遇到嚴(yán)重的故障,是不是時間用來扯皮較多?

現(xiàn)實(shí)中,很多運(yùn)維人員都很拼命地在保障系統(tǒng)高效運(yùn)行,但根據(jù)相關(guān)統(tǒng)計,80%的系統(tǒng)性能問題來自SQL方面的問題。所以,在基本保證網(wǎng)絡(luò)(跟平時比,跟同時段其他業(yè)務(wù)比)、服務(wù)器(CPU、內(nèi)存使用率)、存儲(IO等待)等資源都問題不大的情況下,可以通過查看Oracle對應(yīng)時段的AWR、ASH、ADDM來尋找同時段運(yùn)行較慢的SQL。有針對性的去優(yōu)化。

而SQL優(yōu)化中最基本的做法就是建立索引(這個需要根據(jù)SQL執(zhí)行計劃去建立合適的索引)、SQL改寫、HINT提示等等

性能優(yōu)化是一個比較復(fù)雜的系統(tǒng)工程,以上僅是提示點(diǎn)思路吧,具體還需要根據(jù)系統(tǒng)的實(shí)際情況多做練習(xí),然后再觀察。優(yōu)化是一個循序漸進(jìn)的過程,就像我們?nèi)松∫粯樱瘸运幹尾?,然后再去醫(yī)院復(fù)查,看看是否已經(jīng)治愈一個道理。

希望以上對題主有所幫助,也歡迎其他大牛提出更好的思路,幫助題主。

評論0 贊同0
  •  加載中...
stormzhang

stormzhang

回答于2022-06-28 15:18

你先生成你運(yùn)行慢那一時間段的性能報告,然后通過里邊的指數(shù)看是你的硬件問題還是你的語句的問題,SGA區(qū)小的話加SGA區(qū),接著再分析你的語句,看是不是你這個語句的計劃任務(wù)是怎么走的,是否沒走索引走了全表掃描!以上就是我的觀點(diǎn)

評論0 贊同0
  •  加載中...

最新活動

您已邀請0人回答 查看邀請

我的邀請列表

  • 擅長該話題
  • 回答過該話題
  • 我關(guān)注的人
向幫助了您的網(wǎng)友說句感謝的話吧!
付費(fèi)偷看金額在0.1-10元之間
<