存儲過程超時
A. 為什麼oracle中用存儲過程實現修改會出現載入超時的現象
列個表,里邊我一樣給你寫個例子,你看著學學,我盡量給你做出注釋
--建一個學生表
create table student (id int,name varchar2(10));
--插入兩條測試數據
insert into student values (1,'張三');
insert into student values (2,'李四');
commit;
-------------用存儲過程添加id為3,姓名為王五的學生-----------
create or replace PROCEDURE P_INSERT
(v_id int,--定義id變數
v_name varchar2--定義姓名變數)
is
begin
insert into student values (v_id,v_name);--執行插入操作
commit;
end;
執行的時候用下邊的
BEGIN
p_insert(3,'王五');
END;
然後select * from student;
你會發現多了3 王五 這條數據
---------------用存儲過程刪除id為3的學生------------
create or replace PROCEDURE P_DELETE
(v_id int)--定義變數id
is
begin
delete from student where id=v_id;--執行刪除操作
commit;
end;
執行
BEGIN
p_delete(3);
END;
執行完上邊後執行
select * from student;
你會發現id為3的學生沒了
---------------用存儲過程查詢id為2的學生姓名------------
create or replace PROCEDURE P_SELECT
(v_id int)--定義輸入變數id
is
v_name varchar2(10);--定義輸出變數name
begin
select name into v_name from student where id=v_id;--執行查詢
dbms_output.put_line('學生姓名為:'||v_name);--輸出結果
end;
執行
BEGIN
p_select(2);
END;
輸出的結果就是id為2的學生姓名
-----------用存儲過程查詢id為1的學生姓名修改為趙六----------
create or replace PROCEDURE P_UPDATE
(v_id int,--定義要修改的id
v_name varchar2)--定義要修改後的名字
is
begin
update student set name=v_name where id=v_id;--執行修改操作
commit;
end;
執行
BEGIN
P_UPDATE(1,'趙六');
END;
然後你再
select * from student;
你會發現id為1的已經為趙六了
上邊這些都是最簡單的存儲過程,在實際過程中肯定沒這么簡單
還有,我讓你執行的
BEGIN
P_UPDATE(1,'趙六');
END;
這種東西可以當做oracle的job調用,可以定時執行
再有不懂的你再問吧,上邊的僅做參考
累死我了,哈哈
B. C#執行存儲過程報錯<Timeout 時間已到。在操作完成之前超時時間已過或伺服器未響應
存儲過程效率比較低,timeout都設到 1000000看看
C. C#winform執行存儲過賬超時
sqlComm.CommandTimeout = 0;這樣就不會提示超時了。。同時運用線程可以解決卡死的問題
但是你這個執行時間太長了吧60000秒,如果說你要從根本上解決這個問題,建議你還是把你的存儲過程進行優化,從程序那裡指標不治本
D. 一個sqlserver2005存儲過程的問題:超時後把存儲過程重新後台執行一次,編譯後頁面就恢復正常。這是為什麼
你的存儲過程好好看看再分析一下,是否演算法有問題,或者運行時要佔用大量內存。
還有個辦法,就是刪除原來的,重新建個一樣的存儲過程。我曾經試過,問題解決了。
E. 求救,同樣一個存儲過程,用代碼訪問,有時會超時,有時不會
引用
2
樓
的回復:lz:電腦資源的分配是不定時和不確定的。再說了你還要考慮到網路問題等其它因素。如果說存儲過程裡面大量使用臨時表或者是返回一個大表時都很費資源的。存儲過程雖不用再次編譯,但是你的參數有很多,要經過周轉才運行。有時候會卡也說不準的。所以呢存儲過程的操作盡量要簡單,也不要很長啦。直接分開調整也很快的。在此預祝樓主成功。
F. oracle存儲過程超時時間設置
在sqlnet.ora中設置參數如需要設置客戶端空閑10分鍾即被中斷,則在sqlnet.ora的末尾添加SQLNET.EXPIRE_TIME=10注:sqlnet.ora文件的路徑在$ORACLE_HOME/network/admin下。
G. sql存儲過程耗時太長
多長都有可能,40是很正常的。
1.盡量優化語句,盡量少用游標。
2.修改較為常用的表要注意,最好先在臨時表中作好運算和其它處理,最後在修改這些表,以免較慢的存儲過程長時間鎖定表記錄,影響數據正常使用。
3.將連接超時和命令超時適當擴大,以免超時錯誤。
H. oracle執行存儲過程時報:ORA-12170:TNS:連接超時
存儲過程中是否用到dblink?
I. VB的ADO連接SQL資料庫讀取存儲過程時顯示超時,為什麼啊
你的伺服器地址沒有,正確的應該是
Adodc3.ConnectionString
=
"Provider=SQLOLEDB.1;Password=2752;Persist
Security
Info=True;User
ID=sa;Initial
Catalog=sample;Data
Source=10.170.0.116"
你的ADODC的命令也不對。。。
Adodc3.RecordSource
=
"select
Sir,ComNo,Cmd,D,VTop,VLow,VTop1,VLow1,TestName
from
SSample
where
Nm='"
&
Trim(DataCombo1.Text)
&
"'and
Rev='"
&
Trim(DataCombo2.Text)
&
"'and
Vin='"
&
Trim(DataCombo3.Text)
&
"'and
Lod='"
&
Trim(DataCombo4.Text)
&
"'and
Bar='"
&
Trim(Text6.Text)
&
"'
order
by
Sir"
Adodc3.Refresh
