㈠ sql server系統資料庫有哪些,它們各自的功能是哪些
Master資料庫
記錄Sql Server初始化信息、資料庫信息、登錄賬戶、系統配置設置等系統級別信息
Tempdb資料庫
保存操作數據時所創建的臨時表和臨時存儲過程
Model資料庫
保存資料庫模板。當創建一個空白資料庫時,可直接使用指定模板來創建
Msdb資料庫
用於給SQL Server代理提供必要的信息來運行調度警報、作業及記錄操作。同時也會記錄資料庫的備份和還原信息
Resource資料庫
保存Sql Server中所有系統對象,是一個只讀資料庫
(1)sqlserver存儲結構擴展閱讀:
主要特性:
(1)高性能設計,可充分利用WindowsNT的優勢。
(2)系統管理先進,支持Windows圖形化管理工具,支持本地和遠程的系統管理和配置。
(3)強壯的事務處理功能,採用各種方法保證數據的完整性。
(4)支持對稱多處理器結構、存儲過程、ODBC,並具有自主的SQL語言。 SQLServer以其內置的數據復制功能、強大的管理工具、與Internet的緊密集成和開放的系統結構為廣大的用戶、開發人員和系統集成商提供了一個出眾的資料庫平台。
㈡ sql server中怎樣用代碼創建存儲過程
打開SQL server management studio,連接到資料庫,展開想要創建的資料庫,找到【可編程性】->【存儲過程】的菜單
㈢ MS SQLserver 物理存儲
美國Microsoft公司推出的一種關系型資料庫系統。SQLServer是一個可擴展的、高性能的、為分布式客戶機/伺服器計算所設計的資料庫管理系統,實現了與WindowsNT的有機結合,提供了基於事務的企業級信息管理系統方案。
其主要特點如下:
(1)高性能設計,可充分利用WindowsNT的優勢。
(2)系統管理先進,支持Windows圖形化管理工具,支持本地和遠程的系統管理和配置。
(3)強壯的事務處理功能,採用各種方法保證數據的完整性。
(4)支持對稱多處理器結構、存儲過程、ODBC,並具有自主的SQL語言。 SQLServer以其內置的數據復制功能、強大的管理工具、與Internet的緊密集成和開放的系統結構為廣大的用戶、開發人員和系統集成商提供了一個出眾的資料庫平台
㈣ sqlserver 存儲二叉樹
看看數據表結構
表:Tree
current_id int (當前節點編號)
father_id int (父節點編號,如果是根節點,-1)
left_id int (左節點編號)
right_id int (右節點編號)
表:Node
Node_id int PK
Node_vaule nvarchar(100)
說明:Tree表是用來存儲樹型結構的,Node表是用來存儲節點內容的
其中Tree表的current_id與Node表的Node_id是一一對應的
至於遍歷的存儲過程是要完成什麼功能呢?
㈤ sqlserver里存儲過程怎麼調用存儲過程
sqlserver里調用存儲過程的具體操作步驟如下:
1、打開SQL Server Managment管理工具,新建一個表。
㈥ SQL資料庫中都是以表的形式存儲數據的嗎
SQLSERVER資料庫中數據存儲:
一:存儲文件類型
SQLSERVER有兩種數據存儲文件,分別是數據文件和日誌文件。
其中:數據文件是以8K(=8192Byte)的頁面(Page)作為存儲單元的。
而日誌文件是以日誌記錄作為存儲單元。本文只討論數據文件的存儲方式,不涉及到日誌文件存儲方式。
數據文件以頁面做為存儲單元存儲數據,要理解數據文件的存儲方式,必須了解SQLSERVER中定義的頁面類型種類。
二:頁面類型
SQLSERVER中頁面類型有8種,具體每種類型的詳細說明,見下圖:
用戶的數據一般存放在數據頁面中,由上圖可以看出,數據頁包含數據行中除 text、ntext 和 image 數據外的所有數據,text、ntext 和 image 數據存儲在單獨的頁中。那麼在一個數據頁面中,數據是如何存放,SQLSERVER又是根據什麼來定位頁面與頁面上的數據呢。要回答這個問題,有必要先了解數據頁面的具體結構。
三:數據頁面結構
在數據頁上,數據行緊接著頁首按順序放置。在頁尾有一個行偏移表。在行偏移表中,頁上的每一行都有一個條目,每個條目記錄那一行的第一個位元組與頁首的距離。行偏移表中的條目序列與頁中行的序列相反。數據頁面結構如下圖所示,下面將詳細解釋
其中:數據頁面頁首:96個位元組,保存著頁面的系統信息,如頁的類型、頁的可用空間量、擁有頁的對象的對象 ID 以及該頁面所屬於哪個物理文件。
數據區:對應於上圖中所有數據行的總區域,存放真正的數據,是以Slot為單位。一個Slot就是對應於一條數據記錄行,從0開始編號,以16進制反序保存,Slot0,Slot1....。
行偏移數組:用於記錄該數據頁面中每個Slot在數據頁面所處的相對位置,便於定位和檢索每個Slot在數據頁面中的位置,數組中每個記錄占兩個位元組。
四:存儲分配單位:盤區(擴展 Extend)
雖然SQLSERVER中數據文件存儲單位是頁面(Page),但實際SQLSERVE並不是為頁面為單位給數據分配空間,SQLSERVER默認的存儲分配單位是盤區。這樣做的主要原因是為了提高性能。為了避免頻繁的讀寫IO,在表或其它對象分配存儲空間,不是直接分配一個8K的頁面,而是以一個盤區(Extend)為存儲分配單位,一個盤區為8個頁面(=8*8K=64K)。
但是這樣做雖然減少了頻繁的IO讀寫,提高的資料庫性能,但卻導致出一個新問題,那就是在存儲那些只有少量數據,不足8K的對象,如果也是分配給一個盤區,就會存在存儲空間上的浪費,降低了空間分配效率。
為解決上述問題,SQLSERVER提供了一種解決方案,定義了兩種盤區類型,統一盤區和混合盤區。
其中:統一盤區只能存放同一個對象,該對象擁有這個盤區的所有頁面
混合盤區:由多個對象共同擁有該盤區。
在實際為對象分配存儲盤區時,為了提高空間利用率,默認的情況下,如果一個對象一開始大小小於8個頁面,就盡量放在混合盤區中,如果該對象大小增加到8個頁面後,SQLSERVER會為這個對象重新分配一個統一盤區。
為了能夠通過上述策略來實現為對象分配存儲盤區,SQLSERVER提供了GAM/SGAM機制來管理和維護數據文件的盤區信息。
㈦ sqlserver存儲過程
沒有表
結構
,給你寫個
思路
吧。
所有的
語句
都放在一個事務中,以保證數據的
一致性
。
Begin
transaction
a
declare
@amount
decimal(15,4)
select
@amount=sum(交易金額)
as
總金額
from
表
where
mt_plan
=
'00002'
and
txn_code
in
('201',
'219')
delete
表
where
mt_plan
=
'00002'
and
txn_code
in
('201',
'219')
insert
into
表(交易金額,備注,...)
values(@amount,
『取現利息』,...)
commit
transaction
a
請根據你的表結構做相應的修改。
㈧ sqlserver和oracle主要有什麼區別
1,oracle支持多種操作系統,sql server只支持windows。
2,oracle給dba更多的靈活性,可以根據實際情況調整參數,使你的應用的性能最佳,因而帶來一個缺點是很難上手;sql server則相反,當然很容易上手。
體系結構
oracle的文件體系結構為:
數據文件 .dbf(真實數據)
日誌文件 .rdo
控制文件 .ctl
參數文件 .ora
sql server的文件體系結構為:
.mdf (數據字典)
.ndf (數據文件)
.ldf (日誌文件)
www.2cto.com
oracle存儲結構:
在oracle里有兩個塊參數pctfree(填充因子)和pctused(復用因子),可控制塊確定塊本身何時有,何時沒有足夠的空間接受新信息(對塊的存儲情況的分析機制)
這樣可降低數據行連接與行遷移的可能性。塊的大小可設置(oltp塊和dss塊)
在oracle中,將連續的塊組成區,可動態分配區(區的分配可以是等額的也可以是自增長的)可減少空間分配次數
在oraclel里表可以分為多個段,段由多個區組成,每個段可指定分配在哪個表空間里(段的類型分為:數據段、索引段、回滾段、臨時段、cash段。oracle里還可對表進行分區,可按照用戶定義的業務規則、條件或規范,物理的分開磁碟上的數據。
這樣大大降低了磁碟爭用的可能性。
oracle有七個基本表空間:
·system表空間(存放數據字典和數據管理自身所需的信息)
·rbs回滾表空間
·temp臨時表空間
·tools互動式表空間
·users用戶默認表空間
·indx索引表空間
·dbsys福數據表空間
不同的數據分別放在不同的表空間(數據字典與真實數據分開存放),在oracle里基表(存儲系統參數信息)是加密存儲,任何人都無法訪問。只能通過用戶可視視圖查看。
sql server 存儲結構
以頁為最小分配單位,每個頁為8k(不可控制,缺乏對頁的存儲情況的分析機制),可將8個連續的頁的組成一個『擴展』,以進一步減少分配時所耗用的資源。(分配缺乏靈活性),在sql server里數據以表的方式存放,而表是存放在資料庫里。
sql server有五個基本資料庫: www.2cto.com
·master(數據字典)
·mode(存放樣版)
·tempdb(臨時資料庫)
·msdb(存放調度信息和日誌信息)
·pubs(示例資料庫)
真實數據與數據字典存放在一起。對系統參數信息無安全機制。
oracle登入管理:
·system/manager (初始帳戶)
·sys/change_on_nstall
·install/oracle(安裝帳戶)
·scott/tiger(示例資料庫,測試用)
在oracle里默認只有三個系統用戶,oracle是通過用戶登入。
sql server登入管理:
·sql server身份驗證
·windows 身份驗證
在sql server里是通過windows用戶帳戶或是用sql server身份驗證連接資料庫的。
sql不是一種語言,而是對oracle資料庫傳輸指令的一種方式。
sql中null既不是字元也不是數字,它是預設數據。oracle提供了nvl函數來解決。
oracle中的字元串連接為 string1‖string2 ,sql中為string1+string2.
集合操作:在sql中只有union(並操作),oracle中包含minus(差操作)、interect(交操作)、union(並操作)。
索引:sql的索引分為聚集索引和非聚集索引,還包括全文索引;
oracle的索引包括:b+樹索引,bitmap點陣圖索引,函數索引,反序索引,
主鍵索引,散列索引,本地索引。 www.2cto.com
oracle的數據類型比較復雜,有基本數據類型,衍生型,列對象型,表對象型,結構體型;
sql中的數據比較簡單,只有一些簡單的基本數據類型無法提供事務操作。
在sql中如果一個事務從開始執行到結束時了錯了,它就會回滾到開始之前;
在oracle中它採用的是定點回滾,就是該事務函數化和精確錯誤定位,用savepoint標記保存點,用rollback標記回滾錯誤的保存點。
在sql中循環只有while一種這用起來不靈活,在oracle中有多種循環(loop循環、while循環、for循環)。
在sql中游標的使用比較復雜,不能同時打開一個以上的游標,因為它只有一個全局變數@@fast_statues而且聲明游標也麻煩,關閉游標時也不清除內存的;oracle中游標是以提高速度全部統一的單項游標,可以允許多用戶非同步讀取,而且聲明比較簡單,就一句declare cursor游標名 is select 語句就可以了。
容錯機制:sql中的錯誤機制比較復雜,沒有提供錯誤描述;oracle中容錯類型有三種,一個是預定義錯誤,一個是非預定義錯誤,一個是用戶自定義,其中在自定義錯誤中它有兩個是在sql中不有的,那就是sqlcode 錯誤號、sqlerrm錯誤描述。
文件體系結構:sql中有.mdf(主要數據文件)、.ndf(擴展文件,可以有多個)、
.ldf(日誌文件,可以有多個,存放在聯機重做日誌數據,這里的日誌文件有一個缺點就是如果日誌文件已填小巧玲瓏的話,sql將自動停止運行並等待人工干預,所以要經常監控日誌的情況保證系統的穩定運行)。oracle中有.dbf(主要數據文件)、.rdo(日誌文件,用來做災難性的數據備份)、.ctl(控制文件,將資料庫的物理文件映射到了數據字典中的邏輯表空間和連機重做日誌文件上去,確保數據的一致性)、.ora(參數文件)。
sql只能是本機備份本機的資料庫,無法聯機備份,而且備份壓縮很低,佔用了大量空間;oracle提供了7種備份機制,具有聯機備份功能,有志門的備份機子。
oracle的日誌默認有3個,先寫入1號日誌,滿了後再寫入2號日誌,2號滿了再寫入3號日誌,3號滿了後oracle將自動備分1號日誌的內容,然後清空後寫入新的日誌信息,且oracle的日誌有多路復用功能,我們可以為日誌創建多個鏡像,把相同的日誌信息同時寫入多個日誌文件中,這樣可以防止磁碟損壞造成的數據丟失。
sql server對每個資料庫只能分配一個日誌文件。且當日誌填滿後,日誌將停止工作,等待人工干預,而無法自動重用。 www.2cto.com
oracle的控制文件記錄了資料庫文件的物理位置和有效性,在每次打開oracle系統都將自動對數據進行驗證,查看其有效性,防止數據的丟失,這體現了oracle對數據管理的嚴密性。
sql server無此安全機制,只用在使用到了資料庫的信息後,系統才去查找數據是否存在。
oracle的參數文件init.ora是可調的,既我們可以根據資料庫的規模調整oracle對系統資源的使用情況,以達到最合理的資源分配,讓oracle達到最佳的性能。
sql server的配置參數是內定的不可調整,它對系統資源的分配是固定的,不受擁護控制,因此無法同時處理大量用戶的需求,這限制了它只能作為中,小型資料庫。
oracle以塊為最小存儲單位,以區為單位分配空間,用戶可以根據需要自己定義塊的大小,且區可以按等額或遞增進行分配,這可以大大減少系統的i/o操作提高資料庫的性能。
sql server中以頁為單位或使用擴展類型以8頁為一單位進行空間分配而無法人工干預,當遇到頻繁存儲或大數據量存儲時,系統將頻繁進行i/o操作使工作效率低下。
oracle中的sql語句書寫規范且提供了完整的函數和數據類型。oracle提供了健全的錯誤機制,用戶可以輕松的獲得錯誤位置和錯誤原因而加以修改。用戶還可以自己定義所須的錯誤類型,用以檢查邏輯錯誤。oracle中對數據類型的轉換和游標的定義也十分方便。因此,我們對代碼的書寫和維護也比sql server方便許多。
sql server使用類c語言,不易維護和查看代碼。sql server包含的數據類型太少,無法定義結構體,數組,對象。sql server無法定義流程機制,類型轉換也極不方便,sql server中對游標定義十分復雜,且當用戶定義的多個游標同時打開時系統卻只有一個游標變數,這是sql server中一個嚴重的缺陷。
oracle中用戶可以根據數據需要在創建塊時定義填充因子(空閑空間的百分比)和復用因子(當塊的存儲數據所佔的空間下降到這個百分比之下時,塊才重新標記為可用)。用戶可以根據記錄變化頻率和數據量的大小設置合適的填充因子和空閑因子。
sql server只有填充因子,而它的定義與oracle剛好相反,它定義的是剩餘可用空間的百分比。而sql server中沒有復用因子,當頁中數據低於填充因子,但剩餘的空間已經不可能再插入新的數據,但頁還是標記為可用的,當系統要寫入新數據都要訪問這個頁而浪費時間,這種頁稱為廢頁,將使系統插入新數據時浪費大量時間查找可用的頁。
oracle在創建表時用戶可以精確定義數據存放的表空間,甚至可以把一張表分開存放在多個表空間中,這樣可以將數據量龐大的表按某些欄位分開存放,這將給查詢帶來極高的效率。
www.2cto.com
隨著信息技術的飛速發展,數據處理不僅在數量上要求越來越大,而且在質量上也要求越來越高。
操作系統的穩定對資料庫來說是十分緊要的,在資料庫可操作平台上,oracle可在所有主流平台上運行,oracle資料庫採用開放的策略目標,它使得客戶可以選擇一種最適合他們特定需要的解決方案。客戶可以利用很多種第三方應用程序、工具。對開發商來說是很大的支持。而sql server卻只能在windows上運行了,這個就顯得比較單調了,但sql sever在window平台上的表現,和windows操作系統的整體結合程度,使用方便性,和microsoft開發平台的整合性都比oracle強的很多。但windows操作系統的穩定性及可靠性大家是有目共睹的,再說microsoft公司的策略目標是將客戶都鎖定到windows平台的環境當中,只有隨著windows性能的改善,sql server才能進一步提高。從操作平台這點上oracle是完全優勝於sql server的了。
從資料上可以看到,oracle的安全認證獲得最高認證級別的iso標准認證,而sql server並沒有獲得什麼安全認證。這方面證明了oracle的安全性是高於sql server的。
購買一個產品,首先考慮的當然是產品的性能了,當考慮性能的同時當然少不了究竟要花多少錢在這產品也是個很關鍵的問題。要建立並運行一個資料庫系統。不僅僅包含最初購置軟體、硬體的費用,還包含了培訓及以後維護的費用。orcale資料庫的價格是遠比sql server資料庫要高,為什麼oracle資料庫比sql server資料庫價格上要高出那麼多,一方面oracle的初始花費相對較高,特別是在考慮工具軟體的時候,oracle很多工具軟體需要另外購買,與microsoft提供免費的sql server工具軟體相比,oracle更顯價格的不菲。但由於sql server只能在windows下運行的原因,普遍認為sql server資料庫的可靠性是比較差的。oracle的性能優勢體現在他的多用戶上,而sql server的性能優勢在多用戶上就顯得力不從心了。
操作上sql server明顯要比orcale簡單,如果你用過java和dotnet的開發平台,區別的基本就是oracle和sql server不同,oracle的界面基本是基於java的,大部分的工具是dos界面的,甚至sqlplus也是, sql server是跟vb一樣,全圖形界面,很少見到dos窗口。sql server中的企業管理器給用戶提供一個全圖形界面的集成管理控制台來集中管理多個伺服器。oracle也有自己的企業管理器,而且它的性能在某些方面甚至超過了sql server的企業管理器,但它安裝較為困難。
orcale資料庫和sql server資料庫那個更快?其實是一個很難答的問題,因為存在許多不定因素,包括處理類型、數據分布以及硬體基礎設施等。
sql server 2000是一個具備完全web支持的資料庫產品,提供了可擴展標記語言核心支持以及internet上和防火牆外進行查詢的能力,具有可伸縮性、靈活性、擴充性好,而且價格便宜等特點,而oracle則有著可靠安全性,速度比sql server快上百倍,但其價格在實施中卻比sql server它高出了幾百倍。
其實各行業考慮選擇那種資料庫,是由資料庫的特點以及根據自己的業務需求和基礎設施綜合考慮來決定的。