<optgroup id="r9hwm"></optgroup><nav id="r9hwm"><label id="r9hwm"></label></nav>

    <tt id="r9hwm"><tr id="r9hwm"></tr></tt>
  1. 
    
  2. <optgroup id="r9hwm"><samp id="r9hwm"><dl id="r9hwm"></dl></samp></optgroup>

  3. <optgroup id="r9hwm"><samp id="r9hwm"><dl id="r9hwm"></dl></samp></optgroup>

        1. <listing id="r9hwm"></listing>
          <delect id="r9hwm"></delect>
          <optgroup id="r9hwm"><samp id="r9hwm"><ol id="r9hwm"></ol></samp></optgroup>

          測試sql語句

          如何測試sql語句性能,提高執行效率

          有時候我們經常為我們的sql語句執行效率低下發愁,反復優化后,可還是得不到提高

          那么你就用這條語句找出你sql到底是在哪里慢了

          示例:

          SET STATISTICS io ON

          SET STATISTICS time

          ON

          go

          ---你要測試的sql語句

          select top 100 * from

          TBL_Cot_RecStaticList

          go

          SET STATISTICS profile

          OFF

          SET STATISTICS io OFF

          SET STATISTICS time OFF

          顯示信息:

          SQL Server 分析和編譯時間:

          CPU 時間 = 0 毫秒,占用時間 = 59 毫秒。

          (100 行受影響) 表 'TBL_Cot_RecStaticList'。掃描計數 1,邏輯讀取 14 次,物理讀取 2

          次,預讀 992 次,lob 邏輯讀取 0 次,lob 物理讀取 0 次,lob 預讀 0 次。

          SQL Server 執行時間: CPU 時間 = 0 毫秒,占用時間 = 306 毫秒。

          SQL Server 分析和編譯時間: CPU 時間 = 0 毫秒,占用時間 = 1 毫秒。

          SQL Server 執行時間: CPU 時間 = 0 毫秒,占用時間 = 1 毫秒。

          SQL Server 執行時間: CPU 時間 = 0 毫秒,占用時間 = 1 毫秒。

          PL/SQl怎么測試一個sql語句的性能

          一段SQL代碼寫好以后,可以通過查看SQL的執行計劃,初步預測該SQL在運行時的性能好壞,尤其是在發現某個SQL語句的效率較差時,我們可以通過查看執行計劃,分析出該SQL代碼的問題所在。

          1、 打開熟悉的查看工具:PL/SQL Developer。

          在PL/SQL Developer中寫好一段SQL代碼后,按F5,PL/SQL Developer會自動打開執行計劃窗口,顯示該SQL的執行計劃。

          2、 查看總COST,獲得資源耗費的總體印象

          一般而言,執行計劃第一行所對應的COST(即成本耗費)值,反應了運行這段SQL的總體估計成本,單看這個總成本沒有實際意義,但可以拿它與相同邏輯不同執行計劃的SQL的總體COST進行比較,通常COST低的執行計劃要好一些。

          3、 按照從左至右,從上至下的方法,了解執行計劃的執行步驟

          執行計劃按照層次逐步縮進,從左至右看,縮進最多的那一步,最先執行,如果縮進量相同,則按照從上而下的方法判斷執行順序,可粗略認為上面的步驟優先執行。每一個執行步驟都有對應的COST,可從單步COST的高低,以及單步的估計結果集(對應ROWS/基數),來分析表的訪問方式,連接順序以及連接方式是否合理。

          4、 分析表的訪問方式

          表的訪問方式主要是兩種:全表掃描(TABLE ACCESS FULL)和索引掃描(INDEX SCAN),如果表上存在選擇性很好的索引,卻走了全表掃描,而且是大表的全表掃描,就說明表的訪問方式可能存在問題;若大表上沒有合適的索引而走了全表掃描,就需要分析能否建立索引,或者是否能選擇更合適的表連接方式和連接順序以提高效率。

          5、 分析表的連接方式和連接順序

          表的連接順序:就是以哪張表作為驅動表來連接其他表的先后訪問順序。

          表的連接方式:簡單來講,就是兩個表獲得滿足條件的數據時的連接過程。主要有三種表連接方式,嵌套循環(NESTED LOOPS)、哈希連接(HASH JOIN)和排序-合并連接(SORT MERGE JOIN)。我們常見得是嵌套循環和哈希連接。

          嵌套循環:最適用也是最簡單的連接方式。類似于用兩層循環處理兩個游標,外層游標稱作驅動表,Oracle檢索驅動表的數據,一條一條的代入內層游標,查找滿足WHERE條件的所有數據,因此內層游標表中可用索引的選擇性越好,嵌套循環連接的性能就越高。

          哈希連接:先將驅動表的數據按照條件字段以散列的方式放入內存,然后在內存中匹配滿足條件的行。哈希連接需要有合適的內存,而且必須在CBO優化模式下,連接兩表的WHERE條件有等號的情況下才可以使用。哈希連接在表的數據量較大,表中沒有合適的索引可用時比嵌套循環的效率要高。

          詢問sql語句優化測試方法以下2句怎么測試出哪句性能更好?sel 愛問

          這兩個SQL語句看起來都未能使用上索引,都是tablescan表掃操作,但是第一個SQL語句用了兩個LIKE,一個NULL的判斷。

          一般情況下,IS NOT NULL比IS NULL的判斷更耗費資源。第二個SQL語句用了+運算和一個LIKE,好象比第一個性能要好一些。

          但是當我在ASA中,隨意造了一個將近60萬條數據的堆表后,分別在PB中執行Explain SQL,分別顯示上面兩個SQL語句的執行計劃如下(表名我用的是test,字段分別是aa,bb): 1:( Plan [ Total Cost Estimate: 32。 96008 ] ( TableScan test[ ( ( test。

          aa >= '' : 100% Statistics ) AND ( test。aa LIKE '%轉讓%' : 100% Computed ) ) OR ( ( >= '' : 100% Statistics ) AND ( LIKE '%轉讓%' : 100% Computed ) ) : 100% Combined ] ) ) 2:( Plan [ Total Cost Estimate: 32。

          96008 ] ( TableScan test[ ( expr( test。aa, ) >= '' : 25% Guess ) AND ( expr( test。

          aa, ) LIKE '%轉讓%' : 100% Computed ) ] ) ) 結果是兩個SQL語句的Total Cost Estimate都是一樣,所以直接從表面上看,很難判斷究竟哪個SQL性能更優,建議最好能夠在實際執行環境中測試一下。 當然WHERE條件越簡單,并且能夠優化使用上索引是最好的! 。

          轉載請注明出處華閱文章網 » 測試sql語句

          短句

          c語言的賦值語句

          閱讀(318)

          C語言中賦值語句有什么規則要求在賦值語句的使用中需要注意以下幾點: 由于在賦值符“=”右邊的表達式也可以又是一個賦值表達式, 因此,下述形式 變量=(變量=表達式); 是成立的,從而形成嵌套的情形。 其展開之后的一般形式為:變量=變量=…=表達

          短句

          r語句

          閱讀(372)

          什么是R語言 R是用于統計分析、繪圖的語言和操作環境。R是基于S語言的一個GNU項目,所以也可以當作S語言的一種實現,通常用S語言編寫的代碼都可以不作修改的在R環境下運行。

          短句

          sql顯示語句

          閱讀(399)

          SQL如何顯示查詢結果的前100條SQL語句顯示查詢結果前100條在不同的數據庫查詢語句不同,分別是:1、在 sqlserver數據庫中:SET ROWCOUNT 100 GOSELECT * FROM 表名 ;2、在Oracle數據庫中:select *

          短句

          遇見的語句

          閱讀(302)

          表達遇見的句子 關于相遇的唯美句子1、相遇,心緒如白云飄飄;擁有,心花如雨露紛飛;錯過,心靈如流沙肆虐。回首,幽情如藍靜夜清。2、感謝上蒼,讓我結識了你。在這美麗的季節,這美好的相遇。3、錯過,是為了下一次更好的相遇,如果相遇,我會更懂得如何

          短句

          gofor語句

          閱讀(330)

          go for的短語有哪些 1、go for a walk ,散步。2、go for it,盡量爭取。3、go for an outing,去郊游,去遠足。4、go for sb,襲擊。。5、go for broke,全力以赴。6、go for a picin

          短句

          forwhile語句的用法

          閱讀(334)

          for循環和while循環的區別及用法 區別: 1、使用場景不同: 知道執行次數的時候一般用for,條件循環時一般用while。 2、兩種循環在構造死循環時的區別: while循環里的條件被看成表達式,因此,當用while構造死循環時,里面的TRUE實際上被

          短句

          小學生英語語句

          閱讀(308)

          小學5英語句子大全-小學英語作文,只要5到10句話 1、Hello!Dear friend。How are you?Where will you go in winter holiday?The Spring Festival will come soon

          短句

          updateif語句怎么寫

          閱讀(335)

          SQL的update語句怎么寫 UPDATE 表名稱 SET 列名稱 = 新值 WHERE 列名稱 = 某值,update語句的寫法:1、UPDATE table_name2、SET column1=value1,column2=value2,。3、WHERE co

          短句

          緣的經典語句

          閱讀(308)

          關于緣份有什么經典的句子嗎1. 于千萬人之中遇見你所要遇見的人,于千萬年之中,時間的無涯的荒野里,沒有早一步,也沒有晚一步,剛巧趕上了,那也沒有別的話可說,惟有輕輕地問一聲:“噢,你也在這里嗎?”2. 我要你知道,在這個世界上總有一個人是等著你

          短句

          sql的修改表的語句

          閱讀(356)

          求標準sql修改數據表列名的語句 那個 修改列名 各個數據庫都支持的寫法 到底有沒有, 我也不大確定. 下面是 3種數據庫 各自的寫法. 你可以切換著測試測試, 看看哪種寫法,是

          短句

          描寫秋天語句

          閱讀(300)

          關于秋天的美句 1.秋,一個果實累累的名字. 2.秋天帶著一身金黃,邁著輕盈的腳步,悄悄地來到了人間. 3.秋天到處是豐收的景象,充滿了果實的濃香,充滿了人們歡樂的笑聲. 4.風,輕輕地,溫和的吹著,是美麗的秋姑娘姍姍而來. 5.金秋時節,大地一片金黃,萬

          短句

          if語句有幾種

          閱讀(343)

          if語句有幾種表達方式1.if語句的一般格式if(表達式) {語句組1;}[else{語句組2;} ](1)if語句中的“表達式”必須用“(”和“)”括起來.(2)else子句(可選)是if語句的一部分,必須與if配對使用,不能單獨使用.(3)當if和els

          短句

          論語的經典語句

          閱讀(282)

          《論語》經典名句 子曰:“學而時習之,不亦悅乎?有朋自遠方來,不亦樂乎?人不知而不慍,不亦君子乎?”吾十有五而志于學,三十而立,四十而不惑,五十而知天命,六十而耳順,七十而從心所欲不逾矩子曰:溫故而知新,可以為師矣.子曰:學而不思則罔,思而不學則殆.子

          短句

          c語言的賦值語句

          閱讀(318)

          C語言中賦值語句有什么規則要求在賦值語句的使用中需要注意以下幾點: 由于在賦值符“=”右邊的表達式也可以又是一個賦值表達式, 因此,下述形式 變量=(變量=表達式); 是成立的,從而形成嵌套的情形。 其展開之后的一般形式為:變量=變量=…=表達

          短句

          r語句

          閱讀(372)

          什么是R語言 R是用于統計分析、繪圖的語言和操作環境。R是基于S語言的一個GNU項目,所以也可以當作S語言的一種實現,通常用S語言編寫的代碼都可以不作修改的在R環境下運行。

          短句

          遇見的語句

          閱讀(302)

          表達遇見的句子 關于相遇的唯美句子1、相遇,心緒如白云飄飄;擁有,心花如雨露紛飛;錯過,心靈如流沙肆虐。回首,幽情如藍靜夜清。2、感謝上蒼,讓我結識了你。在這美麗的季節,這美好的相遇。3、錯過,是為了下一次更好的相遇,如果相遇,我會更懂得如何

          短句

          sql顯示語句

          閱讀(399)

          SQL如何顯示查詢結果的前100條SQL語句顯示查詢結果前100條在不同的數據庫查詢語句不同,分別是:1、在 sqlserver數據庫中:SET ROWCOUNT 100 GOSELECT * FROM 表名 ;2、在Oracle數據庫中:select *

          短句

          gofor語句

          閱讀(330)

          go for的短語有哪些 1、go for a walk ,散步。2、go for it,盡量爭取。3、go for an outing,去郊游,去遠足。4、go for sb,襲擊。。5、go for broke,全力以赴。6、go for a picin

          短句

          小學生英語語句

          閱讀(308)

          小學5英語句子大全-小學英語作文,只要5到10句話 1、Hello!Dear friend。How are you?Where will you go in winter holiday?The Spring Festival will come soon

          短句

          forwhile語句的用法

          閱讀(334)

          for循環和while循環的區別及用法 區別: 1、使用場景不同: 知道執行次數的時候一般用for,條件循環時一般用while。 2、兩種循環在構造死循環時的區別: while循環里的條件被看成表達式,因此,當用while構造死循環時,里面的TRUE實際上被

          短句

          matlab的for循環語句

          閱讀(340)

          Matlab for 循環語句 沒仔細研究你那個擬合函數的用法。不過像這種需要分段處理數據的情況很多,有種在 matlab 里很常用的技巧感覺你可以學學:假設原始數據(xdata)是一列 100

          <optgroup id="r9hwm"></optgroup><nav id="r9hwm"><label id="r9hwm"></label></nav>

            <tt id="r9hwm"><tr id="r9hwm"></tr></tt>
          1. 
            
          2. <optgroup id="r9hwm"><samp id="r9hwm"><dl id="r9hwm"></dl></samp></optgroup>

          3. <optgroup id="r9hwm"><samp id="r9hwm"><dl id="r9hwm"></dl></samp></optgroup>

                1. <listing id="r9hwm"></listing>
                  <delect id="r9hwm"></delect>
                  <optgroup id="r9hwm"><samp id="r9hwm"><ol id="r9hwm"></ol></samp></optgroup>
                  亚洲丰满少妇xxxxx高潮