亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 數據庫 > Oracle > 正文

整理Oracle數據庫中數據查詢優化的一些關鍵點

2024-08-29 13:58:48
字體:
來源:轉載
供稿:網友
這篇文章主要介紹了Oracle數據庫中數據查詢優化的一些關鍵點的整理,包括多表和大表查詢等情況的四個方面的講解,需要的朋友可以參考下
 

數據庫最基本的任務是存儲、管理數據,而終端用戶唯一能看到的數據庫特性就是其性能:數據庫以何速度處理某一指定查詢的結果,并且將結果返回到用戶所用的工具和應用程序。從大多數系統的應用實例來看,查詢操作在各種數據庫操作中所占據的比重最大、查閱新聞、 查看文件、 查詢統計信息等。因此,數據庫查詢操作的效率是影響一個應用系統響應時間的關鍵因素。隨著一個應用系統中數據的動態增長,數據量變大,數據庫查詢效率就會有所降低,應用系統的響應速度也隨之減慢,尤其對于海量數據的管理和查詢問題就更加突出,Oracle查詢優化就顯得尤為重要。

目前通用的數據庫產品有很多種,其中Oracle數據庫以其支持大數據庫、多用戶的高性能事務處理, 對業界各項工業標準的支持,完整的安全和完整性控制,支持分布式數據庫利分布處理 具有可移植性、可兼容性和可連接性等突出優點倍受用戶喜愛,應用較為廣泛,在互聯網數據庫平臺上處于領先地位、其Spatial技術能更加有效地管理地理信息,實現海量空間信息的存儲和管理。本文結合Oracle數據庫應用經驗,從命中率提高、多表查詢優化、大表查詢優化和SQL優化等四個方面闡述Oracle查詢優化的經驗和方法。

Oracle查詢優化第一方面:Oracle數據查詢命中率的提高

“命中率(HITRATIO) 是指直接從內存中取得數據而不從磁盤中取得數據的比率,也就是查詢請求的數據塊已經在內存中次數的百分比”。影響命中率的因素有四種:字典表活動、臨時段活動、回滾段活動、表掃描, 應用DBA可以對這四種因素進行分析,找出數據庫命中率低的癥結所在。

1)字典表活動

當一個SQL語句第一次到達Oracle內核時數據庫對SQL語句進行分析,包含在查詢中的數據字典對象被分解,產生SQL執行路徑。如果SQL語句指向一個不在SGA中的對象??表或視圖,Oracle執行SQL語句到數據典中查詢有關對象的信息。數據塊從數據字典表被讀取到SGA的數據緩存中。由于每個數據字典都很小,因此,我們可緩存這些表以提高對這些表的命中率。但是由于數據字典表的數據塊在SGA中占據空間,當增加全部的命中率時,它們會降低表數據塊的可用空間, 所以若查詢所需的時間字典信息已經在SGA緩存中,那么就沒有必要遞歸調用。

2)臨時段的活動

當用戶執行一個需要排序的查詢時,Oracle設法對內存中排序區內的所有行進行排序,排序區的大小由數據庫的init.ora文件的數確定。如果排序區域不夠大,數據庫就會在排序操作期間開辟臨時段。臨時段會人為地降低OLTP(online transaction processing)應用命中率,也會降低查詢進行排序的性能。如果能在內存中完成全部排序操作,就可以消除向臨時段寫數據的開銷。所以應將SORT_AREA_SIZE設置得足夠大,以避免對臨時段的需要。這個參數的具體調整方法是:查詢相關數據,以確定這個參數的調整。

select * from v$sysstat where name=‘sorts(disk)'or name=‘sorts(memory);

大部分排序是在內存中進行的,但還有小部分發生在臨時段, 需要調整 值,查看init.ora文件的 SORT_AREA_SIZE值,參數為:SORT_AREA_SIZE=65536;將其調整到SORT_AREA_SIZE=131072、這個值調整后,重啟ORACLE數據庫即可生效。

3)回滾段的活動

回滾段活動分為回滾活動和回滾段頭活動。對回滾段頭塊的訪問會降低應用的命中率, 對OLTP系統命中率的影響最大。為確認是否因為回滾段影響了命中率,可以查看監控輸出報表中的“數據塊相容性讀一重寫記錄應用” 的統計值,這些統計值是用來確定用戶從回滾段中訪問數據的發生次數。

4)表掃描

通過大掃描讀得的塊在數據塊緩存中不會保持很長時間, 因此表掃描會降低命中率。為了避免不必要的全表掃描,首先是根據需要建立索引,合理的索引設計要建立人對各種查詢的分析和預測上,筆者會在SQL優化中詳細談及;其次是將經常用到的表放在內存中,以降低磁盤讀寫次數。例如 Alter table your_table_name cathe。

Oracle查詢優化第二方面:多表查詢的優化

在進行多表聯合查詢時,數據庫可能會采取MERGEJOINS、NESTED LOOP、HASH JOIN。其中,不論什么時候哈希聯結要比另兩種聯結開銷要小。

我們可以使用哈希聯結代替MERGEJOINS、NESTED LOOP聯結、因此,在應用中,可添加一些設置使得數據庫在有多大聯合查詢發生時使用哈希聯結。其方法是:以 oracle用戶身份登錄數據庫服務器,在initosid.ora文件中添加:

HASH_JOIN_ENABLED=TRUEHASJ_AREA_SIZE=26000

修改完后,重新啟動數據庫,使這些參數值生效。

Oracle查詢優化第三方面:大表查詢優化

數據庫中有些表是增長非??斓模涗浟亢艽?,對這種表進行訪問時,索引的好處就微乎其微了,通常采用兩種辦法來進行大表訪問的優化。

1)大表建立在哈希簇中

create cluster TRADE_CLUSTER(vuserid integer)storage(initial 50M next 50M)hash is vuseridsize 60 hashkeys 10000000;/*hashkeys指定了在哈希表里的所期望的行數。*/ create tabletrade_detail_new as select * from trade_detail clusterTRADE_CLUSTER(userid);drop table trade_detail;rename trade_detail_new to trade_detail;

2)建分區表

將一個大表分開放置在幾個邏輯分區中或者是將一個大表分成了幾張小表 ,即可以單獨對這些小表進行查詢,也可以union all一起查詢。

例如:將 一個記錄交易詳情的表拆分:

create trade_detail_1 as select * from trade_detailwhere trade_time between to_date('mm-dd‘,'01-01‘)and to_date('mm-dd‘,'03-31‘);alter table trade_detail_1 add constraint check_trade_detail_1check (trade_time between to_date('mm-dd‘,'01-01‘)and to_date('mm-dd‘,'03-31‘));

同樣,建立起另幾張按交易發生的季度而劃分的表。然后創建執行四個表聯合的視圖;

create view trade_detail as select * from trade_detail_1union all select * from trade_detail_2union all select * from trade_detail_3union all select * from trade_detail_4;

這樣在查詢某段時間內的數據時只訪問小表就可以了,需要時也可進行聯合查詢。

Oracle查詢優化第四方面:SQL優化

應用程序的執行最終將歸結為數據庫中的SQL語句執行,SQL語句消耗了70%到90%的數據庫資源。因此SQL語句的執行效率最終決定了ORACLE數據庫的性能。許多程序員認為查詢優化是DBMS(數據庫管理系統)的任務,與程序員所編寫的SQL語句關系不大,這是錯誤的。一個好的查詢計劃往往可以使程序性能提高數十倍。另外,SQL語句獨立于程序設計邏輯,相對于對程序源代碼的優化,對SQL語句的優化在時間成本和風險上的代價都很低。

SQL優化的主要途徑是:

a.有效索引的建立。在經常進行連接,但是沒有指定為外鍵的列上建立索引;在頻繁進行排序或分組(即進行group by 或 order by 操作)的列上建立索引;在條件表達式中經常用到的不同值較多的列上建立檢索,在不同值少的列上不要建立索引;如果待排序的列有多個,可以在這些列上建立復合索引(compound index)。

為了降低I/O竟爭, 索引要建在與用戶表空間不在同一磁盤上的索引空間里。索引分為:分區索引、完全索引、唯一索引、位圖索引等幾種類型,在建立索引前,應該測量這個索引的選擇性,索引的選擇性是指索引列里不同值的數目與表中記錄數的比。

b.在有大量重復值并且經常有范圍查詢(例如 between,》,《》=,《=)的列,或是用到order by、group by的列,可考慮建立群集索引 ;

c.要經常同時存取多列,目每列都含有重復值可考慮建立組合索引

d.優化表達式,在能使用范圍查詢時盡可能使用范圍索引, 而少用“like”,因為“LIKE”關鍵字支持的通配符匹配特別耗費時間。

f.使用Oracle語句優化器(oracle optimizer)和行鎖管理器(row-level manager)來調整優化SQL語句。



注:相關教程知識閱讀請移步到oracle教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产色婷婷国产综合在线理论片a| 久久琪琪电影院| 日韩av片电影专区| 欧美高清理论片| 国产精品女人久久久久久| 国产精品自在线| 欧美野外wwwxxx| 欧美成人精品在线观看| 亚洲第一二三四五区| 久久久久国产一区二区三区| 91牛牛免费视频| 欧美日本在线视频中文字字幕| 日本精品久久久| 欧美一级大片在线免费观看| 日韩精品在线播放| 欧美黑人又粗大| 国模精品一区二区三区色天香| 亚洲小视频在线观看| 性色av香蕉一区二区| 亚洲国语精品自产拍在线观看| 国产日本欧美在线观看| 亚洲人成在线一二| 国内精久久久久久久久久人| 91av视频在线观看| 亚洲成人久久电影| 91夜夜未满十八勿入爽爽影院| 亚洲人成在线免费观看| 国产欧美精品va在线观看| 国产精品美女午夜av| 国产成人精品综合| 激情久久av一区av二区av三区| 午夜精品福利电影| 成人激情春色网| 国产一区二区三区18| 91av视频在线播放| 日韩欧美亚洲成人| 日韩欧美亚洲范冰冰与中字| 久久久久久久久久久国产| 亚洲国产成人精品久久| 亚洲免费视频网站| 国产成人在线亚洲欧美| 久久久久成人网| 欧美福利视频在线观看| 欧美在线观看网址综合| 136fldh精品导航福利| 亚洲成人精品久久| 欧美xxxx综合视频| 一区二区三区动漫| 国产精品日韩在线| 国产精品一区二区三区成人| 亚洲综合国产精品| 国产在线精品一区免费香蕉| 福利精品视频在线| 国产精品美女午夜av| 亚洲精品视频中文字幕| 亚洲三级黄色在线观看| 国产精品www色诱视频| 久久久精品欧美| 日韩av影视综合网| 亚洲人午夜精品免费| 日韩av综合网站| 国产mv久久久| 欧美性猛交xxxx富婆弯腰| 欧美视频在线观看免费网址| 久久视频免费在线播放| 欧美午夜激情小视频| 国产69精品久久久久9| 国产这里只有精品| 亚洲国产精品系列| 超碰精品一区二区三区乱码| 91影院在线免费观看视频| 亚洲精品丝袜日韩| 日韩电影大全免费观看2023年上| 奇门遁甲1982国语版免费观看高清| 福利一区福利二区微拍刺激| 性色av一区二区三区在线观看| 欧美亚洲国产视频小说| 国产成人在线精品| 亚洲人成在线观| 国外成人免费在线播放| 精品久久香蕉国产线看观看gif| 欧美日韩精品中文字幕| 国产91色在线|免| 激情成人中文字幕| 中文字幕亚洲综合久久| 日韩中文字幕在线免费观看| 黄色成人av网| 国产成人免费av| 亚洲欧美国产va在线影院| 最新69国产成人精品视频免费| 亚洲美女性视频| 奇米四色中文综合久久| 欧美黑人xxxⅹ高潮交| 欧美性在线观看| 91性高湖久久久久久久久_久久99| 日本久久久久久久久| 欧美一区二区影院| 久久99精品国产99久久6尤物| 日韩精品久久久久| 亚洲欧美国产精品va在线观看| 亚洲欧美日韩爽爽影院| 国产精品视频导航| 国产91在线播放九色快色| 亚洲片在线观看| 成人性生交大片免费观看嘿嘿视频| 欧美一区二区三区图| 中文字幕在线精品| 久久精品电影网| 97在线视频精品| 久久天天躁狠狠躁老女人| 亚洲精品视频久久| 国产精品扒开腿做爽爽爽视频| 久久久精品美女| 色综合天天狠天天透天天伊人| 78色国产精品| 亚洲色图18p| 91久久国产婷婷一区二区| 欧美国产精品日韩| 中文字幕欧美日韩在线| 欧美激情综合色综合啪啪五月| 欧美激情视频一区二区三区不卡| 亚洲第一中文字幕在线观看| 亚洲精品456在线播放狼人| 国产精品福利久久久| 日韩国产精品一区| 欧美日韩国产黄| 日韩在线观看视频免费| 97久久伊人激情网| 亚洲精品中文字幕av| 97精品一区二区视频在线观看| 国产最新精品视频| 亚洲成人精品久久久| 欧美高清一级大片| 成人久久18免费网站图片| 成人乱人伦精品视频在线观看| 另类图片亚洲另类| 久久久91精品国产一区不卡| 亚洲人精选亚洲人成在线| 日韩美女免费观看| 日韩视频免费在线观看| 福利视频第一区| 亚洲综合自拍一区| 国产精品久久久久久av福利| 日韩中文字幕国产精品| 2023亚洲男人天堂| 欧美视频在线观看免费| 成人久久久久爱| 中文字幕欧美在线| 亚洲va电影大全| 国产在线一区二区三区| 国产suv精品一区二区| 亚洲毛茸茸少妇高潮呻吟| 国产精品69久久| 亚洲精品电影网在线观看| 欧美大片免费观看| 亚洲精品www| 亚洲美女又黄又爽在线观看| 欧美日韩爱爱视频| 久久视频中文字幕| 国产97在线|亚洲| 亚洲美女久久久| 亚洲成年网站在线观看| 国产不卡一区二区在线播放| 蜜臀久久99精品久久久久久宅男|