SQL存儲過程放在SQL資料庫中,1,因此在程序中調用的時候不必自己拼接sql語句。2,SQLSERVER會對存儲過程進行預編譯,因此速度快。3,在網路上不必傳輸冗長的SQL語句,而是直接調用存儲過程的名字,因此可以加快速度當然,在一些外包軟體開發中,是不允許使用存儲過程的。因為對方不可以把資料庫暴露給你,此時你只能使用SQL語句。不過國內的一些小型企業使用SQL存儲過程還是很流行的。因為程序代碼里不包含SQL語句,因此會資料庫會相對安全一些。
⑵ SQL連表查詢跟一個個表查詢那個快各有什麼優點和缺點
SQL鏈接表查詢稱為聯合查詢,表查詢是單個查詢。其區別和優點如下:
1.從發展效率的角度看:
聯合查詢是需要多個單查詢邏輯組合才能完成的查詢工作,聯合查詢只需要一個SQL就可以完成查詢工作,即將業務邏輯轉化為SQL,由資料庫來處理,相對來說,開發效率會更高。
2.從查詢效率來看:
單個查詢具有更好的可重用性,因此比聯合查詢更有效。
當讀取或寫入資料庫時,資料庫使用鎖機制來限制其他連接對其進行操作。由於聯邦查詢比單個查詢慢得多,它們會增加鎖爭用,因此單個查詢更好。
3.從邏輯結構層面來看,分層原則
關聯表示業務規則/邏輯。如果經常使用關聯查詢,就會將大量的業務規則和邏輯放入資料庫中執行,這將大大增加CPU、內存、IO等資源的消耗。
4.從資源利用的角度來看
在大多數情況下,並不是所有相關查詢的結果都得到了有效的使用。例如,後台管理的列表界面會顯示分頁、關聯查詢的結果集,只使用當前頁面的數據,而資料庫需要消耗額外的資源才能得到整個結果集。
5.從架構的可伸縮性的角度來看
大量的相關查詢將導致集中式資料庫體系結構難以轉化為分布式體系結構,可擴展性優化也難以實現。關聯查詢方便快捷,開發效率更高。
不使用關系查詢在體系結構級別上有很多優勢,但是它需要大量的系統分析、設計和開發功能。一般在互聯網行業,如用戶數量最好重視這方面。
由於數據量小,兩個查詢的效率基本沒有差別,但在實際應用中,需要根據數據量、業務復雜度等進行綜合評價。
⑶ Oracle資料庫和Sql server資料庫各有什麼優缺點
1.Oracle跨平台,SQL
Server只能運行在Windows上,而Windows能夠安裝的硬體是有限的,如Sun的Sparc伺服器不能安裝Windows,一些大型機、小型機也只能裝UNIX,在這些高端機器上就只能跑Oracle了,這註定了Oracle就是高端資料庫,而SQL
Server呢,中低端。
2.Oracle真正實現了行級鎖,SQL
Server也宣稱實現了行級鎖,但你實際去試,如果不加索引,其實是不行的。
3.Oracle因為有多版本數據的技術,讀寫操作不會相互等待,雖然SQL
Server
2005學習Oracle增加了snapshot機制,從而也引進了多版本數據(MySQL也有多版本數據機制,不能說一定是學習Oracle),但是實際效果感覺就是2個版本的數據,隔離級別為read
committed時候,讀寫不再相互等待,但是把隔離設置為Serializable還是會產生讀寫相互等待。
4.Oracle的事務日誌歸檔相當方便,而SQL
Server要用事務日誌備份來實現,而且還要配置自動作業,啟動agent服務。
5.Oracle的數據字典豐富,使得DBA容易判斷資料庫的各種情況,雖然SQL
Server
2005學習了Oracle的數據字典的特點,但從數量及方便程度上還是相差太多。個人感覺這是Oracle最人性化的地方。
6.Oracle的PL/SQL比SQL
Server的T-SQL功能強大很多。
7.Oracle的觸發器比SQL
Server的種類多幾種。
8.oracle的備份恢復原理相當簡單明了,備份就在操作系統上拷貝數據文件好了,恢復呢,再拷貝回來,數據是舊的,不怕,應用重做日誌好了。SQLServer呢,雖然原理在本質上還是這些,但操作起來麻煩多了,麻煩到讓你體會不到其本質。
9.Oracle資料庫啟動可以有多個階段,使得DBA可以在不同的情況下,通過啟動到特定的階段解決一些特殊問題,而SQLServer只要服務一啟動,所有資料庫就都打開了。
10.SQLServer給人的感覺是簡單易用,但是我要說,如果你繼續向前走,就會發現SQLServer的體系結構相當復雜(注意我這里是說的復雜),大體還是沿襲的Sybase的體系結構,這種復雜結構,估計很難有根本性的改變,而Oracle呢,時間越長你越會覺得其體系結構嚴謹,雖然開始會感覺很難。我的一個比喻,SQLServer是傻瓜相機(就是那些一兩千的小數碼),Oracle是單反相機(40D,5D,D300),如果你是入門者,那用傻瓜相機好了,在各種環境下拍攝,基本都過得去,用單反,光圈、快門都要自己設定,反倒不如傻瓜相機的效果,如果你是高手了,那傻瓜相機就很難得心應手了。
11.Oracle的書籍一般都比較深,隨便一說就是一大批,EpertOracle、PracticalOracle8i、Cost-basedOracle,SQLServer呢,恐怕只有那套InsideSQLServer了,雖然SQLServer的書籍數量比Oracle的多的多(特別是在國內),但多數都是stepbystep的入門書。
12.對比SQL*Plus與sqlcmd(或2000的osql,6.5的isql),sqlcmd的功能是太簡陋,差得太多了。
13.SQLServer的最大優點就是和Windows結合緊密,易用,但是要注意事情都是兩面的,這些優點可能導致其致命的缺點,例如易用,使得搞SQLServer的人可以不求甚解,有時候不求甚解是沒問題的,但是有時候不求甚解可能會造成災難,特別是對搞資料庫的人來說。不好意思,本來要說SQLServer的優點呢,最後也成了缺點了。
⑷ SQL Server 2000與其它資料庫相比,有哪些優點和缺點
看你做什麼項目了,它屬於中小型資料庫:優點是使用方便,提供的函數較豐富,性能相對於ACESS、MySql等資料庫要強一些。缺點是:1.不是免費使用,當然你用盜版又不擔心版權問題,那沒的說,2.性能比不上大型資料庫,如SQL2008,ORACLE,DB2等等 3.對.net的支持不如SQL2005以上的版本好4.不能移植到LINUX中,只能在windows中運行 ,安全性也不夠高,經常被攻擊它的1433埠
⑸ 簡述sqlplus,sqldeveloper,oem等工具的優缺點
1,sqlplus 是oracle自帶的,語法都比較基礎。
優點:sql有錯,比較容易知道哪行錯誤。很明顯有提示。
缺點:抽出的數據多的話,排列比較亂,不容易看。
2,sqldeveloper,相當於是一個殼,但是內核還是sql/plus的基礎。
優點:這個就是被封裝過的,比如寫sql有高亮提示,關鍵字一看就知道了。
procere 裡面調用function,可以很容易跟蹤進去。
缺點:每開一個小窗口,就會讓後台連接一個session,如果多人同時使用,比如公司,這樣會導致session不夠用。個人喜歡用si objectbrowser
3,oem一般用於管理資料庫,其他沒試用過。
比如:表做成後,0 數據,全部做成一個oem資料庫。然後一旦資料庫有更新了。比如新加欄位,改備考,增加表,增加索引,等等。使用之前備份oem干凈資料庫,可以很快的對現有資料庫進行比較,做差分,知道哪些是這次新加的。只要和現有資料庫不一樣的地方統統能比較出來。當然也可以更新到別的資料庫里。
個人淺見,僅供參考。
⑹ sql server 資料庫存儲的優缺點
哥,您這個問題問的過於籠統了。
sql 系列,我感覺就是簡單實用而又異常強大。
相較於oracle就非常復雜。
考慮到收費以及盜版問題。
sql server 做得非常優秀。
系統優化數據量大的話還要考慮索引等問題。
其實現在技術越來越好了,隨便學到一門,都是可以類比的
⑺ access與SQL資料庫的各的優缺點!
Access是一種桌面資料庫,只適合數據量少的應用,在處理少量數據和單機訪問的資料庫時是很好的,效率也很高。但是它的同時訪問客戶端不能多於4個。access資料庫有一定的極限,如果數據達到100M左右,很容易造成伺服器iis假死,或者消耗掉伺服器的內存導致伺服器崩潰。
SQL Server是基於伺服器端的中型的資料庫,可以適合大容量數據的應用,在功能上管理上也要比Access要強得多。在處理海量數據的效率,後台開發的靈活性,可擴展性等方面強大。因為現在資料庫都使用標準的SQL語言對資料庫進行管理,所以如果是標准SQL語言,兩者基本上都可以通用的。SQL Server還有更多的擴展,可以用存儲過程,資料庫大小無極限限制。
⑻ SQL連表查詢跟一個個表查詢那個快各有什麼優點和缺點
SQL連表查詢稱為聯合查詢,一個個表查詢是單查詢。兩者的區別和優缺點如下:
1、從開發效率來看:
聯合查詢是需要多個單查詢進行邏輯組合才能完成的查詢的工作,聯合查詢僅僅需要一個SQL就可以完成查詢工作,即把業務邏輯放到了SQL中,由資料庫來處理,相對來說開發效率會比較高些。
2、從查詢效率來看:
單查詢的可重用性較高,所以效率相較之聯合查詢會更高。
在資料庫進行讀寫時,資料庫會用鎖機制,限制其他連接對其操作。由於聯合查詢查詢速度比單個查詢要慢很多,這樣聯合查詢會增加鎖的競爭關系,所以用單查詢會更好。
3、從邏輯架構分層原則來看
關聯關系代表了業務規則/邏輯,如果大量使用關聯查詢,就是把大量的業務規則和邏輯放在資料庫來執行了,資料庫消耗cpu、內存、io等資源會大大增加。
4、從資源利用率方面看
大部分場景下,並不是所有關聯查詢的結果都被有效使用了。例如後台管理的列表界面會分頁顯示,關聯查詢的結果集,只有當前頁的數據被使用,但資料庫需要消耗額外資源得到全部結果集。
5、從架構的伸縮性方面看
大量的關聯查詢會導致集中式的資料庫架構很難向分布式架構轉換,伸縮性方面的優化難度高。關聯查詢方便快速,開發效率比較好。
不使用關聯查詢在架構層面有很多優點,但對系統分析和設計、開發能力要求高。一般在互聯網行業等用戶數較多的情況下最好重視這方面。
題主的兩個查詢由於數據量不多,效率上基本沒有差別,但在實際應用中要根據數據量、業務復雜度等去綜合評估。
⑼ 存儲過程和sql語句的優缺點優點有哪些
存儲過程是一組予編譯的SQL語句
它的優點:1.允許模塊化程序設計,就是說只需要創建一次過程,以後在程序中就可以調用該過程任意次。
2.允許更快執行,如果某操作需要執行大量SQL語句或重復執行,存儲過程比SQL語句執行的要快。
3.減少網路流量,例如一個需要數百行的SQL代碼的操作有一條執行語句完成,不需要在網路中發送數百行代碼。
4.更好的安全機制,對於沒有許可權執行存儲過程的用戶,也可授權他們執行存儲過程。