最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Oracle SQL性能優(yōu)化系列學(xué)習(xí)一

 更新時(shí)間:2007年03月07日 00:00:00   作者:  
正在看的ORACLE教程是:Oracle SQL性能優(yōu)化系列學(xué)習(xí)一。

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

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

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

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

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

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

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

2. 訪問Table的方式 

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

a. 全表掃描 

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

b. 通過(guò)ROWID訪問表 

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

3. 共享SQL語(yǔ)句 

為了不重復(fù)解析相同的SQL語(yǔ)句,在第一次解析之后, ORACLE將SQL語(yǔ)句存放在內(nèi)存中.這塊位于系統(tǒng)全局區(qū)域SGA(system global area)的共享池(shared buffer pool)中的內(nèi)存可以被所有的數(shù)據(jù)庫(kù)用戶共享. 因此,當(dāng)你執(zhí)行一個(gè)SQL語(yǔ)句(有時(shí)被稱為一個(gè)游標(biāo))時(shí),如果它 和之前的執(zhí)行過(guò)的語(yǔ)句完全相同, ORACLE就能很快獲得已經(jīng)被解析的語(yǔ)句以及最好的執(zhí)行路徑. ORACLE的這個(gè)功能大大地提高了SQL的執(zhí)行性能并節(jié)省了內(nèi)存的使用. 

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

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

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

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

共享的語(yǔ)句必須滿足三個(gè)條件: 

A. 字符級(jí)的比較: 

當(dāng)前被執(zhí)行的語(yǔ)句和共享池中的語(yǔ)句必須完全相同. 

例如: 

SELECT * FROM EMP; 

和下列每一個(gè)都不同 

SELECT * from EMP; 

Select * From Emp; 

SELECT * FROM EMP; 

B. 兩個(gè)語(yǔ)句所指的對(duì)象必須完全相同: 

例如: 

用戶 對(duì)象名 如何訪問 

Jack sal_limit private synonym 

Work_city public synonym 

Plant_detail public synonym 

Jill sal_limit private synonym 

Work_city public synonym 

Plant_detail table owner 

考慮一下下列SQL語(yǔ)句能否在這兩個(gè)用戶之間共享. 

SQL能否共享,原因 

select max(sal_cap) from sal_limit; 

不能。每個(gè)用戶都有一個(gè)private synonym - sal_limit , 它們是不同的對(duì)象 

select count(*0 from work_city where sdesc like 'NEW%'; 

能。兩個(gè)用戶訪問相同的對(duì)象public synonym - work_city 

select a.sdesc,b.location from work_city a , plant_detail b where a.city_id = b.city_id 

不能。用戶jack 通過(guò)private synonym訪問plant_detail 而jill 是表的所有者,對(duì)象不同. 

C. 兩個(gè)SQL語(yǔ)句中必須使用相同的名字的綁定變量(bind variables) 

例如: 

第一組的兩個(gè)SQL語(yǔ)句是相同的(可以共享),而第二組中的兩個(gè)語(yǔ)句是不同的(即使在運(yùn)行時(shí),賦于不同的綁定變量相同的值)

[NextPage]

 

a. 

select pin , name from people where pin = :blk1.pin; 
select pin , name from people where pin = :blk1.pin; 

b. 

select pin , name from people where pin = :blk1.ot_ind; 
select pin , name from people where pin = :blk1.ov_ind;  



 

上一頁(yè)    

相關(guān)文章

  • Oracle 表空間查詢與操作方法

    Oracle 表空間查詢與操作方法

    本文將介紹Oracle 表空間查詢與操作方法,需要了解跟多的朋友可以參考下
    2012-11-11
  • Oracle實(shí)例啟動(dòng)時(shí)報(bào)錯(cuò):ORA-32004的解決方法

    Oracle實(shí)例啟動(dòng)時(shí)報(bào)錯(cuò):ORA-32004的解決方法

    最近在啟動(dòng)實(shí)例時(shí)遇到了一些錯(cuò)誤,通過(guò)查找的相關(guān)的資料終于解決,決定分享出來(lái)給有需要的朋友們,所以下面這篇文章主要給大家介紹了在Oracle實(shí)例啟動(dòng)時(shí)報(bào)錯(cuò):ORA-32004的解決方法,需要的朋友可以參考借鑒,下面來(lái)一起看看吧。
    2017-10-10
  • oracle 常見等待事件及處理方法

    oracle 常見等待事件及處理方法

    我們可以通過(guò)視圖v$session_wait來(lái)查看系統(tǒng)當(dāng)前的等待事件,以及與等待事件相對(duì)應(yīng)的資源的相關(guān)信息
    2009-03-03
  • 詳解oracle的分表之表分區(qū)的具體使用和示例

    詳解oracle的分表之表分區(qū)的具體使用和示例

    這篇文章主要介紹了詳解oracle的分表之表分區(qū)的具體使用和示例,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2018-03-03
  • Oracle數(shù)據(jù)庫(kù)閃回功能詳解和相關(guān)命令總結(jié)

    Oracle數(shù)據(jù)庫(kù)閃回功能詳解和相關(guān)命令總結(jié)

    這篇文章主要給大家介紹了關(guān)于Oracle數(shù)據(jù)庫(kù)閃回功能詳解和相關(guān)命令總結(jié)的相關(guān)資料,閃回技術(shù)(Flashback),是Oracle提供的能使數(shù)據(jù)庫(kù)整體或局部回到"過(guò)去"的閃回功能的總稱,主要用于對(duì)抗人為錯(cuò)誤,需要的朋友可以參考下
    2023-07-07
  • windows系統(tǒng)下進(jìn)入oracle數(shù)據(jù)庫(kù)兩種方法

    windows系統(tǒng)下進(jìn)入oracle數(shù)據(jù)庫(kù)兩種方法

    這篇文章主要給大家介紹了關(guān)于windows系統(tǒng)下進(jìn)入oracle數(shù)據(jù)庫(kù)兩種方法的相關(guān)資料,Oracle數(shù)據(jù)庫(kù)是一款非常流行的關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng),它被廣泛用于企業(yè)級(jí)應(yīng)用中,為了使用Oracle數(shù)據(jù)庫(kù),我們需要先進(jìn)入數(shù)據(jù)庫(kù)系統(tǒng)中,需要的朋友可以參考下
    2023-09-09
  • Oracle中使用觸發(fā)器(trigger)和序列(sequence)模擬實(shí)現(xiàn)自增列實(shí)例

    Oracle中使用觸發(fā)器(trigger)和序列(sequence)模擬實(shí)現(xiàn)自增列實(shí)例

    這篇文章主要介紹了Oracle中使用觸發(fā)器(trigger)和序列(sequence)模擬實(shí)現(xiàn)自增列實(shí)例,包含代碼實(shí)例,而且小編已經(jīng)測(cè)試過(guò)了哦,需要的朋友可以參考下
    2014-07-07
  • Oracle表空間大小如何查看及擴(kuò)增

    Oracle表空間大小如何查看及擴(kuò)增

    Oracle數(shù)據(jù)庫(kù)中,表空間是存儲(chǔ)數(shù)據(jù)對(duì)象的關(guān)鍵結(jié)構(gòu),管理表空間包括監(jiān)控其大小并根據(jù)需要進(jìn)行擴(kuò)展,以確保數(shù)據(jù)庫(kù)運(yùn)行高效,查看表空間大小,可以通過(guò)SQL查詢或使用Oracle Enterprise Manager,擴(kuò)展表空間的方法有手動(dòng)增加數(shù)據(jù)文件
    2024-10-10
  • Oracle使用MyBatis中RowBounds實(shí)現(xiàn)分頁(yè)查詢功能

    Oracle使用MyBatis中RowBounds實(shí)現(xiàn)分頁(yè)查詢功能

    這篇文章主要介紹了Oracle使用MyBatis中RowBounds實(shí)現(xiàn)分頁(yè)查詢 ,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2019-07-07
  • Oracle 啟動(dòng)例程 STARTUP參數(shù)說(shuō)明

    Oracle 啟動(dòng)例程 STARTUP參數(shù)說(shuō)明

    Oracle啟動(dòng)例程:STARTUP參數(shù)說(shuō)明(2008-07-28 20:51:20)標(biāo)簽:startup shutdown 事例 it 分類:Oracle數(shù)據(jù)管理
    2009-07-07

最新評(píng)論

嘉善县| 孝感市| 南安市| 皮山县| 合川市| 宣化县| 瓦房店市| 贵州省| 娱乐| 若羌县| 龙川县| 得荣县| 阿图什市| 斗六市| 乌拉特后旗| 惠东县| 南阳市| 绍兴县| 福泉市| 油尖旺区| 金平| 临邑县| 隆德县| 齐齐哈尔市| 三河市| 庆元县| 邻水| 富顺县| 廊坊市| 鄂尔多斯市| 白城市| 新昌县| 灵璧县| 广德县| 新乐市| 安新县| 银川市| 赤水市| 通州市| 福建省| 盘锦市|