欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

oracle很慢怎么優(yōu)化,oracle數(shù)據(jù)庫運行慢,優(yōu)化配置

linux運行oracle11g后很慢怎么優(yōu)化

1. 標準優(yōu)化:遵從Oracle技術文檔中的說明tune你的Linux,比如共享內(nèi)存等等。這里不贅述了,因為文檔中很全。 2. 根據(jù)你的使用情況采取Dedicate型或MTS型數(shù)據(jù)庫。具體方法也看文檔。 3. 假如你不是對數(shù)據(jù)庫中的java應用非凡有需求的話,不要裝它,也不要啟動它。(假如你裝了的話) 4. 對你的服務器來說,最好專用。假如你不專用,說明你對性能并不那么敏感,也用不著優(yōu)化了。 5. 內(nèi)存越大越好。但Linux對內(nèi)存大小有限制,因此需要去找一些Patch。 6. 下載一個SGI's POSIX Asynchronous I/O and Raw I/O的內(nèi)核Patch。它能大幅度提高你數(shù)據(jù)文件的訪問速度。 7. 假如你采用ext2文件系統(tǒng),把Block的大小增加到4~8KB。其中dbf所在分區(qū)的大小最少弄到8192KB。 8. 盡可能用SCSI硬盤。假如是IDE的,好好調(diào)調(diào)參數(shù)。 9. 這里是一個示例程序: set -a VM=/PRoc/sys/vm BDFLUSH="40 1024 64 256 500 3000 500 1884 2" BUFFERMEM="5 8 10" FREEPAGES="512 1024 3072" OVERCOMMIT="1" case $1 in start) echo "$BDFLUSH"$VM/bdflush echo "$BUFFERMEM"$VM/buffermem echo "$FREEPAGES"$VM/freepages echo "$OVERCOMMIT"$VM/overcommit_memory /sbin/hdparm -k -u 1 -m 32 -c 1 /dev/hda; /sbin/hdparm -k -u 1 -m 16 -c 1 /dev/hdc; ;; stop) toUCh /root/shouldnt.happen; ;; *) echo "USAGE $0 {startstop}"; ;; esac; 10. 假如你有Solaris for X86的話,可以運用它的分區(qū)工具把你的所有分區(qū)都改成UFS。Linux的當前Kernel是支持UFS的。在數(shù)據(jù)庫運用上,UFS比ext2好。 11. 假如可能,應該采用諸如IBM JFS或SGI XFS這樣的64位文件系統(tǒng)。

成都創(chuàng)新互聯(lián)公司專注為客戶提供全方位的互聯(lián)網(wǎng)綜合服務,包含不限于網(wǎng)站建設、做網(wǎng)站、靖遠網(wǎng)絡推廣、小程序制作、靖遠網(wǎng)絡營銷、靖遠企業(yè)策劃、靖遠品牌公關、搜索引擎seo、人物專訪、企業(yè)宣傳片、企業(yè)代運營等,從售前售中售后,我們都將竭誠為您服務,您的肯定,是我們最大的嘉獎;成都創(chuàng)新互聯(lián)公司為所有大學生創(chuàng)業(yè)者提供靖遠建站搭建服務,24小時服務熱線:18982081108,官方網(wǎng)址:chinadenli.net

如何進行oracle數(shù)據(jù)庫性能優(yōu)化

你最好買一本專門講ORACLE性能優(yōu)化的書,好好看看\x0d\x0a1、調(diào)整數(shù)據(jù)庫服務器的性能\x0d\x0aOracle數(shù)據(jù)庫服務器是整個系統(tǒng)的核心,它的性能高低直接影響整個系統(tǒng)的性能,為了調(diào)整Oracle數(shù)據(jù)庫服務器的性能,主要從以下幾個方面考慮: \x0d\x0a1.1、調(diào)整操作系統(tǒng)以適合Oracle數(shù)據(jù)庫服務器運行\(zhòng)x0d\x0aOracle數(shù)據(jù)庫服務器很大程度上依賴于運行服務器的操作系統(tǒng),如果操作系統(tǒng)不能提供最好性能,那么無論如何調(diào)整,Oracle數(shù)據(jù)庫服務器也無法發(fā)揮其應有的性能。 \x0d\x0a1.1.1、為Oracle數(shù)據(jù)庫服務器規(guī)劃系統(tǒng)資源 \x0d\x0a據(jù)已有計算機可用資源, 規(guī)劃分配給Oracle服務器資源原則是:盡可能使Oracle服務器使用資源最大化,特別在Client/Server中盡量讓服務器上所有資源都來運行Oracle服務。 \x0d\x0a1.1.2、調(diào)整計算機系統(tǒng)中的內(nèi)存配置 \x0d\x0a多數(shù)操作系統(tǒng)都用虛存來模擬計算機上更大的內(nèi)存,它實際上是硬盤上的一定的磁盤空間。當實際的內(nèi)存空間不能滿足應用軟件的要求時,操作系統(tǒng)就將用這部分的磁盤空間對內(nèi)存中的信息進行頁面替換,這將引起大量的磁盤I/O操作,使整個服務器的性能下降。為了避免過多地使用虛存,應加大計算機的內(nèi)存。 \x0d\x0a1.1.3、為Oracle數(shù)據(jù)庫服務器設置操作系統(tǒng)進程優(yōu)先級 \x0d\x0a不要在操作系統(tǒng)中調(diào)整Oracle進程的優(yōu)先級,因為在Oracle數(shù)據(jù)庫系統(tǒng)中,所有的后臺和前臺數(shù)據(jù)庫服務器進程執(zhí)行的是同等重要的工作,需要同等的優(yōu)先級。所以在安裝時,讓所有的數(shù)據(jù)庫服務器進程都使用缺省的優(yōu)先級運行。 \x0d\x0a1.2、調(diào)整內(nèi)存分配\x0d\x0aOracle數(shù)據(jù)庫服務器保留3個基本的內(nèi)存高速緩存,分別對應3種不同類型的數(shù)據(jù):庫高速緩存,字典高速緩存和緩沖區(qū)高速緩存。庫高速緩存和字典高速緩存一起構成共享池,共享池再加上緩沖區(qū)高速緩存便構成了系統(tǒng)全程區(qū)(SGA)。SGA是對數(shù)據(jù)庫數(shù)據(jù)進行快速訪問的一個系統(tǒng)全程區(qū),若SGA本身需要頻繁地進行釋放、分配,則不能達到快速訪問數(shù)據(jù)的目的,因此應把SGA放在主存中,不要放在虛擬內(nèi)存中。內(nèi)存的調(diào)整主要是指調(diào)整組成SGA的內(nèi)存結構的大小來提高系統(tǒng)性能,由于Oracle數(shù)據(jù)庫服務器的內(nèi)存結構需求與應用密切相關,所以內(nèi)存結構的調(diào)整應在磁盤I/O調(diào)整之前進行。 \x0d\x0a1.2.1、庫緩沖區(qū)的調(diào)整 \x0d\x0a庫緩沖區(qū)中包含私用和共享SQL和PL/SQL區(qū),通過比較庫緩沖區(qū)的命中率決定它的大小。要調(diào)整庫緩沖區(qū),必須首先了解該庫緩沖區(qū)的活動情況,庫緩沖區(qū)的活動統(tǒng)計信息保留在動態(tài)性能表v$librarycache數(shù)據(jù)字典中,可通過查詢該表來了解其活動情況,以決定如何調(diào)整。 \x0d\x0a \x0d\x0aSelect sum(pins),sum(reloads) from v$librarycache; \x0d\x0a \x0d\x0aPins列給出SQL語句,PL/SQL塊及被訪問對象定義的總次數(shù);Reloads列給出SQL 和PL/SQL塊的隱式分析或對象定義重裝載時在庫程序緩沖區(qū)中發(fā)生的錯誤。如果sum(pins)/sum(reloads) ≈0,則庫緩沖區(qū)的命中率合適;若sum(pins)/sum(reloads)1, 則需調(diào)整初始化參數(shù) shared_pool_size來重新調(diào)整分配給共享池的內(nèi)存量。 \x0d\x0a1.2.2、數(shù)據(jù)字典緩沖區(qū)的調(diào)整 \x0d\x0a數(shù)據(jù)字典緩沖區(qū)包含了有關數(shù)據(jù)庫的結構、用戶、實體信息。數(shù)據(jù)字典的命中率,對系統(tǒng)性能影響極大。數(shù)據(jù)字典緩沖區(qū)的使用情況記錄在動態(tài)性能表v$librarycache中,可通過查詢該表來了解其活動情況,以決定如何調(diào)整。 \x0d\x0a \x0d\x0aSelect sum(gets),sum(getmisses) from v$rowcache; \x0d\x0a \x0d\x0aGets列是對相應項請求次數(shù)的統(tǒng)計;Getmisses 列是引起緩沖區(qū)出錯的數(shù)據(jù)的請求次數(shù)。對于頻繁訪問的數(shù)據(jù)字典緩沖區(qū),sum(getmisses)/sum(gets)10%~15%。若大于此百分數(shù),則應考慮增加數(shù)據(jù)字典緩沖區(qū)的容量,即需調(diào)整初始化參數(shù)shared_pool_size來重新調(diào)整分配給共享池的內(nèi)存量。 \x0d\x0a1.2.3、緩沖區(qū)高速緩存的調(diào)整 \x0d\x0a用戶進程所存取的所有數(shù)據(jù)都是經(jīng)過緩沖區(qū)高速緩存來存取,所以該部分的命中率,對性能至關重要。緩沖區(qū)高速緩存的使用情況記錄在動態(tài)性能表v$sysstat中,可通過查詢該表來了解其活動情況,以決定如何調(diào)整。 \x0d\x0a \x0d\x0aSelect name,value from v$sysstat where name in ('dbblock gets','consistent gets','physical reads'); \x0d\x0a \x0d\x0adbblock gets和consistent gets的值是請求數(shù)據(jù)緩沖區(qū)中讀的總次數(shù)。physical reads的值是請求數(shù)據(jù)時引起從盤中讀文件的次數(shù)。從緩沖區(qū)高速緩存中讀的可能性的高低稱為緩沖區(qū)的命中率,計算公式: \x0d\x0a \x0d\x0aHit Ratio=1-(physical reds/(dbblock gets+consistent gets)) \x0d\x0a \x0d\x0a如果Hit Ratio60%~70%,則應增大db_block_buffers的參數(shù)值。db_block_buffers可以調(diào)整分配給緩沖區(qū)高速緩存的內(nèi)存量,即db_block_buffers可設置分配緩沖區(qū)高速緩存的數(shù)據(jù)塊的個數(shù)。緩沖區(qū)高速緩存的總字節(jié)數(shù)=db_block_buffers的值*db_block_size的值。db_block_size 的值表示數(shù)據(jù)塊大小的字節(jié)數(shù),可查詢 v$parameter 表: \x0d\x0a \x0d\x0aselect name,value from v$parameter where name='db_block_size'; \x0d\x0a \x0d\x0a在修改了上述數(shù)據(jù)庫的初始化參數(shù)以后,必須先關閉數(shù)據(jù)庫,在重新啟動數(shù)據(jù)庫后才能使新的設置起作用。

Oracle查詢速度優(yōu)化問題

1. 選用適合的ORACLE優(yōu)化器

ORACLE的優(yōu)化器共有3種:

a. RULE (基于規(guī)則) b. COST (基于成本) c. CHOOSE (選擇性)

設置缺省的優(yōu)化器,可以通過對init.ora文件中OPTIMIZER_MODE參數(shù)的各種聲明,如RULE,COST,CHOOSE,ALL_ROWS,FIRST_ROWS . 你當然也在SQL句級或是會話(session)級對其進行覆蓋.

為了使用基于成本的優(yōu)化器(CBO, Cost-Based Optimizer) , 你必須經(jīng)常運行analyze 命令,以增加數(shù)據(jù)庫中的對象統(tǒng)計信息(object statistics)的準確性.

如果數(shù)據(jù)庫的優(yōu)化器模式設置為選擇性(CHOOSE),那么實際的優(yōu)化器模式將和是否運行過analyze命令有關. 如果table已經(jīng)被analyze過, 優(yōu)化器模式將自動成為CBO , 反之,數(shù)據(jù)庫將采用RULE形式的優(yōu)化器.

在缺省情況下,ORACLE采用CHOOSE優(yōu)化器, 為了避免那些不必要的全表掃描(full table scan) , 你必須盡量避免使用CHOOSE優(yōu)化器,而直接采用基于規(guī)則或者基于成本的優(yōu)化器.

2. 訪問Table的方式

ORACLE 采用兩種訪問表中記錄的方式:

a. 全表掃描

全表掃描就是順序地訪問表中每條記錄. ORACLE采用一次讀入多個數(shù)據(jù)塊(database block)的方式優(yōu)化全表掃描.

b. 通過ROWID訪問表

你可以采用基于ROWID的訪問方式情況,提高訪問表的效率, , ROWID包含了表中記錄的物理位置信息..ORACLE采用索引(INDEX)實現(xiàn)了數(shù)據(jù)和存放數(shù)據(jù)的物理位置(ROWID)之間的聯(lián)系. 通常索引提供了快速訪問ROWID的方法,因此那些基于索引列的查詢就可以得到性能上的提高.

3. 共享SQL語句

為了不重復解析相同的SQL語句,在第一次解析之后, ORACLE將SQL語句存放在內(nèi)存中.這塊位于系統(tǒng)全局區(qū)域SGA(system global area)的共享池(shared buffer pool)中的內(nèi)存可以被所有的數(shù)據(jù)庫用戶共享. 因此,當你執(zhí)行一個SQL語句(有時被稱為一個游標)時,如果它

和之前的執(zhí)行過的語句完全相同, ORACLE就能很快獲得已經(jīng)被解析的語句以及最好的

執(zhí)行路徑. ORACLE的這個功能大大地提高了SQL的執(zhí)行性能并節(jié)省了內(nèi)存的使用.

可惜的是ORACLE只對簡單的表提供高速緩沖(cache buffering) ,這個功能并不適用于多表連接查詢.

數(shù)據(jù)庫管理員必須在init.ora中為這個區(qū)域設置合適的參數(shù),當這個內(nèi)存區(qū)域越大,就可以保留更多的語句,當然被共享的可能性也就越大了.

當你向ORACLE 提交一個SQL語句,ORACLE會首先在這塊內(nèi)存中查找相同的語句.

這里需要注明的是,ORACLE對兩者采取的是一種嚴格匹配,要達成共享,SQL語句必須完全相同(包括空格,換行等).

4.選擇最有效率的表名順序(只在基于規(guī)則的優(yōu)化器中有效)

ORACLE的解析器按照從右到左的順序處理FROM子句中的表名,因此FROM子句中寫在最后的表(基礎表 driving table)將被最先處理. 在FROM子句中包含多個表的情況下,你必須選擇記錄條數(shù)最少的表作為基礎表.當ORACLE處理多個表時, 會運用排序及合并的方式連接它們.首先,掃描第一個表(FROM子句中最后的那個表)并對記錄進行派序,然后掃描第二個表(FROM子句中最后第二個表),最后將所有從第二個表中檢索出的記錄與第一個表中合適記錄進行合并.如果有3個以上的表連接查詢, 那就需要選擇交叉表(intersection table)作為基礎表, 交叉表是指那個被其他表所引用的表.

5. WHERE子句中的連接順序.

ORACLE采用自下而上的順序解析WHERE子句,根據(jù)這個原理,表之間的連接必須寫在其他WHERE條件之前, 那些可以過濾掉最大數(shù)量記錄的條件必須寫在WHERE子句的末尾.

6. SELECT子句中避免使用 ‘ * ‘

當你想在SELECT子句中列出所有的COLUMN時,使用動態(tài)SQL列引用 ‘*' 是一個方便的方法.不幸的是,這是一個非常低效的方法. 實際上,ORACLE在解析的過程中, 會將'*' 依次轉換成所有的列名, 這個工作是通過查詢數(shù)據(jù)字典完成的, 這意味著將耗費更多的時間.

7. 減少訪問數(shù)據(jù)庫的次數(shù)

當執(zhí)行每條SQL語句時, ORACLE在內(nèi)部執(zhí)行了許多工作: 解析SQL語句, 估算索引的利用率, 綁定變量 , 讀數(shù)據(jù)塊等等. 由此可見, 減少訪問數(shù)據(jù)庫的次數(shù) , 就能實際上減少ORACLE的工作量.

注意: 在SQL*Plus , SQL*Forms和Pro*C中重新設置ARRAYSIZE參數(shù), 可以增加每次數(shù)據(jù)庫訪問的檢索數(shù)據(jù)量 ,建議值為200.

8. 使用DECODE函數(shù)來減少處理時間

使用DECODE函數(shù)可以避免重復掃描相同記錄或重復連接相同的表.

9. 整合簡單,無關聯(lián)的數(shù)據(jù)庫訪問

如果你有幾個簡單的數(shù)據(jù)庫查詢語句,你可以把它們整合到一個查詢中(即使它們之間沒有關系)

10. 刪除重復記錄

最高效的刪除重復記錄方法 ( 因為使用了ROWID)

DELETE FROM EMP E

WHERE E.ROWID (SELECT MIN(X.ROWID)

FROM EMP X

WHERE X.EMP_NO = E.EMP_NO);

11. 用EXISTS替代IN

在許多基于基礎表的查詢中,為了滿足一個條件,往往需要對另一個表進行聯(lián)接.在這種情況下, 使用EXISTS(或NOT EXISTS)通常將提高查詢的效率.

12. 用NOT EXISTS替代NOT IN

在子查詢中,NOT IN子句將執(zhí)行一個內(nèi)部的排序和合并. 無論在哪種情況下,NOT IN都是最低效的 (因為它對子查詢中的表執(zhí)行了一個全表遍歷). 為了避免使用NOT IN ,我們可以把它改寫成外連接(Outer Joins)或NOT EXISTS

oracle數(shù)據(jù)庫存儲過程執(zhí)行慢時如何優(yōu)化

1 首先看看,先分析慢的原因,一部分是因為循環(huán)次數(shù)多,一部分是因為查詢數(shù)據(jù)量大慢。

2 可以從優(yōu)化查詢?nèi)胧郑热缒炒尾樵兊膕ql里面的數(shù)據(jù),條件字段沒有建索引,導致了全表掃描,

是不是 只需要幾個字段,但是你寫了 select * 等等,總之要優(yōu)化數(shù)據(jù)的速度。

2 可以從循環(huán)邏輯看起,有些循環(huán)可能是不必要的,能不能通過條件查詢來替代循環(huán),總之要從邏輯上優(yōu)化代碼

oracle速度變慢,怎樣解決

這個 速度慢 是指 使用數(shù)據(jù)庫過程中 查詢數(shù)據(jù)緩慢 還是 數(shù)據(jù)庫運行過程中各項功能緩慢? 如果是查詢數(shù)據(jù)緩慢的話,基本上是因為 與 查詢語句邏輯、表結構、執(zhí)行計劃相關,可以根據(jù)數(shù)據(jù)庫具體執(zhí)行計劃優(yōu)化數(shù)據(jù)庫查詢,比如 要查詢的表沒有對應的索引,可以添加索引提高查詢速度;或者 要查詢的表有過大量的刪除與更新,則需要更新表的統(tǒng)計信息以提高查詢速度。如果是數(shù)據(jù)庫本身各項功能運行緩慢,那大多是數(shù)據(jù)庫系統(tǒng)各項參數(shù)設置不合理,與服務器本身的系統(tǒng)的硬件和系統(tǒng)有關,可以更改數(shù)據(jù)庫相關的系統(tǒng)參數(shù),調(diào)整數(shù)據(jù)庫運行所需要的參數(shù)以提高數(shù)據(jù)庫運行質(zhì)量。

網(wǎng)站欄目:oracle很慢怎么優(yōu)化,oracle數(shù)據(jù)庫運行慢,優(yōu)化配置
當前路徑:http://chinadenli.net/article6/hshhig.html

成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供App開發(fā)網(wǎng)站策劃小程序開發(fā)用戶體驗網(wǎng)站制作域名注冊

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉載內(nèi)容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)

成都seo排名網(wǎng)站優(yōu)化