第一篇:存儲過程的優(yōu)缺點個人總結(jié)
優(yōu)點
1.在生產(chǎn)環(huán)境下,可以通過直接修改存儲過程的方式修改業(yè)務(wù)邏輯(或bug),而不用重啟服務(wù)器。但這一點便利被許多人濫用了。有人直接就在正式服務(wù)器上修改存儲過程,而沒有經(jīng)過完整的測試,后果非常嚴(yán)重。
2.執(zhí)行速度快。存儲過程經(jīng)過編譯之后會比單獨一條一條執(zhí)行要快。但這個效率真是沒太大影響。如果是要做大數(shù)據(jù)量的導(dǎo)入、同步,我們可以用其它手段。
3.減少網(wǎng)絡(luò)傳輸。存儲過程直接就在數(shù)據(jù)庫服務(wù)器上跑,所有的數(shù)據(jù)訪問都在服務(wù)器內(nèi)部進(jìn)行,不需要傳輸數(shù)據(jù)到其它終端。但我們的應(yīng)付服務(wù)器通常與數(shù)據(jù)庫是在同一內(nèi)網(wǎng),大數(shù)據(jù)的訪問的瓶頸會是硬盤的速度,而不是網(wǎng)速。
4.能夠解決presentation與數(shù)據(jù)之間的差異,說得文藝青年點就是解決OO模型與二維數(shù)據(jù)持久化之間的阻抗。領(lǐng)域模型和數(shù)據(jù)模型的設(shè)計可能不是同一個人(一個是SA,另一個是DBA),兩者的分歧可能會很大——這不奇怪,一個是以O(shè)O的思想來設(shè)計,一個是結(jié)構(gòu)化的數(shù)據(jù)來設(shè)計,大家互不妥協(xié)——你說為了軟件的彈性必須這么設(shè)計,他說為了效率必須那樣設(shè)計,為了抹平鴻溝,就用存儲過程來做數(shù)據(jù)存儲的邏輯映射(把屬性映射到字段)。好吧,臺下已經(jīng)有同學(xué)在叨咕ORM了。
5.方便DBA優(yōu)化。所有的SQL集中在一個地方,DBA會很高興。這一點算是ORM的軟肋。不過按照CQRS框架的思想,查詢是用存儲過程還是ORM,還真不是問題——DBA對數(shù)據(jù)庫的優(yōu)化,ORM一樣會受益。況且放在ORM中還能用二級緩存,有些時候效率還會更高。
缺點
1.SQL本身是一種結(jié)構(gòu)化查詢語言,加上了一些控制(賦值、循環(huán)和異常處理等),但不是OO的,本質(zhì)上還是過程化的,面對復(fù)雜的業(yè)務(wù)邏輯,過程化的處理會很吃力。這一點算致命傷。
2.不便于調(diào)試。基本上沒有較好的調(diào)試器,很多時候是用print來調(diào)試,但用這種方法調(diào)試長達(dá)數(shù)百行的存儲過程簡直是噩夢。好吧,這一點不算啥,C#/java一樣能寫出噩夢般的代碼。
3.沒辦法應(yīng)用緩存。雖然有全局臨時表之類的方法可以做緩存,但同樣加重了數(shù)據(jù)庫的負(fù)擔(dān)。如果緩存并發(fā)嚴(yán)重,經(jīng)常要加鎖,那效率實在堪憂。
4.無法適應(yīng)數(shù)據(jù)庫的切割(水平或垂直切割)。數(shù)據(jù)庫切割之后,存儲過程并不清楚數(shù)據(jù)存儲在哪個數(shù)據(jù)庫中。
5.精通SQL的新手越來越少——不要笑,這是真的,我面試過N多新人,都不知道如何創(chuàng)建全局臨時表、不知道having、不知道聚集索引和非聚集索引,更別提游標(biāo)和提交叉表查詢了。好吧,這個缺點算是湊數(shù)用的,作為屌絲程序員,我們的口號是:沒有不會的,只有不用的。除了少數(shù)有語言潔癖的人,我相信精通SQL只是時間問題。
總結(jié)
存儲過程最大的優(yōu)點是部署的方便性——可以在生產(chǎn)環(huán)境下直接修改——雖然濫用的后果很嚴(yán)重。
存儲過程最大的缺點是SQL語言本身的局限性——我們不應(yīng)該用存儲過程處理復(fù)雜的業(yè)務(wù)邏輯——讓SQL回歸它“結(jié)構(gòu)化查詢語言”的功用吧。
第二篇:存儲過程中的優(yōu)缺點個人總結(jié)
存儲過程中的優(yōu)缺點個人總結(jié)
公司的系統(tǒng)是自主開發(fā)的,歷史比較悠久,有不少是傳統(tǒng)C/S架構(gòu),采用存儲過程來處理業(yè)務(wù)邏輯。
近來做新系統(tǒng)的時候,我采用了三層架構(gòu),拋棄存儲過程改用ORM。有同事問及不用存儲過程的理由,我想了一下,對存儲過程做了如下總結(jié)。本人經(jīng)驗和水平有限,總結(jié)有所偏頗,還請大家糾察。
優(yōu)點
1.在生產(chǎn)環(huán)境下,可以通過直接修改存儲過程的方式修改業(yè)務(wù)邏輯(或bug),而不用重啟服務(wù)器。但這一點便利被許多人濫用了。有人直接就在正式服務(wù)器上修改存儲過程,而沒有經(jīng)過完整的測試,后果非常嚴(yán)重。
2.執(zhí)行速度快。存儲過程經(jīng)過編譯之后會比單獨一條一條執(zhí)行要快。但這個效率真是沒太大影響。如果是要做大數(shù)據(jù)量的導(dǎo)入、同步,我們可以用其它手段。
3.減少網(wǎng)絡(luò)傳輸。存儲過程直接就在數(shù)據(jù)庫服務(wù)器上跑,所有的數(shù)據(jù)訪問都在服務(wù)器內(nèi)部進(jìn)行,不需要傳輸數(shù)據(jù)到其它終端。但我們的應(yīng)付服務(wù)器通常與數(shù)據(jù)庫是在同一內(nèi)網(wǎng),大數(shù)據(jù)的訪問的瓶頸會是硬盤的速度,而不是網(wǎng)速。
4.能夠解決presentation與數(shù)據(jù)之間的差異,說得文藝青年點就是解決OO模型與二維數(shù)據(jù)持久化之間的阻抗。領(lǐng)域模型和數(shù)據(jù)模型的設(shè)計可能不是同一個人(一個是SA,另一個是DBA),兩者的分歧可能會很大——這不奇怪,一個是以O(shè)O的思想來設(shè)計,一個是結(jié)構(gòu)化的數(shù)據(jù)來設(shè)計,大家互不妥協(xié)——你說為了軟件的彈性必須這么設(shè)計,他說為了效率必須那樣設(shè)計,為了抹平鴻溝,就用存儲過程來做數(shù)據(jù)存儲的邏輯映射(把屬性映射到字段)。好吧,臺下已經(jīng)有同學(xué)在叨咕ORM了。
5.方便DBA優(yōu)化。所有的SQL集中在一個地方,DBA會很高興。這一點算是ORM的軟肋。不過按照CQRS框架的思想,查詢是用存儲過程還是ORM,還真不是問題——DBA對數(shù)據(jù)庫的優(yōu)化,ORM一樣會受益。況且放在ORM中還能用二級緩存,有些時候效率還會更高。
缺點
1.SQL本身是一種結(jié)構(gòu)化查詢語言,加上了一些控制(賦值、循環(huán)和異常處理等),但不是OO的,本質(zhì)上還是過程化的,面對復(fù)雜的業(yè)務(wù)邏輯,過程化的處理會很吃力。這一點算致命傷。
2.不便于調(diào)試。基本上沒有較好的調(diào)試器,很多時候是用print來調(diào)試,但用這種方法調(diào)試長達(dá)數(shù)百行的存儲過程簡直是噩夢。好吧,這一點不算啥,C#/java一樣能寫出噩夢般的代碼。3.沒辦法應(yīng)用緩存。雖然有全局臨時表之類的方法可以做緩存,但同樣加重了數(shù)據(jù)庫的負(fù)擔(dān)。如果緩存并發(fā)嚴(yán)重,經(jīng)常要加鎖,那效率實在堪憂。
4.無法適應(yīng)數(shù)據(jù)庫的切割(水平或垂直切割)。數(shù)據(jù)庫切割之后,存儲過程并不清楚數(shù)據(jù)存儲在哪個數(shù)據(jù)庫中。
5.精通SQL的新手越來越少——不要笑,這是真的,我面試過N多新人,都不知道如何創(chuàng)建全局臨時表、不知道having、不知道聚集索引和非聚集索引,更別提游標(biāo)和提交叉表查詢了。好吧,這個缺點算是湊數(shù)用的,作為屌絲程序員,我們的口號是:沒有不會的,只有不用的。除了少數(shù)有語言潔癖的人,我相信精通SQL只是時間問題??偨Y(jié)
存儲過程最大的優(yōu)點是部署的方便性——可以在生產(chǎn)環(huán)境下直接修改——雖然濫用的后果很嚴(yán)重。
存儲過程最大的缺點是SQL語言本身的局限性——我們不應(yīng)該用存儲過程處理復(fù)雜的業(yè)務(wù)邏輯——讓SQL回歸它“結(jié)構(gòu)化查詢語言”的功用吧。
第三篇:mysql 5.0存儲過程學(xué)習(xí)總結(jié)
mysql 5.0存儲過程學(xué)習(xí)總結(jié)
一.創(chuàng)建存儲過程 1.基本語法:
create procedure sp_name()begin end 2.參數(shù)傳遞
二.調(diào)用存儲過程
1.基本語法:call sp_name()注意:存儲過程名稱后面必須加括號,哪怕該存儲過程沒有參數(shù)傳遞
三.刪除存儲過程 1.基本語法:
drop procedure sp_name// 2.注意事項
(1)不能在一個存儲過程中刪除另一個存儲過程,只能調(diào)用另一個存儲過程
四.區(qū)塊,條件,循環(huán) 1.區(qū)塊定義,常用 begin end;也可以給區(qū)塊起別名,如: lable:begin end lable;可以用leave lable;跳出區(qū)塊,執(zhí)行區(qū)塊以后的代碼
2.條件語句 3.循環(huán)語句 :while循環(huán) loop循環(huán) repeat until循環(huán) repeat until循環(huán)
五.其他常用命令
1.show procedure status 顯示數(shù)據(jù)庫中所有存儲的存儲過程基本信息,包括所屬數(shù)據(jù)庫,存儲過程名稱,創(chuàng)建時間等 2.show create procedure sp_name 顯示某一個存儲過程的詳細(xì)信息
mysql存儲過程基本函數(shù)
一.字符串類
CHARSET(str)//返回字串字符集 CONCAT(string2 [,...])//連接字串
INSTR(string ,substring)//返回substring首次在string中出現(xiàn)的位置,不存在返回0 LCASE(string2)//轉(zhuǎn)換成小寫
LEFT(string2 ,length)//從string2中的左邊起取length個字符 LENGTH(string)//string長度
一起推論壇
一起推論壇004km.cn
第四篇:課題:SQLServer存儲過程返回值總結(jié)
SQLServer存儲過程返回值總結(jié)
1.存儲過程沒有返回值的情況(即存儲過程語句中沒有return之類的語句)
用方法 int count = ExecuteNonQuery(..)執(zhí)行存儲過程其返回值只有兩種情況
(1)假如通過查詢分析器執(zhí)行該存儲過程,在顯示欄中假如有影響的行數(shù),則影響幾行count就是幾
(2)假如通過查詢分析器執(zhí)行該存儲過程,在顯示欄中假如顯示'命令已成功完成。'則count =-1;在顯示欄中假如有查詢結(jié)果,則count =-1
總結(jié):A.ExecuteNonQuery()該方法只返回影響的行數(shù),假如沒有影響行數(shù),則該方法的返回值只能是-1,不會為0。
B.不論ExecuteNonQuery()方法是按照CommandType.StoredProcedure或者CommandType.Text執(zhí)行,其效果和A一樣。
2.獲得存儲過程的返回值--通過查詢分析器獲得
(1)不帶任何參數(shù)的存儲過程(存儲過程語句中含有return)
---創(chuàng)建存儲過程
CREATE PROCEDURE testReturn
AS
return 145
GO
---執(zhí)行存儲過程
DECLARE @RC int
exec @RC=testReturn
select @RC
---說明
查詢結(jié)果為145
(2)帶輸入?yún)?shù)的存儲過程(存儲過程語句中含有return)
---創(chuàng)建存儲過程
create procedure sp_add_table1
@in_name varchar(100), @in_addr varchar(100), @in_tel varchar(100)
as
if(@in_name = '' or @in_name is null)
return 1
else
begin
insert into table1(name,addr,tel)values(@in_name,@in_addr,@in_tel)
return 0
end
---執(zhí)行存儲過程
<1>執(zhí)行下列,返回1
declare @count int exec @count = sp_add_table1 '','中三路','123456' select @count
<2>執(zhí)行下列,返回0
declare @count int exec @count = sp_add_table1 '','中三路','123456' select @count
---說明
查詢結(jié)果不是0就是1
(3)帶輸出參數(shù)的存儲過程(存儲過程中可以有return可以沒有return)
例子A:
---創(chuàng)建存儲過程
create procedure sp_output
@output int output
as
set @output = 121
return 1
---執(zhí)行存儲過程
<1>執(zhí)行下列,返回121
declare @out int
exec sp_output @out output
select @out
<2>執(zhí)行下列,返回1
declare @out int
declare @count int exec @count = sp_output @out output
select @count
---說明
有return,只要查詢輸出參數(shù),則查詢結(jié)果為輸出參數(shù)在存儲過程中最后變成的值;只要不查詢輸出參數(shù),則查詢結(jié)果為return返回的值
例子B:
---創(chuàng)建存儲過程
create procedure sp_output
@output int output
as
set @output = 121
---執(zhí)行存儲過程
<1>執(zhí)行下列,返回121
declare @out int
exec sp_output @out output
select @out
<2>執(zhí)行下列,返回0
declare @out int
declare @count int
exec @count = sp_output @out output
select @count
---說明
沒有return,只要查詢輸出參數(shù),則查詢結(jié)果為輸出參數(shù)在存儲過程中最后變成的值;只要不查詢輸出參數(shù),則查詢結(jié)果為0
總結(jié):
(1)存儲過程共分為3類:
A.返回記錄集的存儲過程---------------------------其執(zhí)行結(jié)果是一個記錄集,例如:從數(shù)據(jù)庫中檢索出符合某一個或幾個條件的記錄
B.返回數(shù)值的存儲過程(也可以稱為標(biāo)量存儲過程)-----其執(zhí)行完以后返回一個值,例如:在數(shù)據(jù)庫中執(zhí)行一個有返回值的函數(shù)或命令
C.行為存儲過程----用來實現(xiàn)數(shù)據(jù)庫的某個功能,而沒有返回值,例如:在數(shù)據(jù)庫中的更新和刪除操作
(2)含有return的存儲過程其返回值為return返回的那個值
(3)沒有return的存儲過程,不論執(zhí)行結(jié)果有無記錄集,其返回值是0
(4)帶輸出參數(shù)的存儲過程:假如有return則返回return返回的那個值,假如要select輸出參數(shù),則出現(xiàn)輸出參數(shù)的值,于有無return無關(guān)
--------------------3.獲得存儲過程的返回值--通過程序獲得
---------------------------SqlParameter[] cmdParms = {..,new SqlParameter(“@return”,SqlDbType.Int)};cmdParms[cmdParms.Length1].Direction = ParameterDirection.Output或者 cmdParms[cmdParms.Length1].Value;
分類: asp.net
第五篇:個人主要優(yōu)缺點總結(jié)
個人主要優(yōu)缺點總結(jié)
缺點讓你弄丟自信,優(yōu)點讓你找回自信。下面是小編整理的個人主要優(yōu)缺點總結(jié)范文,希望對你有所幫助!
優(yōu)點:
1、我是一個比較實在的年輕人,對要做的事情很執(zhí)著。
2、不怕吃苦、不怕累、不怕臟。
3、做每件事情都有計劃,善于做筆記(我非常喜歡“PDCA”、“輕重緩急”)。
4、自己決定好的事情,我片刻不想停留,直至完成。
5、有責(zé)任心,勇于擔(dān)當(dāng)。
6、我喜歡和人交往,尊重別人。
7、我是一個很樂觀的年輕人,我喜歡幫助別人,這樣可以讓自己幸福。
8、善于學(xué)習(xí)身邊人的優(yōu)點。
9、注重思路,在辦公室里,我要求自己的辦公用品要整齊;在工作安排中,自己負(fù)責(zé)的事情要條理。
10、遇到問題不等不靠,我會積極的動腦子去解決。
11、喜歡收集和學(xué)習(xí)管理的知識。
缺點:
1、著急、性子急,做事情急于求成。
2、浮躁,做起事不夠沉穩(wěn)。
3、喜歡吃喝、抽煙,年輕人喝酒不上進(jìn),對自己的身體也不負(fù)責(zé)任。
4、有時候過于自信,認(rèn)為自己工作安排的很好,就貪睡。
5、在工作中,自己不主動學(xué)習(xí)外專業(yè)的知識。
6、語言表達(dá)能力欠缺。
7、組織和管理能力比較弱。
8、網(wǎng)絡(luò)占用了我晚上學(xué)習(xí)的時間,所以沒能好好利用時間來提高自己。
9、年輕經(jīng)驗不足,導(dǎo)致做某些工作效率低。
優(yōu)點:
1、做人真誠,做事認(rèn)真負(fù)責(zé)。
2、喜歡與人交往,善于組織策劃活動和項目。
3、積極務(wù)實,敢于主動承擔(dān)自己的責(zé)任。
4、能堅持。確定了正確方向,我就能把所有的力氣砸向那個方向。有執(zhí)行能力。
5、勤奮,善于學(xué)習(xí)自己感興趣的知識和事物。做事喜歡列個計劃,分出輕重緩急。
缺點:
1、性格方面的弱點,有時給自己壓力過大,急于求成,過猶不及。
2、在擔(dān)任團隊領(lǐng)導(dǎo)的時候,涉及到隊員的利益的時候,有時為隊員考慮的太多,導(dǎo)致做決定的時候會花比較多的時間。
3、不主動鍛煉身體,除了和朋友一起打籃球和其他球類運動。
4、工作起來,有時會忘記時間。昨天晚上就很晚睡,大概24:00過的樣子,一直忙省分行領(lǐng)導(dǎo)給的20xx屆新入行大學(xué)生培訓(xùn)電子雜志的工作。
5、在交朋友的時候,喜歡故事經(jīng)歷豐富的朋友,不喜歡朋友沒有故事,太平淡。
對未來職業(yè)生涯的展望和規(guī)劃
我,金融學(xué)和信息管理與信息系統(tǒng)雙學(xué)位畢業(yè),對金融有很濃厚的興趣。我有一個人生目標(biāo):做最有影響力的自己。它不是靠嘩眾取寵能夠得來的,而是需要不斷提升夢想的高度、拓展心靈的寬度、累積思想的厚度!我相信,我的人生目標(biāo)在以后的路上會一直影響我的職業(yè)生涯。
有了夢想還要有明確的規(guī)劃,更要有實際的行動。要記住仰望星空,更要在仰望星空的同時看看腳下,從本職做起、從小事做起、從細(xì)節(jié)做起,不斷努力跳躍并嘗試觸摸自己的夢想。我知道,我們每個人都會分到下邊分理處做柜臺,我贊同這種安排,我明白,銀行中幾乎所有的產(chǎn)品都是會通過柜臺面向我們的客戶,假如沒有柜員的鍛煉,我相信,把我們分到其他業(yè)務(wù)崗位,我們很難上手,因為我們少了在柜員崗的鍛煉,不熟悉業(yè)務(wù)和產(chǎn)品。相反,在我們經(jīng)歷了柜員崗的鍛煉后,再把我們分到其他崗位上,我相信,那時我們會更加的有自信,也能更好的完成工作。所以,我會珍惜在柜員崗的機會,鉚勁提升自身的業(yè)務(wù)能力,熟練掌握我們的產(chǎn)品。力爭做個業(yè)務(wù)骨干!這是我在柜員崗對自己一個總體要求!
在柜員崗夯實了業(yè)務(wù)和產(chǎn)品的基礎(chǔ)后,我目前的想法是進(jìn)公司業(yè)務(wù)部和銷售部門(理財和銷貸)工作。公司業(yè)務(wù)部很累,壓力很大,很有挑戰(zhàn),我清楚!但我相信自己的做事態(tài)度和能力,一定能夠勝任!我喜歡與人交往,做人真誠,也很想去銷售的部門工作,像理財和銷貸部門。這是目前根據(jù)我的興趣,結(jié)合自身的優(yōu)點給自己的未來一段時間的規(guī)劃。在以后的實際工作中,我會更理性的調(diào)整自己,進(jìn)一步全面發(fā)掘自己,找到最適合我的方向,然后努力地朝這個方向、目標(biāo)前進(jìn)。在前進(jìn)的過程中,不斷累積自己的知識,提升自己的能力,一如既往的堅持積極務(wù)實的工作態(tài)度,努力我完善自己的情商。我相信,當(dāng)有一天,夢想的高度、心靈的寬度,思想的厚度這三圍都豐滿了的時候,就會成就我的人生目標(biāo)--做“最有影響力的自己”!
1、做人真誠,做事認(rèn)真負(fù)責(zé)。
2、能堅持。確定了正確方向,我就能把所有的力氣砸向那個方向。有執(zhí)行能力。
3、勤奮,善于學(xué)習(xí)自己感興趣的知識和事物。做事喜歡列個計劃,分出輕重緩急。
4、喜歡與人交往,善于組織策劃活動和項目。
5、積極務(wù)實,敢于主動承擔(dān)自己的責(zé)任。(勵志天下)
個人優(yōu)缺點總結(jié):缺點
1、不主動鍛煉身體,除了和朋友一起打籃球和其他球類運動。
2、工作起來,有時會忘記時間。昨天晚上就很晚睡,大概24:00過的樣子,一直忙省分行領(lǐng)導(dǎo)給新入行大學(xué)生培訓(xùn)電子雜志的工作。
3、在交朋友的時候,喜歡故事經(jīng)歷豐富的朋友,不喜歡朋友沒有故事,太平淡。
4、性格方面的弱點,有時給自己壓力過大,急于求成,過猶不及。
5、在擔(dān)任團隊領(lǐng)導(dǎo)的時候,涉及到隊員的利益的時候,有時為隊員考慮的太多,導(dǎo)致做決定的時候會花比較多的時間。