什麼是儲存過程?有什麼優點? ?
什麼是儲存過程?有什麼優點?
儲存過程是一組予編譯的SQL語句
它的優點:1.允許模組化程式設計,就是說只需要建立一次過程,以後在程式中就可以呼叫該過程任意次。
2.允許更快執行,如果某操作需要執行大量SQL語句或重複執行,儲存過程比SQL語句執行的要快。
3.減少網路流量,例如一個需要數百行的SQL程式碼的操作有一條執行語句完成,不需要在網路中傳送數百行程式碼。
4.更好的安全機制,工於沒有許可權執行儲存過程的使用者,也可授權他們執行儲存過程。
sql中是什麼是儲存過程,有哪些作用
儲存過程是在大型資料庫系統中,一組為了完成特定功能的SQL 語句集,儲存在資料庫中,經過第一次編譯後再次呼叫不需要再次編譯,使用者通過指定儲存過程的名字並給出引數(如果該儲存過程帶有引數)來執行它。儲存過程是資料庫中的一個重要物件,任何一個設計良好的資料庫應用程式都應該用到儲存過程。
儲存過程中可以包含邏輯控制語句和資料操縱語句,它可以接受引數、輸出引數、返回單個或多個結果集以及返回值。
由於儲存過程在建立時即在資料庫伺服器上進行了編譯並存儲在資料庫中,所以儲存過程執行要比單個的SQL語句塊要快。同時由於在呼叫時只需用提供儲存過程名和必要的引數資訊,所以在一定程度上也可以減少網路流量、簡單網路負擔。
使用儲存過程有哪些優點?
1.在資料庫伺服器中只有首次對儲存過程中的命令進行編譯,以後直接呼叫無需編譯,加快執行速度。
2.只提供給使用者引數和結果,儲存過程對查詢過程封裝和加密,簡化使用者使用,防止非法修改。
3.儲存過程可以用於降低網路流量,儲存過程程式碼直接儲存於資料庫中,所以不會產生大量sql語句的程式碼流量。
4.可以只賦給使用者執行儲存過程的權利,而不給使用者操作相應資料表的權利,這樣可以有效防止注入攻擊。
5.維護性高,更新儲存過程通常比更改、測試以及重新部署程式集需定較少的時間和精力。
儲存過程的優點有哪些
儲存過程是一組予編譯的SQL語句
它的優點:1.允許模組化程式設計,就是說只需要建立一次過程,以後在程式中就可以呼叫該過程任意次。
2.允許更快執行,如果某操作需要執行大量SQL語句或重複執行,儲存過程比SQL語句執行的要快。
3.減少網路流量,例如一個需要數百行的SQL程式碼的操作有一條執行語句完成,不需要在網路中傳送數百行程式碼。
4.更好的安全機制,對於沒有許可權執行儲存過程的使用者,也可授權他們執行儲存過程。
儲存過程的優缺點
①重複使用。儲存過程可以重複使用,從而可以減少資料庫開發人員的工作量。②減少網路流量。儲存過程位於伺服器上,呼叫的時候只需要傳遞儲存過程的名稱以及引數就可以了,因此降低了網路傳輸的資料量。③安全性。引數化的儲存過程可以防止SQL注入式攻擊,而且可以將Grant、Deny以及Revoke許可權應用於儲存過程。簡單講:1.儲存過程只在創造時進行編譯,以後每次執行儲存過程都不需再重新編譯,而一般SQL語句每執行一次就編譯一次,所以使用儲存過程可提高資料庫執行速度。2.當對資料庫進行復雜操作時(如對多個表進行Update,Insert,Query,Delete時),可將此複雜操作用儲存過程封裝起來與資料庫提供的事務處理結合一起使用。3.儲存過程可以重複使用,可減少資料庫開發人員的工作量4.安全性高,可設定只有某些使用者才具有對指定儲存過程的使用權有一點需要注意的是,一些網上盛傳的所謂的儲存過程要比sql語句執行更快的說法,實際上是個誤解,並沒有根據,包括微軟內部的人也不認可這一點,所以不能作為正式的優點,希望大家能夠認識到這一點。 1:除錯麻煩,但是用 PL/SQL Developer 除錯很方便!彌補這個缺點。2:移植問題,資料庫端程式碼當然是與資料庫相關的。但是如果是做工程型專案,基本不存在移植問題。3:重新編譯問題,因為後端程式碼是執行前編譯的,如果帶有引用關係的物件發生改變時,受影響的儲存過程、包將需要重新編譯(不過也可以設定成執行時刻自動編譯)。4: 如果在一個程式系統中大量的使用儲存過程,到程式交付使用的時候隨著使用者需求的增加會導致資料結構的變化,接著就是系統的相關問題了,最後如果使用者想維護該系統可以說是很難很難、而且代價是空前的,維護起來更麻煩。
ORACLE 儲存過程是什麼? 它的用處,好處是什麼?概念性的東西多點。。
定義:儲存過程(Stored Procedure )是一組為了完成特定功能的SQL 語句集,經編譯後儲存在資料庫中。使用者通過指定儲存過程的名字並給出引數(如果該儲存過程帶有引數)來執行它。儲存過程是資料庫中的一個重要物件,任何一個設計良好的資料庫應用程式都應該用到儲存過程。
儲存過程是由流控制和SQL 語句書寫的過程,這個過程經編譯和優化後儲存在資料庫伺服器中,應用程式使用時只要呼叫即可。在ORACLE 中,若干個有聯絡的過程可以組合在一起構成程式包。
優點:
1.儲存過程只在創造時進行編譯,以後每次執行儲存過程都不需再重新編譯,而一般SQL語句每執行一次就編譯一次,所以使用儲存過程可提高資料庫執行速度。
2.當對資料庫進行復雜操作時(如對多個表進行Update、Insert、Query、Delete時),可將此複雜操作用儲存過程封裝起來與資料庫提供的事務處理結合一起使用。
3.儲存過程可以重複使用,可減少資料庫開發人員的工作量。
4.安全性高,可設定只有某使用者才具有對指定儲存過程的使用權。
簡單說,你在你的機器上寫了個儲存過程,這個儲存過程像那些表裡的資料一樣被放在遙遠的資料庫伺服器當中,但是它又是可執行的程式碼,其他能連到資料庫伺服器的使用者,可以呼叫你寫的儲存過程
它的作用是隱藏細節,就是說,你寫的儲存過程程式碼可能很複雜,但是其他人呼叫它卻很簡單,不用具體知道它是如何做的,且一次能完成多個指令
oracle有系統儲存過程和自定義儲存過程2種儲存過程。
系統儲存過程就是由oracle預先提供的一組完成特定功能的儲存過程,安裝完oracle就有了。
自定義儲存過程就是存在oracle資料庫裡由一組plsql語句組成的自定義過程(procedure)。它可以供其它oracle自定義儲存過程、自定義函式和job呼叫或者由客戶端程式呼叫。
SQl中儲存過程有什麼作用
Microsoft SQL Server 中的儲存過程與其他程式語言中的過程類似,原因是儲存過程可以:
* 接受輸入引數並以輸出引數的格式向呼叫過程或批處理返回多個值。
* 包含用於在資料庫中執行操作(包括呼叫其他過程)的程式設計語句。
* 向呼叫過程或批處理返回狀態值,以指明成功或失敗(以及失敗的原因)。
可以使用 Transact-SQL EXECUTE 語句來執行儲存過程。儲存過程與函式不同,因為儲存過程不返回取代其名稱的值,也不能直接在表示式中使用。
在 SQL Server 中使用儲存過程而不使用儲存在客戶端計算機本地的 Transact-SQL 程式的好處包括:
* 儲存過程已在伺服器註冊。
* 儲存過程具有安全特性(例如許可權)和所有權連結,以及可以附加到它們的證書。
使用者可以被授予許可權來執行儲存過程而不必直接對儲存過程中引用的物件具有許可權。
* 儲存過程可以強制應用程式的安全性。
引數化儲存過程有助於保護應用程式不受 SQL Injection 攻擊。有關詳細資訊,請參閱 SQL Injection。
* 儲存過程允許模組化程式設計。
儲存過程一旦建立,以後即可在程式中呼叫任意多次。這可以改進應用程式的可維護性,並允許應用程式統一訪問資料庫。
* 儲存過程是命名程式碼,允許延遲繫結。
這提供了一個用於簡單程式碼演變的間接級別。
* 儲存過程可以減少網路通訊流量。
一個需要數百行 Transact-SQL 程式碼的操作可以通過一條執行過程程式碼的語句來執行,而不需要在網路中傳送數百行程式碼。
參照聯機
儲存過程是什麼?有什麼用?有什麼優點?
儲存過程很明顯幫助你能完成一個複雜的業務邏輯處理,並且這個處理是在資料庫完成的能夠節省程式執行效率,儲存過程可以執行一個業務處理並且可以帶有返回資訊或者沒返回資訊,這個根據你個人需要而定,跟資料庫函式有點想象,但是還有不同。希望對你有幫助。
oracle中的儲存過程,有什麼作用,以及怎麼在程式碼中使用?
樓上也不知道從哪扒下來的,一看LZ就是初學,舉點例子不行嗎?
比如建立個測試表
create table test(id int,name varchar2(10),counts int); insert into test values (1,'張三',100);insert into test values (2,'李四',200); commit;
現在給你出個題目是
查詢所有人加在一起的counts是多少
建立儲存過程
create or replace p_test --建立儲存過程,asv_counts int;--定義變數begin --開始select sum(counts) into v_counts from test;--將得到的結果放到變數裡DBMS_OUTPUT.PUT_LINE(v_counts);--將結果列印輸出end;--結束
執行這種不帶輸入引數的
begin p_test;end;
然後你檢查下結果
再給你建立一個帶輸入引數的
題目是,查詢id為1的人名是什麼
create or replace p_test1(v_id int)asv_name varchar2(10);beginselect name into v_name from test where id=v_id;DBMS_OUTPUT.PUT_LINE(v_name);end;
執行時這樣
beginp_test1(1);end;
第2個我沒給你寫註釋,你看你自己應該能理解吧
補充一下,儲存過程不一定只是執行查詢,也可以做刪除或者修改等sql語句,總體來說就是幾個或N個sql語句的集合,來完成系統內某些特定的需求,這些需求可以是一個sql搞定的,也可以是多個sql組合的
oracle儲存過程有什麼好處
你應該問資料庫儲存過程有什麼好處儲存過程的能力大大增強了SQL語言的功能和靈活性。儲存過程可以用流控制語句編寫,有很強的靈活性,可以完成複雜的判斷和較複雜的 運算。
* 可保證資料的安全性和完整性。
# 通過儲存過程可以使沒有許可權的使用者在控制之下間接地存取資料庫,從而保證資料的安全。
# 通過儲存過程可以使相關的動作在一起發生,從而可以維護資料庫的完整性。
* 在執行儲存過程前,資料庫已對其進行了語法和句法分析,並給出了優化執行方案。這種已經編譯好的過程可極大地改善SQL語句的效能。由於執行SQL語句的大部分工作已經完成,所以儲存過程能以極快的速度執行。
* 可以降低網路的通訊量。
* 使體現企業規則的運算程式放入資料庫伺服器中,以便:
# 集中控制。
# 當企業規則發生變化時在伺服器中改變儲存過程即可,無須修改任何應用程式。企業規則的特點是要經常變化,如果把體現企業規則的運算程式放入應用程式中,則當企業規則發生變化時,就需要修改應用程式工作量非常之大(修改、發行和安裝應用程式)。如果把體現企業規則的運算放入儲存過程中,則當企業規則發生變化時,只要修改儲存過程就可以了,應用程式無須任何變化。