關於儲存過程中包含複雜業務的除錯方法積累

2021-08-27 12:58:43 字數 665 閱讀 1767

我從2023年到今天已經走過了程式設計師生涯的5個春夏秋冬,酸甜苦辣百種滋味我相信只有走過這段路的程式才最有體會,不說廢話了,就我知道的幾種除錯包含複雜業務的儲存過程的方法列舉如下:(備註:除錯的方法源自一位老大【雪上加霜】,方法供大家學習指正)

本人使用的變成工具是delphi 2010+sql2008

背景介紹:

本人除錯乙個500行的儲存過程,除錯的原因是程式中呼叫儲存過程,獲得時間很長導致delphi 的前台報出error"超時已過期",最終找到儲存過程執行效率低下,利用指令碼重新建立各表的索引後仍然無效後,開始了漫長的查詢效率低下原因查詢中

方法一:儲存構成中包含複雜的業務時無法重複執行,在查詢分析器中增加事物回滾 begin tran exec usp_xx_******x rollback tran

方法二:在儲存過程中某一段後增加select 1 return或者 select "t"  return   查詢儲存過程中的某一段是否效率低下

方法三:  當遇到儲存過程中存在,儲存過程呼叫儲存過程時可注釋掉對應的儲存過程,看儲存的查詢效率

方法四:  當遇到儲存過程中遇到使用游標的可採用在游標的後面加上where 1=2 過濾該游標,看是否提高了查詢效率

當最終查詢到某一條sql語句查詢效率低下後,根據實際情況處理,建立表索引或者優化sql語句或者日表倒年表,或者採用其他的方式

儲存過程中is的含義

例子 create or replace procedure proc1 para1 varchar2,para2 out varchar2,para3 in out varchar2 as v name varchar2 20 變數宣告塊 緊跟著的as is 關鍵字,可以理解為pl sql的dec...

關於儲存過程中執行字串

關於儲存過程中執行字串 我想在儲存過程中寫 declare sqlstring nvarchar 50 set sqlstring select from admininfo where columnname like condition exec sqlstring 這樣一句話,可是在查詢分析器裡...

儲存過程中的優化建議

一 盡量避免對同一張表尤其是資料量較大的表進行重複訪問,可以考慮先根據條件提取資料到臨時表中,然後再做連線。二 儘量減少update 語句的使用,盡量使用select 語句查出盡量簡練的資料然後使用update 應為在資料庫操作中update 要鎖表而select 不會三 盡量避免游標的使用,在運算...