久久机这里只有精品,国产69精品一区二区亚洲孕妇,91精品国产综合久久婷婷香蕉,午夜久久久久久电影

最新活動:電腦PC端+手機(jī)端+微網(wǎng)站+自適應(yīng)網(wǎng)頁多模板選擇-建站388元起價!!!
當(dāng)前位置:主頁 > 網(wǎng)站建設(shè) > 解析Oracle 8i/9i的計(jì)劃穩(wěn)定性建站知識

解析Oracle 8i/9i的計(jì)劃穩(wěn)定性建站知識

時間:2023-05-22 19:05:22 閱讀: 文章分類: 網(wǎng)站建設(shè) 作者: 網(wǎng)站技術(shù)員

導(dǎo)讀:1建站知識解析Oracle 8i/9i的計(jì)劃穩(wěn)定性seo網(wǎng)站關(guān)鍵詞優(yōu)化網(wǎng)站建設(shè)多少錢。

seo網(wǎng)站關(guān)鍵詞優(yōu)化網(wǎng)站建設(shè)多少錢正在看的ORACLE教程是:解析Oracle 8i/9i的計(jì)劃穩(wěn)定性。

由Oralce8.1開始,Oracle增加了一個新的特性就是Stored Outlines,或者稱為Plan Stability(計(jì)劃穩(wěn)定性)。這個特性帶來三個好處。首先,你可以優(yōu)化開銷很大的語句的處理。第二,如果有一些語句Oracle需要花費(fèi)長時間來優(yōu)化(而不是執(zhí)行),你可以節(jié)省時間并且減少優(yōu)化階段的競爭。最后,它可以讓你選擇使用新的c營銷型網(wǎng)站建設(shè)ursor_sharing參數(shù)而無需要擔(dān)心因此而不采用優(yōu)化的執(zhí)行路徑。   要知道如何使用存儲概要才是最優(yōu)的,我們首先運(yùn)行一些極度沒有效率的SQL的存儲過程開始,要注意的是,我們不能修改源代碼(理論上)。     我們將看一下如何跟蹤SQL語句,并且查看它當(dāng)前在數(shù)據(jù)庫中的執(zhí)行計(jì)劃,找出一些提示來改進(jìn)SQL語句的性能,然后再重新執(zhí)行該SQL語句時,讓Oracle使用我們的提示。   在這個示例中,我們將創(chuàng)建一個用戶,在該用戶的模式中建一個表格,并且創(chuàng)建一個存儲過程訪問該表格,我們將在這個存儲過程上使用wrap工具,這樣我們就不能通過反向方式得到源代碼。然后我們將通過該存儲過程來調(diào)試SQL的執(zhí)行。   例子中我們將假定存儲慨要已經(jīng)在數(shù)據(jù)庫創(chuàng)建的時候被自動安裝。   準(zhǔn)備工作   創(chuàng)建一個用戶,他的權(quán)限有:create session, create table, create procedure, create any outline, and alter session。以該用戶連接并且運(yùn)行以下的腳本來創(chuàng)建一個表格:   接著需要編碼來創(chuàng)建一個存儲過程訪問該表格。創(chuàng)建一個稱為c_proc.sql的腳本,如下:   當(dāng)然,也可以直接執(zhí)行這個腳本來建立該過程--不過,為了更有效果,轉(zhuǎn)到操作系統(tǒng)的命令行并且執(zhí)行以下命令:   wrap iname=c_proc.sql   響應(yīng)是:   Processing c_proc.sql to c_proc.plb   這里不是通過執(zhí)行c_proc.sql腳本來產(chǎn)生該過程,而是執(zhí)行看不到源碼的c_proc.plb腳本,你將會發(fā)現(xiàn)在user_source的視圖中找不到我們的SQL語句。

[NextPage] 這個應(yīng)用的作用是什么?   現(xiàn)在我們已經(jīng)產(chǎn)生了一個模擬的應(yīng)用,我們就可以運(yùn)行它,打開sql_trace,看看有什么事情發(fā)生。我們將會發(fā)現(xiàn)這個SQL執(zhí)行一個全表搜索來得到請求的數(shù)據(jù)。   在這個測試中,全表檢索或許是最有效的方式--不過讓我們假定已經(jīng)證明使用一個單列的索引和and-equal選項(xiàng)才是最佳的執(zhí)行路徑時,我們可以怎樣修改呢(無需在代碼中加入提示)?   通過存儲概要,答案是簡單的。要達(dá)到我下面所做的事如何seo優(yōu)化推廣網(wǎng)站情實(shí)際上有好幾種方法,因此不要認(rèn)為這是唯一的做法。Oracle一直改進(jìn)它的特性以方便使用,這里所講的技術(shù)或許在未來的一個版本中就會消失。   你想該應(yīng)用做什么?   要令Oracle如我們所想的那樣運(yùn)作,有三個階段:   . 啟動一個新的session(連接),然后重新運(yùn)行該過程,首先告訴Oracle我們要跟蹤將要運(yùn)行的SQL語句和該SQL使用的路徑。這里說的"路徑"就是我們存儲概要的第一個例子。   . 為有問題的SQL語句創(chuàng)建更好的存儲概要,然后用好的代替有問題的。   . 啟動一個新的session,并且告訴Oracle在看到匹配的SQL時,開始使用新的存儲概要,而不是使用通常的優(yōu)化方法來執(zhí)行;然后重新運(yùn)行該過程。   我們必須停止和啟動新的session來確保pl/sql緩沖中的游標(biāo)(cursors)并不是保持打開的。存儲概要只在一個游標(biāo)被分析的時候產(chǎn)生和(或)應(yīng)用,因此我們必須要確認(rèn)以前存在的類似游標(biāo)是關(guān)閉的。   啟動一個session并且執(zhí)行以下的命令: alter session set create_stored_outlines = demo;   然后運(yùn)行一小段匿名的代碼塊來執(zhí)行該過程,例如:   然后停止收集執(zhí)行的路徑(否則以下你執(zhí)行的一些SQL也會放到存儲概要的表格中,令接下來的處理有點(diǎn)困難)。   alter session set create_stored_outlines = false;   要看到這樣做的結(jié)果,我們可以查詢以下視圖來看清Oracle為我們創(chuàng)建和存儲的概要細(xì)節(jié)。。   我們可以看到在demo的分類中只有一個存儲概要,查看概要中的sql_text我們可以看到與我們原來PL/SQL代碼類似的、但又有點(diǎn)不同的語句。這是很重要的一點(diǎn),因?yàn)镺racle僅在存儲的sql_text和將要執(zhí)行的SQL非常相似的時候才會使用存儲概要。實(shí)際上,在Oracle8i中,兩個SQL語句要完全一樣才可以,這也是存儲概要的一個大問題。   你可以由列表中看到存儲概要中是一套hints用來描述Oracle如何執(zhí)行(或者將要執(zhí)行)該SQL。這個計(jì)劃使用一個全表搜索--即使是一個全表搜索這樣的操作,Oracle使用大量的hints來確保執(zhí)行的計(jì)劃。   要注意到存儲概要通常都是屬于一個分類的;在這里是demo分類,我們是通過alter session命令來指定的。如果在上面的命令中,我們使用true來代替demo,我們將在一個名字為default的分類中找到該存儲概要。   存儲概要都有一個名字,該名字在整個數(shù)據(jù)庫中都必須是唯一的。沒有兩個概要的名字是相同的,即使是它們是由不同的用戶產(chǎn)生。實(shí)際上,概要并不是由誰擁有的,它們僅有創(chuàng)建者。如果你創(chuàng)建的一個存儲概要和我以后執(zhí)行的一個SQL語句匹配,Oracle將會應(yīng)用你的hints列表到我的語句--即使這些hints在我的模式中是無意義的。(這樣我們就有完全不同的選項(xiàng)來欺騙存儲概要,不過這是另一篇文章的事情了)。你還可能注意到,當(dāng)Oracle自動產(chǎn)生存儲概要時,它的名字中包含有一個接近毫秒的時間戳。   繼續(xù)處理我們那個有問題的SQL,我們判定如果使用一個/*+ and_equal(so_demo, sd_i1, sd_i2) */ 的hint,那么Oracle將會使用我們想要的執(zhí)行路徑,所以我們現(xiàn)在通過以下的方法顯式創(chuàng)建一個存儲概要:   這樣就顯式地在我們的demo分類中創(chuàng)建了一個名字為so_fix的存儲概要。我們可以通過name='SO_FIX'這個條件來重新查詢user_outlines和user_outline_hints,查看一下存儲概要是怎樣的。   要注意到的是FULL(SO_DEMO)那一行已經(jīng)被AND_EQUAL(SO_DEMO SD_I1 SD_I2)替換了,這是我們想要看到的。   現(xiàn)在我們必須將兩個存儲概要"替換"過來。我們想Oracle在看到以前的語句時使用新的hint列表;要做到這一點(diǎn),我們必須做一些欺騙。user_outlines和user_outline_hints視圖是由兩個表格產(chǎn)生的(分別是ol$和ol$hints),它們由outln模式擁有,我們必須直接修改這些表格;這意味著要使用outln連接數(shù)據(jù)庫,并且使用一個有權(quán)限的帳號來更新表格。   幸運(yùn)的是,outln表格并沒有任何引用的完整性限制。便利的是,ol$ (outlines)和ol$hints (hints) 表格間的關(guān)系是由概要的名字定義的(存儲在ol_name列中)。因此,仔細(xì)檢查名字,我們就可網(wǎng)站建設(shè)哪家好以通過交換ol$hints表上的名字交換存儲概要的提示:   對于這樣做,你可能感到有點(diǎn)不習(xí)慣,特別是根據(jù)指南上的建議--不過這個更新在Metalink(譯者注:這是Oracle的一個技術(shù)支持站點(diǎn))上是允許的。不過,你還需要做第二次更新來確保和每個存儲概要相聯(lián)系的hints數(shù)目保持一致。如果你忽略了這一步,你將會發(fā)現(xiàn)你的一些存儲概要被損壞,或者在一個導(dǎo)出/導(dǎo)入中的處理中被破壞。   一旦完成上面的語句,你就可以發(fā)起一個新的連接,告訴它使用存儲概要,重新運(yùn)行該過程然后退出;同樣地,你可以使用sql_trace來確認(rèn)Oracle確實(shí)是這樣做的。要告訴Oracle使用修改后的存儲概要,你可以使用以下的命令: alter session set use_stored_outline =&nb

關(guān)鍵詞標(biāo)簽: 標(biāo)簽 穩(wěn)定性

聲明: 本文由我的SEOUC技術(shù)文章主頁發(fā)布于:2023-05-22 ,文章解析Oracle 8i/9i的計(jì)劃穩(wěn)定性建站知識主要講述穩(wěn)定性,標(biāo)簽,解析Oracle 8i/9i的計(jì)劃穩(wěn)定性建站知網(wǎng)站建設(shè)源碼以及服務(wù)器配置搭建相關(guān)技術(shù)文章。轉(zhuǎn)載請保留鏈接: http://www.bifwcx.com/article/web_5130.html

我的IDC 網(wǎng)站建設(shè)技術(shù)SEOUC.COM
專注網(wǎng)站建設(shè),SEO優(yōu)化,小程序設(shè)計(jì)制作搭建開發(fā)定制網(wǎng)站等,數(shù)千家網(wǎng)站定制開發(fā)案例,網(wǎng)站推廣技術(shù)服務(wù)。
  • 5000+合作客服
  • 8年從業(yè)經(jīng)驗(yàn)
  • 150+覆蓋行業(yè)
  • 最新熱門源碼技術(shù)文章

    主站蜘蛛池模板: 塘沽区| 深水埗区| 闽侯县| 虹口区| 安乡县| 娄底市| 东兴市| 北海市| 华安县| 荣昌县| 含山县| 子洲县| 孝感市| 阿图什市| 岑溪市| 玛曲县| 杭州市| 中方县| 永川市| 德令哈市| 镶黄旗| 新野县| 昆明市| 石阡县| 宜宾县| 汕尾市| 澄迈县| 利川市| 射阳县| 大洼县| 香港 | 镇原县| 靖边县| 新和县| 定兴县| 阿拉尔市| 海晏县| 登封市| 定远县| 库尔勒市| 宁乡县|