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

成人无码视频,亚洲精品久久久久av无码,午夜精品久久久久久毛片,亚洲 中文字幕 日韩 无码

問答專欄Q & A COLUMN

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

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

3條回答

Pluser

Pluser

回答于2022-06-28 15:18

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

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


一、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)生高水位,此時當發(fā)生全表讀的操作,將會額外消耗資源,從而造成業(yè)務(wù)人員直接感覺到系統(tǒng)使用慢。

補救的辦法是:回收高水位。

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

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

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

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

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

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


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

(1) 差索引

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

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

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

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

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

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

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

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


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

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



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

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


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

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


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

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

CHENGKANG

回答于2022-06-28 15:18

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

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

不差錢人的做法:

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

老實人做法:

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

扯皮做法:

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

現(xiàn)實中,很多運維人員都很拼命地在保障系統(tǒng)高效運行,但根據(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來尋找同時段運行較慢的SQL。有針對性的去優(yōu)化。

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

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

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

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

stormzhang

回答于2022-06-28 15:18

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

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

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

我的邀請列表

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