日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關咨詢
選擇下列產(chǎn)品馬上在線溝通
服務時間:8:30-17:00
你可能遇到了下面的問題
關閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
優(yōu)化技巧(oracle數(shù)據(jù)庫性能)

在現(xiàn)今經(jīng)濟高速發(fā)展的時代,優(yōu)化已成為企業(yè)成功的關鍵。如何做好優(yōu)化?如何利用提高生產(chǎn)效率、提高產(chǎn)品質(zhì)量,降低成本,成為內(nèi)部業(yè)務流程優(yōu)化的佼佼者?以下就是幾種:

哈爾濱網(wǎng)站建設公司創(chuàng)新互聯(lián)公司,哈爾濱網(wǎng)站設計制作,有大型網(wǎng)站制作公司豐富經(jīng)驗。已為哈爾濱1000多家提供企業(yè)網(wǎng)站建設服務。企業(yè)網(wǎng)站搭建\成都外貿(mào)網(wǎng)站建設要多少錢,請找那個售后服務好的哈爾濱做網(wǎng)站的公司定做!

1. 制度優(yōu)化

企業(yè)內(nèi)部制度與規(guī)章的優(yōu)化,可以產(chǎn)生明顯的效益。通過不斷地調(diào)整規(guī)章體系以提高團隊的協(xié)作性、縮短工作流程、減少客戶投訴和重復溝通,這將大大提高生產(chǎn)效率。制度優(yōu)化可以分為三個方面,一是管理制度,二是職業(yè)道德和責任感,三是員工機制。

2. 流程優(yōu)化

每一件事情都有它的流程,流程的合理化能有效地提高效率和極限化嚴格質(zhì)量控制??梢酝ㄟ^通過把生產(chǎn)或管理流程放在行業(yè)規(guī)范標準里,仔細評估這個流程的每個環(huán)節(jié),在必要的地方添加設備,接口和技術手段,不斷地優(yōu)化它而不影響下游客戶的需求。

3. 技術優(yōu)化

在信息化的今天,技術優(yōu)化已經(jīng)成為企業(yè)成功的必要要素。通過對生產(chǎn)過程把控、產(chǎn)品質(zhì)量追求的管控等方面的技術手段,增加生產(chǎn)效率和降低成本。這種優(yōu)化可以包括多項技術,如ERP、MES、SPC、PDS和APC等。

4. 設計優(yōu)化

在實現(xiàn)更高品質(zhì)和降低成本的同時,設計優(yōu)化有助于改進產(chǎn)品性能和工藝。設計優(yōu)化應在產(chǎn)品生命周期全過程中進行,從最初的印刷設計和建筑設計(如房間布局和機件)到產(chǎn)品設計(如規(guī)格、材料和結構)再到銷售和售后服務(如保修期和維護保養(yǎng))。

5. 績效優(yōu)化

企業(yè)在走在發(fā)展的路上,必然面臨著一些問題,其中比較重要的問題是關于人員的績效考核。雖然每個企業(yè)自己的形式相同,在具體操作過程中還是有很多不同的因素讓績效考核變得有所不同??冃Э己诵枰鶕?jù)企業(yè)的目標設定,基于統(tǒng)一的標準和方法,權衡不同人員的貢獻并作出正確的決策。

為實現(xiàn)企業(yè)的全方位發(fā)展,企業(yè)需要不斷地優(yōu)化自己的管理、流程和技術,方能贏得市場競爭的優(yōu)勢。這些有利于提升企業(yè)的能力、水平和信譽。只有堅持不懈地進行優(yōu)化,才能取得持久的收益,成為業(yè)界的佼佼者!

相關問題拓展閱讀:

  • 怎樣保持Oracle數(shù)據(jù)庫SQL性能的穩(wěn)定性
  • 影響數(shù)據(jù)庫性能的主要因素有哪些?

怎樣保持Oracle數(shù)據(jù)庫SQL性能的穩(wěn)定性

有客戶遇到SQL性能不穩(wěn)定 突然變差導致系統(tǒng)性能出現(xiàn)嚴重問題的情況 對于大型的系統(tǒng)來說 SQL性能不穩(wěn)定 有時突然變差 這是常常遇到的問題 這也是一些DBA的挑戰(zhàn)

  對于使用Oracle數(shù)據(jù)庫的應用系統(tǒng) 有時會出現(xiàn)運行得好好的SQL 性能突然變差 特別是對于OLTP類型系統(tǒng)執(zhí)行頻繁的核心SQL 如果出現(xiàn)性能問題 通常會影響整個數(shù)據(jù)庫的性能 進而影響整個系統(tǒng)的正常運行 對于個別的SQL 比如較少使用的查詢報表之類的SQL 如果出現(xiàn)問題 通常只影響少部分功能模塊 而不會影響整個系統(tǒng)

  那么應該怎么樣保持SQL性能的穩(wěn)定性?

  SQL的性能變差 通常是在SQL語句重新進行了解析 解析時使用了錯誤的執(zhí)行計劃出現(xiàn)的 下列情況是SQL會重新解析的原因

   SQL語句沒有使用綁定變量 這樣SQL每次執(zhí)行都要解析

   SQL長時間沒有執(zhí)行 被刷出SHARED POOL 再次執(zhí)行時需要重新解析

   在SQL引用的對象(表 視圖等)上執(zhí)行了DDL操作 甚至是結構發(fā)生了變化 比如建了一個索引

   對SQL引用的對象進行了權限更改森拿

   重新分析(收集統(tǒng)計信息)了SQL引用的表和索引 或者表和索引統(tǒng)計信息被刪除

   修改了與性能相關的部分參數(shù)

   刷新了共享池

   當然重啟數(shù)據(jù)庫也會使所有SQL全部重新解析

  SQL重新解析后 跟以前相比 性能突然變差 通常是下列原因

   表和索引的優(yōu)化統(tǒng)計信息被刪除 或者重新收集后統(tǒng)計信息不準確 重新收集統(tǒng)計信息通常是由于收集策略(方法)不正確引起 比如對分區(qū)表使用yze命令而不是用dbms_stats包 收集統(tǒng)計信息時采樣比例過小等等 Oracle優(yōu)化器嚴重依賴于統(tǒng)計信息 如果統(tǒng)計信息有問題 則很容易導致SQL不能使用正確的執(zhí)行計劃

   SQL綁定變量窺螞祥探(bind peeking) 同時綁定變量對應的列上有直方圖 或者綁定變量的值變化范圍過大 分區(qū)數(shù)據(jù)分布極不均勻

   ) 綁定變量的列上有悶春搏直方圖

  假如表orders存儲所有的訂單 state列有 種不同的值 表示未處理 表示處理成功完成 表示處理失敗 State列上有一個索引 表中絕大部分數(shù)據(jù)的state列為 和 占少數(shù) 有下面的SQL

   select * from orders where state=:b

  這里:b 是變量 在大多數(shù)情況下這個值為 則應該使用索引 但是如果SQL被重新解析 而之一次執(zhí)行時應用傳給變量b 值為 則不會使用索引 采用全表掃描的方式來訪問表 對于綁定變量的SQL 只在之一次執(zhí)行時才會進行綁定變量窺探 并以此確定執(zhí)行計劃 該SQL后續(xù)執(zhí)行時全部按這個執(zhí)行計劃 這樣在后續(xù)執(zhí)行時 b 變量傳入的值為 的時候 仍然是之一次執(zhí)行時產(chǎn)生的執(zhí)行計劃 即使用的是全表掃描 這樣會導致性能很差

   ) 綁定變量的值變化范圍過大

  同樣假如orders表有一列created_date表示一筆訂單的下單時間 orders表里面存儲了最近 年的數(shù)據(jù) 有如下的SQL

   Select * from orders where created_date >=:b ;

  假如大多數(shù)情況下 應用傳入的b 變量值為最近幾天內(nèi)的日期值 那么SQL使用的是created_date列上的索引 而如果b 變量值為 個月之前的一個值 那么就會使用全表掃描 與上面描述的直方圖引起的問題一樣 如果SQL第 次執(zhí)行時傳入的變量值引起的是全表掃描 那么將該SQL后續(xù)執(zhí)行時都使用了全表掃描 從而影響了性能

   ) 分區(qū)數(shù)據(jù)量不均勻

  對于范圍和列表分區(qū) 可能存在各個分區(qū)之間數(shù)據(jù)量極不均勻的情況下 比如分區(qū)表orders按地區(qū)area進行了分區(qū) P 分區(qū)只有幾千行 而P 分區(qū)有 萬行數(shù)據(jù) 同時假如有一列product_id 其上有一個本地分區(qū)索引 有如下的SQL

   select * from orders where area=:b and product_id =:b

  這條SQL由于有area條件 因此會使用分區(qū)排除 如果第 次執(zhí)行時應用傳給b 變量的值正好落在P 分區(qū)上 很可能導致SQL采用全表掃描訪問 如前面所描述的 導致SQL后續(xù)執(zhí)行時全部使用了全表掃描

   其他原因 比如表做了類似于MOVE操作之后 索引不可用 對索引進行了更改 當然這種情況是屬于維護不當引起的問題 不在本文討論的范圍

  綜上所述 SQL語句性能突然變差 主要是因為綁定變量和統(tǒng)計信息的原因 注意這里只討論了突然變差的情況 而對于由于數(shù)據(jù)量和業(yè)務量的增加性能逐步變差的情況不討論

  為保持SQL性能或者說是執(zhí)行計劃的穩(wěn)定性 需要從以下幾個方面著手

   規(guī)劃好優(yōu)化統(tǒng)計信息的收集策略 對于Oracle g來說 默認的策略能夠滿足大部分需求 但是默認的收集策略會過多地收集列上的直方圖 由于綁定變量與直方圖固有的矛盾 為保持性能穩(wěn)定 對使用綁定變量的列 不收集列上的直方圖 對的確需要收集直方圖的列 在SQL中該列上的條件就不要用綁定變量 統(tǒng)計信息收集策略 可以考慮對大部分表 使用系統(tǒng)默認的收集策略 而對于有問題的 可以用DBMS_STATS LOCK_STATS鎖定表的統(tǒng)計信息 避免系統(tǒng)自動收集該表的統(tǒng)計信息 然后編寫腳本來定制地收集表的統(tǒng)計信息 腳本中類似如下

   exec dbms_stats unlock_table_stats…

   exec dbms_stats gather_table_stats…

   exec dbms_stats lock_table_stats…

   修改SQL語句 使用HINT 使SQL語句按HINT指定的執(zhí)行計劃進行執(zhí)行 這需要修改應用 同時需要逐條SQL語句進行 加上測試和發(fā)布 時間較長 成本較高 風險也較大

   修改隱含參數(shù) _optim_peek_user_binds 為FALSE 修改這個參數(shù)可能會引起性能問題(這里討論的是穩(wěn)定性問題)

   使用OUTLINE 對于曾經(jīng)出現(xiàn)過執(zhí)行計劃突然變差的SQL語句 可以使用OUTLINE來加固其執(zhí)行計劃 在 g中DBMS_OUTLN CREATE_OUTLINE可以根據(jù)已有的執(zhí)行正常的SQL游標來創(chuàng)建OUTLINE 如果事先對所有頻繁執(zhí)行的核心SQL使用OUTLINE加固執(zhí)行計劃 將更大可能地避免SQL語句性能突然變差

  注 DBMS_OUTLN可以通過$ORACLE_HOME/rdbms/admin/dbmsol sql腳本來安裝

   使用SQL Profile SQL Profile是Oracle g之后的新功能 此處不再介紹 請參考相應的文檔

  除此之外 可以調(diào)整一些參數(shù)避免潛在的問題 比如將 _btree_bitmap_plans 參數(shù)設置為FALSE(這個參數(shù)請參考互聯(lián)網(wǎng)上的文章或Oracle文檔)

lishixinzhi/Article/program/Oracle/202311/18054

影響數(shù)據(jù)庫性能的主要因素有哪些?

1、1、調(diào)整數(shù)據(jù)結構的設計。這一部分在開發(fā)信息系統(tǒng)之前完成,程序員需要考慮是否使用ORACLE數(shù)據(jù)庫的分區(qū)功能,對于經(jīng)常訪問的數(shù)據(jù)庫表是否需要建立索引等。 \x0d\x0a\x0d\x0a2、2、調(diào)整應用程序結構設計。這一部分也是在開發(fā)信息系統(tǒng)之前完成,程序員在這一步需要考慮應用程序使用什么樣的體系結構,是使用傳統(tǒng)的Client/Server兩層體系結構,還是使用Browser/Web/Database的三層體系結構。不同的應用程序體系結構要求的數(shù)據(jù)庫資源是不同的。 \x0d\x0a\x0d\x0a3、3、調(diào)整數(shù)據(jù)庫SQL語句。應用程序的執(zhí)行最終將歸結為數(shù)據(jù)庫中的SQL語句執(zhí)行,因此SQL語句的執(zhí)行效率最終決定了ORACLE數(shù)據(jù)庫的性能。ORACLE公司推薦使用ORACLE語句優(yōu)化器(Oracle Optimizer)和行鎖管理器(row-level manager)來調(diào)整優(yōu)化SQL語句。 \x0d\x0a\x0d\x0a4、4、調(diào)整服務器內(nèi)存分銷和段配。內(nèi)存分配是在信息系統(tǒng)運行過程中優(yōu)化配置的,數(shù)據(jù)庫管理員可以根據(jù)數(shù)據(jù)庫運行狀況調(diào)整數(shù)據(jù)庫系統(tǒng)全局區(qū)(SGA區(qū))的數(shù)據(jù)緩沖區(qū)、日志緩沖區(qū)和共享池的大??;還可以調(diào)整程序全局區(qū)(PGA區(qū))的大小。需要注意的是,SGA區(qū)不是越大越好,SGA區(qū)過大會占用操作系統(tǒng)使用的內(nèi)存而引起虛擬內(nèi)存的頁面交換,這樣反而會降低系統(tǒng)。 \x0d\x0a\x0d\x0a5、5、調(diào)整硬盤I/O,這一步是在信息系統(tǒng)開發(fā)之前完成的。數(shù)據(jù)庫管理員可以將組成同一個表空間的數(shù)據(jù)文件放在不同的硬盤上,做到硬盤之間I/O負載均衡。 \x0d\x0a\x0d\x0a6、6、調(diào)整操作系統(tǒng)參數(shù),例如:運行在UNIX操作系統(tǒng)上的ORACLE數(shù)據(jù)庫,可以調(diào)整UNIX數(shù)據(jù)緩沖池的大小,每個進程所能使用的內(nèi)存大小等參數(shù)。 \x0d\x0a\x0d\x0a實際上,上述數(shù)據(jù)庫優(yōu)化措施之間是相互聯(lián)系的。ORACLE數(shù)據(jù)庫性能惡化表現(xiàn)基本上都是用戶響應時間比較長,需要用戶長時間的等待。但性能惡化的原因卻是多種多樣的,有時是多個因素共同造成了性能惡化的結果,這就需要數(shù)據(jù)庫管理員有比較全面的計算機知識,能夠敏感地察覺到影響數(shù)據(jù)庫性能的主要原因所在。另外,良好的數(shù)據(jù)庫管理工具對于優(yōu)化數(shù)據(jù)庫性能也是很重要的。 \x0d\x0a\x0d\x0aORACLE數(shù)據(jù)庫性能優(yōu)化工具 \x0d\x0a\x0d\x0a常用的數(shù)據(jù)庫性能優(yōu)化工具有: \x0d\x0a\x0d\x0a1、1、ORACLE數(shù)據(jù)庫在線數(shù)據(jù)字典,ORACLE在線數(shù)據(jù)字典能夠反映出ORACLE動態(tài)運行情況,對于調(diào)整數(shù)據(jù)庫性能是很有幫助的。 \x0d\x0a\x0d\x0a2、2、操作系統(tǒng)工具,例如UNIX操作系統(tǒng)的vmstat,iostat等命令可以查看到系統(tǒng)系統(tǒng)級內(nèi)存和硬盤I/O的使用情況,這些工具對于管理員弄清出系統(tǒng)瓶頸出現(xiàn)棚行在什么地方有時候很有用。 \x0d\x0a\x0d\x0a3、3、SQL語言跟蹤工具(SQL TRACE FACILITY),SQL語言跟蹤工具可以記錄SQL語句的執(zhí)行情況,管理員可以使用虛擬表來調(diào)整實例,使用SQL語句跟蹤文件調(diào)整應用程序性能。SQL語言跟蹤工具將結果輸出成一個操作系統(tǒng)的文虧譽件,管理員可以使用TKPROF工具查看這些文件。 \x0d\x0a\x0d\x0a4、4、ORACLE Enterprise Manager(OEM),這是一個圖形的用戶管理界面,用戶可以使用它方便地進行數(shù)據(jù)庫管理而不必記住復雜的ORACLE數(shù)據(jù)庫管理的命令。 \x0d\x0a\x0d\x0a5、5、EXPLAIN PLAN——SQL語言優(yōu)化命令,使用這個命令可以幫助程序員寫出高效的SQL語言。 \x0d\x0a\x0d\x0aORACLE數(shù)據(jù)庫的系統(tǒng)性能評估 \x0d\x0a\x0d\x0a信息系統(tǒng)的類型不同,需要關注的數(shù)據(jù)庫參數(shù)也是不同的。數(shù)據(jù)庫管理員需要根據(jù)自己的信息系統(tǒng)的類型著重考慮不同的數(shù)據(jù)庫參數(shù)。 \x0d\x0a\x0d\x0a1、1、在線事務處理信息系統(tǒng)(OLTP),這種類型的信息系統(tǒng)一般需要有大量的Insert、Update操作,典型的系統(tǒng)包括民航機票發(fā)售系統(tǒng)、銀行儲蓄系統(tǒng)等。OLTP系統(tǒng)需要保證數(shù)據(jù)庫的并發(fā)性、可靠性和最終用戶的速度,這類系統(tǒng)使用的ORACLE數(shù)據(jù)庫需要主要考慮下述參數(shù): \x0d\x0a\x0d\x0al l 數(shù)據(jù)庫回滾段是否足夠? \x0d\x0a\x0d\x0al l 是否需要建立ORACLE數(shù)據(jù)庫索引、聚集、散列? \x0d\x0a\x0d\x0al l 系統(tǒng)全局區(qū)(SGA)大小是否足夠? \x0d\x0a\x0d\x0al l SQL語句是否高效? \x0d\x0a\x0d\x0a2、2、數(shù)據(jù)倉庫系統(tǒng)(Data Warehousing),這種信息系統(tǒng)的主要任務是從ORACLE的海量數(shù)據(jù)中進行查詢,得到數(shù)據(jù)之間的某些規(guī)律。數(shù)據(jù)庫管理員需要為這種類型的ORACLE數(shù)據(jù)庫著重考慮下述參數(shù): \x0d\x0a\x0d\x0al l 是否采用B*-索引或者bitmap索引? \x0d\x0a\x0d\x0al l 是否采用并行SQL查詢以提高查詢效率? \x0d\x0a\x0d\x0al l 是否采用PL/SQL函數(shù)編寫存儲過程? \x0d\x0a\x0d\x0al l 有必要的話,需要建立并行數(shù)據(jù)庫提高數(shù)據(jù)庫的查詢效率 \x0d\x0a\x0d\x0aSQL語句的調(diào)整原則 \x0d\x0a\x0d\x0aSQL語言是一種靈活的語言,相同的功能可以使用不同的語句來實現(xiàn),但是語句的執(zhí)行效率是很不相同的。程序員可以使用EXPLAIN PLAN語句來比較各種實現(xiàn)方案,并選出更優(yōu)的實現(xiàn)方案??偟脕碇v,程序員寫SQL語句需要滿足考慮如下規(guī)則: \x0d\x0a\x0d\x0a1、1、盡量使用索引。試比較下面兩條SQL語句: \x0d\x0a\x0d\x0a語句A:SELECT dname, deptno FROM dept WHERE deptno NOT IN \x0d\x0a\x0d\x0a(SELECT deptno FROM emp); \x0d\x0a\x0d\x0a語句B:SELECT dname, deptno FROM dept WHERE NOT EXISTS \x0d\x0a\x0d\x0a(SELECT deptno FROM emp WHERE dept.deptno = emp.deptno); \x0d\x0a\x0d\x0a這兩條查詢語句實現(xiàn)的結果是相同的,但是執(zhí)行語句A的時候,ORACLE會對整個emp表進行掃描,沒有使用建立在emp表上的deptno索引,執(zhí)行語句B的時候,由于在子查詢中使用了聯(lián)合查詢,ORACLE只是對emp表進行的部分數(shù)據(jù)掃描,并利用了deptno列的索引,所以語句B的效率要比語句A的效率高一些。 \x0d\x0a\x0d\x0a2、2、選擇聯(lián)合查詢的聯(lián)合次序??紤]下面的例子: \x0d\x0a\x0d\x0aSELECT stuff FROM taba a, tabb b, tabc c \x0d\x0a\x0d\x0aWHERE a.acol between :alow and :ahigh \x0d\x0a\x0d\x0aAND b.bcol between :blow and :bhigh \x0d\x0a\x0d\x0aAND c.ccol between :clow and :chigh \x0d\x0a\x0d\x0aAND a.key1 = b.key1 \x0d\x0a\x0d\x0aAMD a.key2 = c.key2; \x0d\x0a\x0d\x0a這個SQL例子中,程序員首先需要選擇要查詢的主表,因為主表要進行整個表數(shù)據(jù)的掃描,所以主表應該數(shù)據(jù)量最小,所以例子中表A的acol列的范圍應該比表B和表C相應列的范圍小。 \x0d\x0a\x0d\x0a3、3、在子查詢中慎重使用IN或者NOT IN語句,使用where (NOT) exists的效果要好的多。 \x0d\x0a\x0d\x0a4、4、慎重使用視圖的聯(lián)合查詢,尤其是比較復雜的視圖之間的聯(lián)合查詢。一般對視圖的查詢更好都分解為對數(shù)據(jù)表的直接查詢效果要好一些。 \x0d\x0a\x0d\x0a5、5、可以在參數(shù)文件中設置SHARED_POOL_RESERVED_SIZE參數(shù),這個參數(shù)在SGA共享池中保留一個連續(xù)的內(nèi)存空間,連續(xù)的內(nèi)存空間有益于存放大的SQL程序包。 \x0d\x0a\x0d\x0a6、6、ORACLE公司提供的DBMS_SHARED_POOL程序可以幫助程序員將某些經(jīng)常使用的存儲過程“釘”在SQL區(qū)中而不被換出內(nèi)存,程序員對于經(jīng)常使用并且占用內(nèi)存很多的存儲過程“釘”到內(nèi)存中有利于提高最終用戶的響應時間。 \x0d\x0a\x0d\x0aCPU參數(shù)的調(diào)整 \x0d\x0a\x0d\x0aCPU是服務器的一項重要資源,服務器良好的工作狀態(tài)是在工作高峰時CPU的使用率在90%以上。如果空閑時間CPU使用率就在90%以上,說明服務器缺乏CPU資源,如果工作高峰時CPU使用率仍然很低,說明服務器CPU資源還比較富余。 \x0d\x0a\x0d\x0a使用操作相同命令可以看到CPU的使用情況,一般UNIX操作系統(tǒng)的服務器,可以使用sar _u命令查看CPU的使用率,NT操作系統(tǒng)的服務器,可以使用NT的性能管理器來查看CPU的使用率。 \x0d\x0a\x0d\x0a數(shù)據(jù)庫管理員可以通過查看v$sysstat數(shù)據(jù)字典中“CPU used by this session”統(tǒng)計項得知ORACLE數(shù)據(jù)庫使用的CPU時間,查看“OS User level CPU time”統(tǒng)計項得知操作系統(tǒng)用戶態(tài)下的CPU時間,查看“OS System call CPU time”統(tǒng)計項得知操作系統(tǒng)系統(tǒng)態(tài)下的CPU時間,操作系統(tǒng)總的CPU時間就是用戶態(tài)和系統(tǒng)態(tài)時間之和,如果ORACLE數(shù)據(jù)庫使用的CPU時間占操作系統(tǒng)總的CPU時間90%以上,說明服務器CPU基本上被ORACLE數(shù)據(jù)庫使用著,這是合理,反之,說明服務器CPU被其它程序占用過多,ORACLE數(shù)據(jù)庫無法得到更多的CPU時間。 \x0d\x0a\x0d\x0a數(shù)據(jù)庫管理員還可以通過查看v$sesstat數(shù)據(jù)字典來獲得當前連接ORACLE數(shù)據(jù)庫各個會話占用的CPU時間,從而得知什么會話耗用服務器CPU比較多。 \x0d\x0a\x0d\x0a出現(xiàn)CPU資源不足的情況是很多的:SQL語句的重解析、低效率的SQL語句、鎖沖突都會引起CPU資源不足。 \x0d\x0a\x0d\x0a1、數(shù)據(jù)庫管理員可以執(zhí)行下述語句來查看SQL語句的解析情況: \x0d\x0a\x0d\x0aSELECT * FROM V$SYSSTAT \x0d\x0a\x0d\x0aWHERE NAME IN \x0d\x0a\x0d\x0a(‘parse time cpu’, ‘parse time elapsed’, ‘parse count (hard)’); \x0d\x0a\x0d\x0a這里parse time cpu是系統(tǒng)服務時間,parse time elapsed是響應時間,用戶等待時間 \x0d\x0a\x0d\x0awaite time = parse time elapsed _ parse time cpu \x0d\x0a\x0d\x0a由此可以得到用戶SQL語句平均解析等待時間=waite time / parse count。這個平均等待時間應該接近于0,如果平均解析等待時間過長,數(shù)據(jù)庫管理員可以通過下述語句 \x0d\x0a\x0d\x0aSELECT SQL_TEXT, PARSE_CALLS, EXECUTIONS FROM V$SQLAREA \x0d\x0a\x0d\x0aORDER BY PARSE_CALLS; \x0d\x0a\x0d\x0a來發(fā)現(xiàn)是什么SQL語句解析效率比較低。程序員可以優(yōu)化這些語句,或者增加ORACLE參數(shù)SESSION_CACHED_CURSORS的值。 \x0d\x0a\x0d\x0a2、數(shù)據(jù)庫管理員還可以通過下述語句: \x0d\x0a\x0d\x0aSELECT BUFFER_GETS, EXECUTIONS, SQL_TEXT FROM V$SQLAREA; \x0d\x0a\x0d\x0a查看低效率的SQL語句,優(yōu)化這些語句也有助于提高CPU的利用率。 \x0d\x0a\x0d\x0a3、3、數(shù)據(jù)庫管理員可以通過v$system_event數(shù)據(jù)字典中的“l(fā)atch free”統(tǒng)計項查看ORACLE數(shù)據(jù)庫的沖突情況,如果沒有沖突的話,latch free查詢出來沒有結果。如果沖突太大的話,數(shù)據(jù)庫管理員可以降低spin_count參數(shù)值,來消除高的CPU使用率。 \x0d\x0a\x0d\x0a內(nèi)存參數(shù)的調(diào)整 \x0d\x0a\x0d\x0a內(nèi)存參數(shù)的調(diào)整主要是指ORACLE數(shù)據(jù)庫的系統(tǒng)全局區(qū)(SGA)的調(diào)整。SGA主要由三部分構成:共享池、數(shù)據(jù)緩沖區(qū)、日志緩沖區(qū)。 \x0d\x0a\x0d\x0a1、 1、 共享池由兩部分構成:共享SQL區(qū)和數(shù)據(jù)字典緩沖區(qū),共享SQL區(qū)是存放用戶SQL命令的區(qū)域,數(shù)據(jù)字典緩沖區(qū)存放數(shù)據(jù)庫運行的動態(tài)信息。數(shù)據(jù)庫管理員通過執(zhí)行下述語句: \x0d\x0a\x0d\x0aselect (sum(pins – reloads)) / sum(pins) “Lib Cache” from v$librarycache; \x0d\x0a\x0d\x0a來查看共享SQL區(qū)的使用率。這個使用率應該在90%以上,否則需要增加共享池的大小。數(shù)據(jù)庫管理員還可以執(zhí)行下述語句: \x0d\x0a\x0d\x0aselect (sum(gets – getmisses – usage – fixed)) / sum(gets) “Row Cache” from v$rowcache; \x0d\x0a\x0d\x0a查看數(shù)據(jù)字典緩沖區(qū)的使用率,這個使用率也應該在90%以上,否則需要增加共享池的大小。 \x0d\x0a\x0d\x0a2、 2、 數(shù)據(jù)緩沖區(qū)。數(shù)據(jù)庫管理員可以通過下述語句: \x0d\x0a\x0d\x0aSELECT name, value FROM v$sysstat WHERE name IN (‘db block gets’, ‘consistent gets’,’physical reads’); \x0d\x0a\x0d\x0a來查看數(shù)據(jù)庫數(shù)據(jù)緩沖區(qū)的使用情況。查詢出來的結果可以計算出來數(shù)據(jù)緩沖區(qū)的使用命中率=1 – ( physical reads / (db block gets + consistent gets) )。 \x0d\x0a\x0d\x0a這個命中率應該在90%以上,否則需要增加數(shù)據(jù)緩沖區(qū)的大小。 \x0d\x0a\x0d\x0a3、 3、 日志緩沖區(qū)。數(shù)據(jù)庫管理員可以通過執(zhí)行下述語句: \x0d\x0a\x0d\x0aselect name,value from v$sysstat where name in (‘redo entries’,’redo log space requests’);查看日志緩沖區(qū)的使用情況。查詢出的結果可以計算出日志緩沖區(qū)的申請失敗率: \x0d\x0a\x0d\x0a申請失敗率=requests/entries,申請失敗率應該接近于0,否則說明日志緩沖區(qū)開設太小,需要增加ORACLE數(shù)據(jù)庫的日志緩沖區(qū)。

oracle數(shù)據(jù)庫 性能的介紹就聊到這里吧,感謝你花時間閱讀本站內(nèi)容,更多關于oracle數(shù)據(jù)庫 性能,優(yōu)化技巧,怎樣保持Oracle數(shù)據(jù)庫SQL性能的穩(wěn)定性,影響數(shù)據(jù)庫性能的主要因素有哪些?的信息別忘了在本站進行查找喔。

香港服務器選創(chuàng)新互聯(lián),2H2G首月10元開通。
創(chuàng)新互聯(lián)(www.cdcxhl.com)互聯(lián)網(wǎng)服務提供商,擁有超過10年的服務器租用、服務器托管、云服務器、虛擬主機、網(wǎng)站系統(tǒng)開發(fā)經(jīng)驗。專業(yè)提供云主機、虛擬主機、域名注冊、VPS主機、云服務器、香港云服務器、免備案服務器等。


當前題目:優(yōu)化技巧(oracle數(shù)據(jù)庫性能)
文章網(wǎng)址:http://www.dlmjj.cn/article/dpgcooe.html