本篇內(nèi)容介紹了“sqlserver表和庫的管理方法”的有關(guān)知識(shí),在實(shí)際案例的操作過程中,不少人都會(huì)遇到這樣的困境,接下來就讓小編帶領(lǐng)大家學(xué)習(xí)一下如何處理這些情況吧!希望大家仔細(xì)閱讀,能夠?qū)W有所成!
創(chuàng)新互聯(lián)建站專注于山城企業(yè)網(wǎng)站建設(shè),成都響應(yīng)式網(wǎng)站建設(shè)公司,商城網(wǎng)站開發(fā)。山城網(wǎng)站建設(shè)公司,為山城等地區(qū)提供建站服務(wù)。全流程按需定制網(wǎng)站,專業(yè)設(shè)計(jì),全程項(xiàng)目跟蹤,創(chuàng)新互聯(lián)建站專業(yè)和態(tài)度為您提供的服務(wù)數(shù)據(jù)庫在磁盤上是以文件為單位存儲(chǔ)的,由數(shù)據(jù)文件和事物日志文件組成。一個(gè)數(shù)據(jù)庫至少應(yīng)該包含一個(gè)數(shù)據(jù)文件和一個(gè)事物日志文件。
數(shù)據(jù)庫創(chuàng)建在物理介質(zhì)(磁盤)上的一個(gè)或多個(gè)文件上,它預(yù)先分配了被數(shù)據(jù)和事物日志所要適用的物理存儲(chǔ)空間。存儲(chǔ)數(shù)據(jù)的文件叫做數(shù)據(jù)文件,數(shù)據(jù)文件包含數(shù)據(jù)和對象,如表和索引。存儲(chǔ)事物日志的文件叫做事物日志文件(又稱日志文件)。
sql server 2008 R2數(shù)據(jù)庫有一下類型的文件
1. 主數(shù)據(jù)文件
2. 輔數(shù)據(jù)文件
3. 事物日志文件
4. 文件流
舉例說明
--創(chuàng)建數(shù)據(jù)庫
create database schoolDB
go
use schoolDB
go
這樣創(chuàng)建完的數(shù)據(jù)庫只有一個(gè)數(shù)據(jù)文件和一個(gè)事物日志文件,查看方式在創(chuàng)建的schoolDB上右鍵選擇“屬性”--“文件”
可以在界面中單擊“添加”增加新的數(shù)據(jù)文件schooldb2,以后再schooldb數(shù)據(jù)庫中創(chuàng)建新的表,表中的數(shù)據(jù)就會(huì)存放在schooldb和schoolDB2數(shù)據(jù)文件中。
數(shù)據(jù)文件在數(shù)據(jù)庫中存放的時(shí)候都有標(biāo)識(shí),我們可以通過sp_helpdb schoolDB
數(shù)據(jù)文件結(jié)構(gòu)
數(shù)據(jù)文件1和數(shù)據(jù)文件3的結(jié)構(gòu)如果所示:
數(shù)據(jù)文件由64kb大小的區(qū)(extend)組成的,每個(gè)區(qū)由8個(gè)8KB的連續(xù)的頁組成的。
sqlserver所能識(shí)別的最小存儲(chǔ)單元被稱為頁,一個(gè)頁的大小是8KB,是sql server 存儲(chǔ)數(shù)據(jù)的單位。
在數(shù)據(jù)庫中一頁的大小是8KB,在計(jì)算機(jī)中1KB就是1024,所以1頁可以存放1024*8=8192個(gè)字節(jié)
如何根據(jù)表的記錄數(shù)量估算占用的磁盤空間
1.先算一個(gè)表中一行有多少個(gè)字節(jié),例如學(xué)號字段6個(gè)字節(jié),姓名字段8個(gè)字節(jié),出生日期字段多少個(gè)字節(jié)
2.算一個(gè)頁能夠存多少行
3.數(shù)據(jù)庫中的表每天增加多少行記錄,就能夠算出每天要增加多少硬盤空間,這樣就可根據(jù)數(shù)據(jù)量估算規(guī)劃多大的空間。
在數(shù)據(jù)庫中創(chuàng)建一張Tstudent表
create TABLE TStudent (
StudentID varchar(10) NOT NULL,
Sname varchar(10) DEFAULT NULL,
sex char(2) DEFAULT NULL,
cardID varchar(20) DEFAULT NULL,
Birthday datetime DEFAULT NULL,
Email varchar(40) DEFAULT NULL,
Class varchar(20) DEFAULT NULL,
enterTime datetime DEFAULT NULL
)
go
10個(gè)字節(jié)+10個(gè)字節(jié)+2個(gè)字節(jié)+20字節(jié)+8字節(jié)+40字節(jié)+20字節(jié)+8個(gè)字節(jié)=118字節(jié)
Tstudent表的一個(gè)行有118個(gè)字節(jié)
如果每天增加10000條記錄,10000條記錄占多少頁?
1頁可以存放1024*8=8192個(gè)字節(jié),拋去標(biāo)頭96字節(jié),真正存放的字節(jié)數(shù)就8192-96=8096字節(jié)。
一頁能存8096字節(jié),一頁能夠存8096/118=68條記錄
10000行有多少頁?10000/68=148(頁)
一頁是8KB,148*8==1184KB
在Tstudent表中存放10000條記錄需要預(yù)備出來1MB多的磁盤空間。這樣就可以根據(jù)每天增加的記錄數(shù),合理規(guī)劃好磁盤空間了。
現(xiàn)在Tstudent表中還沒有插入任何記錄,所以占用了0頁的數(shù)據(jù)
提供查看數(shù)據(jù)文件頁數(shù)的命令
select OBJECT_NAME(i.object_id) as 表名,data_pages as 數(shù)據(jù)頁數(shù)
from sys.indexes as i
join sys.partitions as p ON p.object_id=i.object_id and p.index_id=i.index_id
join sys.allocation_units as a ON a.container_id=p.partition_id
where i.object_id=object_id('dbo.TStudent')
執(zhí)行教學(xué)環(huán)境中的存儲(chǔ)過程,添加10000條記錄
這個(gè)頁數(shù)和我們剛才算出來的有些差距,這是正常的,每一頁可能并沒有插入68條記錄。
1.1. 事物日志
事物是一個(gè)或多個(gè)T-SQL語句的集合,事物有一個(gè)特性:要么執(zhí)行成功,要么執(zhí)行失敗。每個(gè)sql server數(shù)據(jù)庫都具有事物日志,用于記錄所有事物的SQL語句。當(dāng)發(fā)生數(shù)據(jù)災(zāi)難時(shí)候,通過事物日志記錄的T-SQL語句可以恢復(fù)數(shù)據(jù)庫。
如果系統(tǒng)出現(xiàn)故障,sql server將使用事物日志重做(前滾)所有已確認(rèn)的事物,撤銷(回滾)所有未完成的事物。1.1. 創(chuàng)建數(shù)據(jù)庫(擴(kuò)展/收縮)
使用圖形界面創(chuàng)建數(shù)據(jù)庫,在對象資源管理器中,右擊“數(shù)據(jù)庫”節(jié)點(diǎn),在彈出的快捷菜單中選擇“新建數(shù)據(jù)庫”命令,打開“新建數(shù)據(jù)庫”窗口,設(shè)置數(shù)據(jù)庫名稱為“class”,制定數(shù)據(jù)庫的所有者,默認(rèn)創(chuàng)建數(shù)據(jù)庫的用戶將成為該數(shù)據(jù)庫的所有者。主數(shù)據(jù)文件初始值為3mb,自動(dòng)增長值為1mb,當(dāng)數(shù)據(jù)文件或日志文件空間使用完之后,會(huì)根據(jù)設(shè)定的自動(dòng)增長值增大文件的容量。
在路徑列中可以設(shè)置數(shù)據(jù)文件和日志文件的保存路徑。單擊“確定”之后一個(gè)新的數(shù)據(jù)庫就建立成功了,隨之會(huì)生成兩個(gè)文件一個(gè)是包含數(shù)據(jù)文件的.mdf,一個(gè)是包含日志信息的.ldf文件。
創(chuàng)建數(shù)據(jù)庫之前,必須先確定數(shù)據(jù)庫的名稱,所有者(創(chuàng)建數(shù)據(jù)庫的用戶),大小以及存儲(chǔ)該數(shù)據(jù)文件和事物日志文件的位置。
如果要對數(shù)據(jù)庫做數(shù)據(jù)庫級別的設(shè)置
在數(shù)據(jù)庫屬性中選擇“選項(xiàng)”,在右側(cè)可以修改數(shù)據(jù)庫相關(guān)的屬性。
當(dāng)數(shù)據(jù)庫中的數(shù)據(jù)文件和日志文件被充滿時(shí)候,需要為數(shù)據(jù)文件和日志文件分配更多的空間。sql server 可以根據(jù)在新建數(shù)據(jù)庫時(shí)定義的增長參數(shù)自動(dòng)擴(kuò)展數(shù)據(jù)庫,也可以通過在現(xiàn)有的數(shù)據(jù)文件上分配更多的文件空間,或者在另一個(gè)新的數(shù)據(jù)文件上分配空間來手動(dòng)擴(kuò)展數(shù)據(jù)庫。
擴(kuò)展數(shù)據(jù)庫時(shí),必須使數(shù)據(jù)庫的容量至少增加1mb,還可以指定允許文件增長到的大值,這樣可以防止文件無限制的增長,導(dǎo)致用盡整個(gè)磁盤空間。
舉例說明:
將class數(shù)據(jù)庫的class數(shù)據(jù)文件大小設(shè)置為100MB,不自動(dòng)增長,然后添加一個(gè)新的數(shù)據(jù)文件,文件名為“class1”,初始文件大小設(shè)置為“50MB”,自動(dòng)增長,大文件大小設(shè)置為“500MB”
在對象資源管理器中,右擊class數(shù)據(jù)庫,在彈出的快捷菜單中選擇“屬性”命令,打開“數(shù)據(jù)庫屬性-class”窗口,在“數(shù)據(jù)庫屬性-class”窗口的“選擇頁”中選擇“文件”選項(xiàng),打開“文件”選擇頁
數(shù)據(jù)庫在使用一段時(shí)間后,時(shí)常會(huì)因?yàn)閿?shù)據(jù)刪除而造成數(shù)據(jù)庫中空閑空間增多的情況,這時(shí)就需要減少分配給數(shù)據(jù)庫文件和事物日志文件的磁盤空間,以免浪費(fèi)磁盤空間。當(dāng)數(shù)據(jù)庫中沒有數(shù)據(jù)時(shí),可以修改數(shù)據(jù)庫文件屬性,直接改變其占用空間,但是當(dāng)數(shù)據(jù)庫中有數(shù)據(jù)時(shí),這樣做會(huì)破壞數(shù)據(jù)庫中的數(shù)據(jù),因此需要使用收縮的方式來縮減數(shù)據(jù)庫空間。
數(shù)據(jù)庫中的每個(gè)文件都可以通過刪除未使用的空間的方法來減小,SQL server允許通過縮小數(shù)據(jù)庫,把不使用的空間釋放出來,數(shù)據(jù)文件和日志文件都可以收縮??梢圆捎檬謩?dòng)收縮和自動(dòng)收縮數(shù)據(jù)庫。
手動(dòng)收縮數(shù)據(jù)庫的方法
從圖中可以看出來即可以選擇收縮數(shù)據(jù)庫,也可以選擇單獨(dú)收縮某個(gè)數(shù)據(jù)文件。
收縮數(shù)據(jù)庫:
在收縮數(shù)據(jù)庫時(shí),無法將整個(gè)數(shù)據(jù)庫收縮到比初始大小更小,如果數(shù)據(jù)庫創(chuàng)建時(shí)的大小是10mb,后來增長到10mb,則該數(shù)據(jù)庫最小只能收縮到10mb,即使已經(jīng)刪除了所有數(shù)據(jù)也是10mb。但是收縮文件時(shí),可以將數(shù)據(jù)庫文件收縮得比其初始大小更小
收縮數(shù)據(jù)文件
選擇--“任務(wù)”--“收縮”--“文件”命令,打開收縮文件對話框
在“文件類型”下拉列表框中選擇“數(shù)據(jù)”選項(xiàng),也可以在這里選擇收縮日志文件?!碑?dāng)前分配的空間“選項(xiàng)和”可用空間“選項(xiàng)顯示了該文件的占用空間,使用空間和收縮的百分比。
釋放未使用的空間:將釋放文件中所有未使用的空間,并將文件收縮到上次分配的大小,這樣將減小文件大小,但不移動(dòng)任何數(shù)據(jù)。
在釋放未使用空間前重新組織頁:將釋放文件中所有未使用的空間,并嘗試重新定位到未分配的空間。這里需要指定”將文件收縮到“選項(xiàng)的值。
通過將數(shù)據(jù)遷移到同一文件組中的其他文件來清空文件:將指定文件中所有數(shù)據(jù)遷移至同一文件組中的其他文件中,然后可以刪除空文件。
根據(jù)需要確定選項(xiàng),然后單擊“確定”,執(zhí)行收縮操作。
自動(dòng)收縮數(shù)據(jù)庫
可以通過設(shè)置“數(shù)據(jù)庫屬性--class”窗口中的“選項(xiàng)”選擇頁中的“自動(dòng)收縮”選項(xiàng)參數(shù)來實(shí)現(xiàn)自動(dòng)收縮功能。將“自動(dòng)收縮”選項(xiàng)設(shè)置為“true”后,將自動(dòng)收縮可用空間的數(shù)據(jù)庫。
“sqlserver表和庫的管理方法”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識(shí)可以關(guān)注創(chuàng)新互聯(lián)網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實(shí)用文章!
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。
當(dāng)前題目:sqlserver表和庫的管理方法-創(chuàng)新互聯(lián)
URL網(wǎng)址:http://jinyejixie.com/article24/jecce.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供企業(yè)建站、品牌網(wǎng)站設(shè)計(jì)、微信小程序、定制網(wǎng)站、面包屑導(dǎo)航、云服務(wù)器
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容