SQL優(yōu)化分析
- 期刊名字:消費(fèi)電子
- 文件大小:863kb
- 論文作者:劉明信
- 作者單位:煙臺(tái)南山學(xué)院
- 更新時(shí)間:2020-09-30
- 下載次數(shù):次
-中-一 軟件應(yīng)用與設(shè)計(jì)Software Aplication and DesignSQL優(yōu)化分析劉明信(煙臺(tái)南山學(xué)院,山東煙臺(tái)265713)摘要:在數(shù)據(jù)庫(kù)系統(tǒng)中,最重要的一個(gè)考核的指標(biāo)是運(yùn)行的速度,然而影響系統(tǒng)的運(yùn)行速度及其對(duì)系統(tǒng)資源占用最多的一個(gè)因素是SQL語(yǔ)句的執(zhí)行,效能欠佳的SQL語(yǔ)句在執(zhí)行時(shí)能夠消耗系統(tǒng)資源的70- 80% ,如何提高系統(tǒng)的運(yùn)行速度, SQL的性能優(yōu)化至關(guān)重要。本文首先從數(shù)據(jù)庫(kù)SQL著手,分析性能優(yōu)化的原理, 提出采用的性能優(yōu)化措施。關(guān)鍵詞: SQL優(yōu)化;優(yōu)化器中圖分類號(hào): TP311.138文獻(xiàn)標(biāo)識(shí)碼: A文章編號(hào): 1674- 7712 (2014) 08- 0181- 01一、數(shù)據(jù)庫(kù)中性能優(yōu)化的必要性3. CHOOSE優(yōu)化器。在缺省情況下,ORACLE采用CHOOSE關(guān)于性能優(yōu)化,最簡(jiǎn)單的理解就是為了保證系統(tǒng)準(zhǔn)確率優(yōu)化器。的情況下,用最快的速度及最短的時(shí)間來(lái)完成特定的任務(wù),(二)共享SQL語(yǔ)句。對(duì)SQL語(yǔ)句解析是比較費(fèi)系統(tǒng)資源而數(shù)據(jù)庫(kù)的性能優(yōu)化主要是通過對(duì)數(shù)據(jù)庫(kù)的索引程序、數(shù)據(jù)的,將會(huì)導(dǎo)致其性能下降,為了對(duì)SQL語(yǔ)句不重復(fù)的進(jìn)行解析,庫(kù)的語(yǔ)言、硬件等等進(jìn)行必要的調(diào)試,從而對(duì)數(shù)據(jù)庫(kù)的每個(gè)可以利用SGA(系統(tǒng)全局區(qū)域)將SQL語(yǔ)句進(jìn)行存儲(chǔ),實(shí)現(xiàn)用部分進(jìn)行必要的優(yōu)化處理,達(dá)到提高效率的目的。戶共享。比如一個(gè)SQL語(yǔ)句第一次被解析后,Oracle 將結(jié)果放在Oracle數(shù)據(jù)庫(kù)系統(tǒng)中,SQL 語(yǔ)句的優(yōu)化至關(guān)重要,性能在 SGA共享池中,如果第二次被執(zhí)行時(shí),就不用再對(duì)此語(yǔ)句進(jìn)不佳的語(yǔ)句是影響系統(tǒng)的運(yùn)行的關(guān)鍵因素之一。 據(jù)不完全統(tǒng)計(jì),行分析, 直接從共享池中獲取本語(yǔ)句的執(zhí)行路徑。這樣Oracle大約有90%的性能出現(xiàn)問題主要是出在運(yùn)用了不恰當(dāng)?shù)牟樵冋Z(yǔ)便在很大程度 上提高了SQL的執(zhí)行的性能,并且能夠大大的節(jié)句而造成的。SQL 語(yǔ)句易寫但不易寫好,程序設(shè)計(jì)人員有時(shí)只省內(nèi)存的使用。 要實(shí)現(xiàn)共享SQL語(yǔ)句,必須是當(dāng)前要執(zhí)行的語(yǔ)注重結(jié)果而對(duì)其性能確忽略了,往往會(huì)導(dǎo)致其系統(tǒng)的運(yùn)行效率句 與共享池中的語(yǔ)句要完全相同,如果參數(shù)不同、變量不同、不理想。隨著數(shù)據(jù)庫(kù)的相關(guān)對(duì)象以及數(shù)據(jù)量的改變,需要對(duì)空格 數(shù)不同、出現(xiàn)大小寫不-致都將不匹配,不能實(shí)現(xiàn)共享。SQL語(yǔ)句進(jìn)行不斷的效能調(diào)整。對(duì)海量的數(shù)據(jù)而言,優(yōu)質(zhì)SQL(三) 優(yōu)化SQL.化S9QL語(yǔ)句索引引。 提高數(shù)據(jù)庫(kù)運(yùn)行效運(yùn)最重要語(yǔ)句與劣質(zhì)語(yǔ)句間的速度差別能夠達(dá)到百倍以上,或者更多,的因素是利用好索引。索引能夠提供快速訪問rod_ id, 這樣特別對(duì)復(fù)雜的或大型的數(shù)據(jù)庫(kù)更明顯。如何優(yōu)化SQL語(yǔ)句,提能夠?qū)崿F(xiàn)提升效率, 特別是對(duì)大型表的索引效率會(huì)明顯提升。高系統(tǒng)的運(yùn)行速度,成為有關(guān)程序研究員較為關(guān)心的問題之-。但 如果索引使用的不當(dāng),會(huì)造成事倍功半的效果,因此優(yōu)化二、SQL 語(yǔ)句優(yōu)化的方法SQL語(yǔ)句索引特別重要,如何創(chuàng)建索引及使用索引,應(yīng)該注(一) Oracle優(yōu)化器。Oracle 優(yōu)化器是SQL處理的核心,意以下幾點(diǎn): (1) 在where中出現(xiàn)頻繁的列上建立索引: (2)目前支持兩種優(yōu)化器:基本規(guī)則的RBO、基于成本的CB0、頻繁操作的orderby或groupby操作的列上建立索引;(3).選擇性CHOOSE優(yōu)化器。為了避免進(jìn)行掃描全表,可以直接盡 量不在要重復(fù)率高的字段上建立索引; (4) 對(duì)于小于5M使用基于成本的優(yōu)化器及基本規(guī)則的優(yōu)化品,盡量不要使用的表, 就不要使用索引; (5) 多列進(jìn)行排序的,可建立復(fù)合CHOOSE優(yōu)化器。索引在列上,但盡量少用復(fù)合索引; (6) 不同值較少的列上1.基于規(guī)則的RBO優(yōu)化器?;谝?guī)則的RBO優(yōu)化器,主盡量 不要那間索引; (7) 對(duì)數(shù)據(jù)記錄進(jìn)行大批量的操作(如要是采用規(guī)則或者啟發(fā)的方法來(lái)生成執(zhí)行計(jì)劃。在RB0中,delete、insert) ,最好將索引先刪除,進(jìn)行數(shù)據(jù)操作后再如果有索引則將其與該優(yōu)化程序-起用。表1是RBO路徑等重新建立必要的索引:(8)數(shù)據(jù)類型要注意匹配;(9)對(duì)級(jí),等級(jí)高的效率低,耗費(fèi)時(shí)間多,等級(jí)低的效率高,耗費(fèi)于 操作符的使用,要避免使用!=或<>等,這樣會(huì)造成系統(tǒng)的時(shí)間也就少。一段SSQL的語(yǔ)句,按表1I1 15年級(jí)別進(jìn)行 無(wú)法用索引,而是直接從中搜索數(shù)索數(shù)據(jù)對(duì)每個(gè)句子打分,得分最少的其方案則最優(yōu)。(四)執(zhí)行計(jì)劃。在執(zhí)行程序時(shí),每執(zhí)行一個(gè)語(yǔ)句前,表1 RBO 路徑等級(jí)表Oracle都將會(huì)生成-一個(gè)查詢執(zhí)行計(jì)劃, 該計(jì)劃決定了SQL語(yǔ)句將如何執(zhí)行。在語(yǔ)句執(zhí)行之前,計(jì)劃在生成的過程當(dāng)中采用了不同信息,如對(duì)象的尺寸、優(yōu)化器模式、索引存在、儲(chǔ)存概要的存在、HINT的出現(xiàn)、生成的統(tǒng)計(jì)量等等三、結(jié)束語(yǔ)ORACLE數(shù)據(jù)庫(kù)是一個(gè)很復(fù)雜的軟件,它的可調(diào)性很強(qiáng)。SQL語(yǔ)句優(yōu)化是提高數(shù)據(jù)庫(kù)運(yùn)行速度的關(guān)鍵因素,隨著數(shù)據(jù)庫(kù)系統(tǒng)的應(yīng)用及數(shù)據(jù)量的不斷變化,所采用的優(yōu)化策略也應(yīng)隨著調(diào)整。對(duì)于SQL的優(yōu)化涉及到多個(gè)方方面面,在設(shè)計(jì)過程中要針對(duì)不同的場(chǎng)景采用不同的方法,開發(fā)人員、數(shù)據(jù)庫(kù)的管理人員及應(yīng)用程序設(shè)計(jì)人員應(yīng)該不斷的對(duì)SQL語(yǔ)句執(zhí)行的計(jì)劃進(jìn)行分析,對(duì)SQL語(yǔ)句的性能及結(jié)果進(jìn)行比較,找到性能較好的語(yǔ)句及執(zhí)行計(jì)劃,從而改善ORACLE數(shù)據(jù)庫(kù)的運(yùn)行的性能。參考文獻(xiàn):2.基于成本的CB0優(yōu)化器。基于成本的CB0優(yōu)化器主要[1]張桂燕.基于數(shù)據(jù)庫(kù)的語(yǔ)句優(yōu)化經(jīng)驗(yàn)之談U].電腦知是把一個(gè)引擎集成到數(shù)據(jù)庫(kù)的內(nèi)核中,對(duì)每一一個(gè)執(zhí)行計(jì)劃需識(shí)與技術(shù) ,2011(17.要的成本進(jìn)行估計(jì),對(duì)耗費(fèi)資源進(jìn)行量化,根據(jù)成本選出成本最少的作為最優(yōu)路徑。在耗費(fèi)資源中,一個(gè)查詢分成3部分[作者簡(jiǎn)介]劉明信(“ 中國(guó)煤化工學(xué)位,CPU成本、I/0成本及Network成本。研究方向:數(shù)據(jù)庫(kù)。YHCNMHG181消費(fèi)電子2014消費(fèi)電子1404- 4. indd 181一φ一2014-6-4 15:31:58
-
C4烯烴制丙烯催化劑 2020-09-30
-
煤基聚乙醇酸技術(shù)進(jìn)展 2020-09-30
-
生物質(zhì)能的應(yīng)用工程 2020-09-30
-
我國(guó)甲醇工業(yè)現(xiàn)狀 2020-09-30
-
石油化工設(shè)備腐蝕與防護(hù)參考書十本免費(fèi)下載,絕版珍藏 2020-09-30
-
四噴嘴水煤漿氣化爐工業(yè)應(yīng)用情況簡(jiǎn)介 2020-09-30
-
Lurgi和ICI低壓甲醇合成工藝比較 2020-09-30
-
甲醇制芳烴研究進(jìn)展 2020-09-30
-
精甲醇及MTO級(jí)甲醇精餾工藝技術(shù)進(jìn)展 2020-09-30

