當前位置:首頁 » 存儲配置 » db2存儲過程執行計劃

db2存儲過程執行計劃

發布時間: 2024-09-24 18:47:28

存儲過程EXECUTE IMMEDIATE V_sql執行很慢或出不來,如果把V_SQL語句拿出來單獨執行很快,這是為什麼

這個可能的原因有很多;
首先,execute immediate v_sql語句需要硬解析,這是一個較為耗時的過程,而直接拿出來執行的語句,其查詢分析樹已經存在,所以只需要軟解析。
另外,execute immediate語句由於是硬解析,所以每次出來的計劃都有可能不同,這是最需要注意的,可以為兩種執行方法設置10046跟蹤,看一下每種方法的耗時點,以及執行計劃的異同。

以下配置可以在plsql developer的命令窗口中執行,也可以在sqlplus中執行;

sql> alter session set events '10046 trace name context forever,level 8';
sql > execute immediate v_sql;
sql> v_sql;

sql> alter session set events '10046 trace name context off';

完成上述操作後登錄到資料庫伺服器上,在cmd(windows)或者 shell(unix)環境下執行
$ tkprof tracefile.trc tracefile.txt sys=no

② 如何查看存儲過程的執行計劃

存儲過程沒有執行計劃 只有SQL 有執行計劃。
你可以把存儲過程裡面的SQL 逐個分析
有用記得採納

③ 存儲過程第一次執行耗時30分鍾,第二次開始每次耗時不到3分鍾,這是什麼原因

sql是高級語言,資料庫系統執行sql之前要將sql語句進行解析(相當於編譯),這個過程叫硬解析;資料庫系統每次執行sql之前都會檢查共享池中是不是存在已經解析過的語句,如果有就拿來直接用,這叫軟結息。軟解析比硬解析效率高,這是影響因素之一;
二、第一次執行可能沒有走索引,第二次執行使用第一次執行的執行計劃
三、看你的存儲過程做了些什麼,有可能第一次把活幹完了,導致第二次執行沒什麼活干
以上回答基於oracle體系結構

④ oracle存儲過程是從上到下執行嗎

是。oracle存儲過程是原則從上至下;從右向左由上至下,在執行計劃中一般含有多個節點,所以是。存儲過程(StoredProcere)是在大型資料庫系統中,一組為了完成特定功能的SQL語句集,它存儲在資料庫中,一次編譯後永久有效,用戶通過指定存儲過程的名字並給出參數(如果該存儲過程帶有參數)來執行它。

⑤ 資料庫存儲過程、函數、觸發器的區別

存儲過程和函數的區別:
1. 一般來說,存儲過程實現的功能要復雜一點,而函數的實現的功能針對性比較強。
2. 對於存儲過程來說可以返回參數,而函數只能返回值或者表對象。
3. 存儲過程一般是作為一個獨立的部分來執行,而函數可以作為查詢語句的一個部分來調用,由於函數可以返回一個表對象,因此它可以在查詢語句中位於FROM關鍵字的後面。
4. 當存儲過程和函數被執行的時候,SQL Manager會到procere cache中去取相應的查詢語句,如果在procere cache里沒有相應的查詢語句,SQL Manager就會對存儲過程和函數進行編譯。
Procere cache中保存的是執行計劃 (execution plan) ,當編譯好之後就執行procere cache中的execution plan,之後SQL SERVER會根據每個execution plan的實際情況來考慮是否要在cache中保存這個plan,評判的標准一個是這個execution plan可能被使用的頻率;其次是生成這個plan的代價,也就是編譯的耗時。保存在cache中的plan在下次執行時就不用再編譯了。
觸發器、存儲過程和函數三者有何區別:
觸發器是特殊的存儲過程,存儲過程需要程序調用,而觸發器會自動執行;
在什麼時候用觸發器?要求系統根據某些操作自動完成相關任務。
什麼時候用存儲過程?
存儲過程就是程序,它是經過語法檢查和編譯的SQL語句,所以運行特別快。
存儲過程和用戶自定義函數具體的區別
先看定義: 存儲過程存儲過程可以使得對資料庫的管理、以及顯示關於資料庫及其用戶信息的工作容易得多。存儲過程是 SQL 語句和可選控制流語句的預編譯集合,以一個名稱存儲並作為一個單元處理。
存儲過程存儲在資料庫內,可由應用程序通過一個調用執行,而且允許用戶聲明變數、有條件執行以及其它強大的編程功能。存儲過程可包含程序流、邏輯以及對資料庫的查詢。它們可以接受參數、輸出參數、返回單個或多個結果集以及返回值。 可以出於任何使用 SQL 語句的目的來使用存儲過程,它具有以下優點: 可以在單個存儲過程中。

熱點內容
沒有支付密碼怎麼支付 發布:2024-09-24 21:08:35 瀏覽:113
海量數據的分布式存儲 發布:2024-09-24 21:00:31 瀏覽:41
思科模擬器反向acl怎麼配置 發布:2024-09-24 20:28:41 瀏覽:765
如何取消文件夾加密 發布:2024-09-24 20:26:30 瀏覽:668
java中的list 發布:2024-09-24 20:22:10 瀏覽:765
建飛加密模塊 發布:2024-09-24 20:22:09 瀏覽:247
旅人棧橋伺服器怎麼樣 發布:2024-09-24 20:13:55 瀏覽:844
vps測試腳本 發布:2024-09-24 20:13:49 瀏覽:198
ftp使用埠號是 發布:2024-09-24 20:03:07 瀏覽:972
如何重新配置dp 發布:2024-09-24 19:51:21 瀏覽:487