>進入 神話這個詞指的是Oracle的那些從未是真的或者曾經(jīng)是真的,但是現(xiàn)在不是真的的行為的基本情況。大多數(shù)的Oracle神話的起源都是技更換術(shù)產(chǎn)生的結(jié)果。 大多數(shù)的人都認為今天的許多Oracle神話在" />
最新文章專題視頻專題問答1問答10問答100問答1000問答2000關(guān)鍵字專題1關(guān)鍵字專題50關(guān)鍵字專題500關(guān)鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關(guān)鍵字專題關(guān)鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
當前位置: 首頁 - 科技 - 知識百科 - 正文

打破oracle數(shù)據(jù)庫樹立的種種神話

來源:懂視網(wǎng) 責編:小采 時間:2020-11-09 08:07:24
文檔

打破oracle數(shù)據(jù)庫樹立的種種神話

打破oracle數(shù)據(jù)庫樹立的種種神話:歡迎進入Oracle社區(qū)論壇,與200萬技術(shù)人員互動交流 >>進入 神話這個詞指的是Oracle的那些從未是真的或者曾經(jīng)是真的,但是現(xiàn)在不是真的的行為的基本情況。大多數(shù)的Oracle神話的起源都是技更換術(shù)產(chǎn)生的結(jié)果。 大多數(shù)的人都認為今天的許多Oracle神話在
推薦度:
導(dǎo)讀打破oracle數(shù)據(jù)庫樹立的種種神話:歡迎進入Oracle社區(qū)論壇,與200萬技術(shù)人員互動交流 >>進入 神話這個詞指的是Oracle的那些從未是真的或者曾經(jīng)是真的,但是現(xiàn)在不是真的的行為的基本情況。大多數(shù)的Oracle神話的起源都是技更換術(shù)產(chǎn)生的結(jié)果。 大多數(shù)的人都認為今天的許多Oracle神話在

歡迎進入Oracle社區(qū)論壇,與200萬技術(shù)人員互動交流 >>進入 “神話”這個詞指的是Oracle的那些從未是真的或者曾經(jīng)是真的,但是現(xiàn)在不是真的的行為的基本情況。大多數(shù)的Oracle神話的起源都是技更換術(shù)產(chǎn)生的結(jié)果。 大多數(shù)的人都認為今天的許多Oracle神話在他們

歡迎進入Oracle社區(qū)論壇,與200萬技術(shù)人員互動交流 >>進入

  “神話”這個詞指的是Oracle的那些從未是真的或者曾經(jīng)是真的,但是現(xiàn)在不是真的的行為的基本情況。大多數(shù)的Oracle神話的起源都是技更換術(shù)產(chǎn)生的結(jié)果。

  大多數(shù)的人都認為今天的許多Oracle神話在他們那個年代都是真實的(例如,“磁盤負載平衡對于性能非常重要”),但是當硬件和Oracle軟件都改進了之后卻發(fā)現(xiàn)它們都變成了神話。

  我們不要忘記Oracle的技術(shù)已經(jīng)超過了15年了,1989年的技術(shù)也與今天的技術(shù)大相徑庭。幸運的是,大多數(shù)Oracle的專業(yè)人員都充分理解了Oracle神話的不斷改變,曾經(jīng)正確的建議今天是如何變得不再正確,并且成為了具有神話色彩的謊言。

  古老的Oracle神話

  有許多古老的Oracle技術(shù)在過去都是非常有用的,但是當技術(shù)改變的時候,成為了神話。問題的混亂是上千家運行在古老的硬件并且不支持發(fā)布的Oracle 軟件的Oracle店鋪帶來的。讓我們看一些比較古老的神話。

  神話:對象在單區(qū)域內(nèi)執(zhí)行得更好

  Oracle大學在20世紀90年代的早期教授了compress=y 輸出選項會到達改善結(jié)果表的性能。今天,本地管理的表空間(LMT)讓這個建議不再有效。

  神話:數(shù)據(jù)緩沖命中率應(yīng)該保持在超過90%的概率

  這個神話也是Oracle在90年代早期宣傳的,當時幾乎全部的Oracle數(shù)據(jù)庫的I/O成為了瓶頸,并且SGA的尺寸也被32位的服務(wù)器技術(shù)所限制了。基于Oracle的產(chǎn)品,例如SAP,也都在他們的手冊中指出了數(shù)據(jù)緩沖命中率應(yīng)該超過90%.Oracle的作者Robert Freeman 提示到:

  很多的情況都證明了要證明任何事情都是很簡單的。假設(shè)有一個基本的證據(jù),我可以證明緩沖區(qū)命中率毫無意義,或者我可以證明它是世界上最重要的事情了。

  我知道有一些腳本可以運行在你的數(shù)據(jù)庫上,從而產(chǎn)生任何你想要的數(shù)據(jù)緩沖命中率。這看上去是不是像一個神話?Oracle看起來并不這么認為,基于比率的建議形成了Oracle 10g自動內(nèi)存管理工具的基礎(chǔ),還有v$db_cache_advice 的建議。

  現(xiàn)在也還是存在一些Oracle神話――讓我們看一下。

  現(xiàn)在的Oracle神話

  現(xiàn)代的Oracle神話在很大程度上都是由于Oracle技術(shù)的更換,還有一些Oracle專業(yè)人員無法調(diào)整以適應(yīng)改變導(dǎo)致的。

  神話:索引和表不需要分開

  這個神話的產(chǎn)生根據(jù)Oracle在90年代早期提出的建議,當時有關(guān)磁盤的爭論是一個主要的話題。直到不久之前,數(shù)據(jù)庫中索引和表的分離才被認為是好的辦法,并且作為改善性能的方法被接受。

  當然,還有一部分原因是因為他們在同一個磁盤上,如果他們不分離的話,會互相沖突。將索引移動到一塊獨立磁盤上的表空間上,與表相分離,而不僅僅是分隔到獨立的表空間上,這通常都會帶來性能上的提高。

  主要的論據(jù),由對單用戶系統(tǒng)的10046個追蹤所支持,就是在一個查詢中訪問表和索引的操作在本質(zhì)上不是異步的,而是線性的過程。然而,然而,即使是在單用戶的系統(tǒng)中,也沒有考慮到被請求的頭移動和與讀取索引以及表有關(guān)的磁盤延遲。在多用戶的環(huán)境中,也沒有考慮到以上所有的因素,以及多用戶訪問協(xié)同定位的表和索引產(chǎn)生的影響。

  現(xiàn)在,當合理地放置了RAID之后,許多有關(guān)協(xié)同定位的問題的爭論都沒有了或者轉(zhuǎn)移了。然而,將表和索引分割到幾個表空間中仍然使得維護更加簡單了。分隔到離散的表空間中使得追蹤I/O速率和特定對象或者對象類型成為可能,并且允許用戶使用多塊尺寸。

  神話:頻繁更新的表和索引幾乎不需要重新組織

  這個神話是由于Oracle的專家發(fā)表的聲明引起的,他宣稱Oracle的索引總是保持平衡的,重新構(gòu)建并不會給索引帶來多大的好處。下面我們看一下這個聲明,在某種程度上可以幫助我們理解碎片是如何生成的:

  除非你想陷入無休止的組織、再組織、組織、再組織……的循環(huán)中去,你最好找一下原因。

  在完美的世界中,你只要使用絕對正確的參數(shù)構(gòu)建一次即可,永遠都不用再重新構(gòu)建,我恐怕這種情況永遠都不會在現(xiàn)實世界中出現(xiàn)。就像期望只清掃你的房間一次,而這個房間里面裝滿了吵吵鬧鬧的10幾歲的孩子――這是毫無意義的。

  今天,能夠理解表和索引具有很高頻率的并發(fā)插入、更新和刪除動作是一件好事情,它可以很快地獲得次佳的結(jié)構(gòu)并需要重新組織以便位多塊掃描操作減少I/O操作(使用Oracle的dbms_redefinition包,更改索引移動/重新構(gòu)建,更改索引接合,或者甚至是根據(jù)可用性需求更改表移動)。索引平衡的概念是分兩個叉的,B樹總是高度平衡的,它也可以變得稀疏或者向右旋轉(zhuǎn)的,所以就變得更寬或者負載不平衡。

  神話:多個塊尺寸不會改善性能

  這個神話是不朽的,因為多個塊尺寸最初是為了支持可傳輸?shù)谋砜臻g而設(shè)計的,同時一些人還不能看到多個塊尺寸帶來的另一方面很重要的好處。不同的塊尺寸帶來的最大的好處就是更加有效地利用了受到限制的內(nèi)存區(qū)域(db_cache_size, db_32k_cache_size等)以及能夠減少多塊掃描讀取的邏輯I/O次數(shù)的對象智能隔離。

  今天,Metalink 提示說多個塊尺寸參數(shù)是Oracle性能調(diào)整中最重要的部分了,并且還說Robin Schumacher 等專家們都證明了Oracle的索引可以在較大的塊尺寸中構(gòu)建更加優(yōu)化的B樹結(jié)構(gòu)。還有,重新組織高DML 索引,或者對隨機單行讀取(唯一索引訪問)小行數(shù)據(jù)的時候使用小的塊尺寸,可以減少db_cache_size 的尺寸,并且會因為更多的塊適合了緩沖區(qū)的大小而減少PIO.

  例如,一些實驗試圖用小的、人造的單用戶實驗來證明這個斷言,并且提出多個塊尺寸并不能給現(xiàn)實世界的數(shù)據(jù)庫帶來任何好處。然而,現(xiàn)實生活中的店鋪卻報告了一個有關(guān)多個塊尺寸和索引用的32k塊尺寸的截然不同的結(jié)果:

  “我最近比較喜歡關(guān)注的問題就是有關(guān)32KB索引的問題:我們的客戶端(200GB+)從這個簡單的變化中看到I/O縮減了20%……”,EMEA的技術(shù)服務(wù)經(jīng)理Steve Taylor 說。

  所以,在這里我們看到了技術(shù)的改變是如何將一項15年前本來有效的方式轉(zhuǎn)換為一個“神話”的,并最終得到了一個有關(guān)單用戶測試腳本的錯誤結(jié)論,同樣,由于技術(shù)的改變它們還會繼續(xù)創(chuàng)建新的現(xiàn)代神話。

  Oracle神話正在形成

  當Oracle的專業(yè)人員觀察了不同的數(shù)據(jù)庫行為之后得到了不一致的結(jié)論之后,神話還在繼續(xù)。

  我們還可以看到Oracle公司大力推薦了一些提出觀點的先進人物,但是他們卻針對Oracle的性能公開了誤導(dǎo)他人的言論,從而制造了新的神話:

  “一致是不可能的,也不會被任何的優(yōu)化人員的設(shè)置所影響?!彼麄冇绊懥藘?yōu)化人員處理事物的方式;但是他們卻沒有影響事物真正進行的方式。

  當然,改變optimizer_mode, optimizer_index_cost_adj和 optimizer_index_caching 的值可以改變優(yōu)化人員對于是否應(yīng)該做一個完全的掃描或者索引訪問執(zhí)行計劃的判斷,這也會對所有查詢的一致性數(shù)量產(chǎn)生直接的影響。

  目前Oracle的專業(yè)人員分成兩個截然不同的群體,每個群體都會Oracle的性能調(diào)整有著完全不同的看法,每個群體都認為對方是造成持續(xù)不斷的Oracle神話的罪魁禍首。

  “經(jīng)驗法則”神話――許多Oracle專業(yè)人員都相信“經(jīng)驗法則”(ROT)是非常危險的,并且都了解如果經(jīng)驗法則可以被證明是錯誤的,即使是在單個的人為的測試中,經(jīng)驗法則在科學上來說都不再是正確的,因此也就是毫無用處了。

  “腳本小子”神話――這個神話說的是運行單用戶的SQL*Plus 腳本來“證明”的Oracle的運行方式,在多用戶的數(shù)據(jù)庫中幾乎總是錯誤的。

聲明:本網(wǎng)頁內(nèi)容旨在傳播知識,若有侵權(quán)等問題請及時與本網(wǎng)聯(lián)系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

文檔

打破oracle數(shù)據(jù)庫樹立的種種神話

打破oracle數(shù)據(jù)庫樹立的種種神話:歡迎進入Oracle社區(qū)論壇,與200萬技術(shù)人員互動交流 >>進入 神話這個詞指的是Oracle的那些從未是真的或者曾經(jīng)是真的,但是現(xiàn)在不是真的的行為的基本情況。大多數(shù)的Oracle神話的起源都是技更換術(shù)產(chǎn)生的結(jié)果。 大多數(shù)的人都認為今天的許多Oracle神話在
推薦度:
  • 熱門焦點

最新推薦

猜你喜歡

熱門推薦

專題
Top