偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

SQL Server 2008數(shù)據(jù)庫學(xué)習(xí)筆記

數(shù)據(jù)庫 SQL Server
本文我們對(duì)SQL Server 2008數(shù)據(jù)存儲(chǔ)體系結(jié)構(gòu)、表分區(qū)以及面向查詢索引的索引策略進(jìn)行了總結(jié),希望能夠?qū)δ兴鶐椭?/div>

近幾年來,SQL Server 2008數(shù)據(jù)庫由于其操作簡(jiǎn)單、功能強(qiáng)大已經(jīng)被越來越多的人使用。對(duì)于初學(xué)者來說,學(xué)習(xí)SQL Server 2008時(shí)會(huì)或多或少的存在一些困惑,本文我們總結(jié)了一些SQL Server 2008數(shù)據(jù)庫的一些知識(shí),希望能夠?qū)δ兴鶐椭?/p>

SQL SERVER數(shù)據(jù)存儲(chǔ)體系結(jié)構(gòu)

SQL SERVER 把數(shù)據(jù)存儲(chǔ)在磁盤上,但為了提高性能和完整性,它優(yōu)化了磁盤結(jié)構(gòu)的格式,磁盤上的數(shù)據(jù)是最近一次由內(nèi)存刷新到磁盤上的狀態(tài).內(nèi)存數(shù)據(jù)是最新的,數(shù)據(jù)修改一般是先在內(nèi)存中進(jìn)行,而不是直接寫入到磁盤.

物理數(shù)據(jù)結(jié)構(gòu)

一個(gè)數(shù)據(jù)庫至少有一個(gè)數(shù)據(jù)文件與事務(wù)日志文件.

數(shù)據(jù)文件存儲(chǔ)數(shù)據(jù)庫的所有信息,包括數(shù)據(jù)值,索引和配置數(shù)據(jù)和可編程對(duì)象.事務(wù)日志文件提供一個(gè)對(duì)數(shù)據(jù)庫所有修改的持久記錄.SQL Server采用預(yù)寫的修改過程,即所有的修改在寫入數(shù)據(jù)庫之前都必須先寫進(jìn)事務(wù)日志.這些日志使各種數(shù)據(jù)恢復(fù)和完整性功能得以實(shí)現(xiàn)。

8k的塊來組織,稱為頁面.8個(gè)頁面又被組織為區(qū).

數(shù)據(jù)頁面:數(shù)據(jù)頁面存儲(chǔ)所有的數(shù)據(jù)值,但不包含那些大值類型,如text,ntext,xml,varchar(max).

索引頁面:存儲(chǔ)聚集索引條目和非聚集索引條目.

大型對(duì)象頁面:由于SQL Server數(shù)據(jù)行不能跨越頁面,所以大型數(shù)據(jù)值必須通過指針放到其他地方,指向存放數(shù)據(jù)條目的大型數(shù)據(jù)頁面.Varchar類似的類型會(huì)根據(jù)大小動(dòng)態(tài)地在數(shù)據(jù)頁面與大型對(duì)象頁面轉(zhuǎn)換.

其他頁面:GAM SGAM PFS等,存儲(chǔ)頁與區(qū)分配使用情況的頁面.

SGAM專門監(jiān)控混合區(qū),用一位來標(biāo)識(shí)混合區(qū)是否還有空閑頁面.

內(nèi)存體系結(jié)構(gòu)

存儲(chǔ)數(shù)據(jù)的內(nèi)存組織結(jié)構(gòu),也叫數(shù)據(jù)緩存或緩沖緩存.類似于物理磁盤的組織結(jié)構(gòu),內(nèi)存組織成8KB單元大小的緩沖池來存儲(chǔ)數(shù)據(jù)頁面.

客戶端工作站向SQL Server提交一個(gè)查詢,首先解析優(yōu)化查詢,并編譯成數(shù)據(jù)引擎可遵循的查詢計(jì)劃,嘗試定位到內(nèi)存緩沖區(qū)中的頁,提取必須的數(shù)據(jù)值,然后以一個(gè)表格式數(shù)據(jù)流(TDS)返回給客戶端,如果不在緩沖區(qū)中,則會(huì)產(chǎn)生一個(gè)I/O請(qǐng)求去磁盤讀取一個(gè)頁面到內(nèi)存中.

內(nèi)存緩沖區(qū)有三種狀態(tài):空閑,可用與臟的.

需要明白的是SQL Server的IO,都是通過WINDOWS來執(zhí)行的,所有的硬件也是通過windows來管理的,SQL Server通過OS來處理,本身不直接管理.

表分區(qū)

1.創(chuàng)建分區(qū)函數(shù)

 

  1. CREATE PARTITION FUNCTION DATEPARTITION(DATETIME)  
  2.  
  3. AS RANGE RIGHT  
  4.  
  5. FOR VALUES ('01/01/2007','01/01/2008') 

 

這個(gè)示例分了三個(gè)區(qū),一個(gè)是2007/01/01之前的數(shù)據(jù),不包含這一天.然后是2007/01/01到2008/01/01(不包含)之間的數(shù)據(jù),然后是2008/01/01及其以后的數(shù)據(jù)。

2.創(chuàng)建分區(qū)方案

 

  1. CREATE PARTITION SCHEME dateScheme  
  2.  
  3. AS PARTITION DATEPARTITION  
  4.  
  5. TO ([FG1],[FG2],[PRIMARY])  
  6.  
  7. GO 

 

分區(qū)方案末端的文件組表示分區(qū)將放置在哪里.

3.創(chuàng)建分區(qū)表

 

  1. CREATE TABLE partitiontable  
  2.  
  3. (id INT NOT NULL IDENTITY(1,1),  
  4.  
  5. datevalue DATETIME NOT NULL)  
  6.  
  7. ON dateScheme(DATEVALUE) 

 

插入測(cè)試數(shù)據(jù)后并查看

 

  1. INSERT INTO  partitiontable (datevalue) VALUES('2006-6-6 12:00:00')  
  2.  
  3. INSERT INTO  partitiontable (datevalue) VALUES('2007-6-6 12:00:00')  
  4.  
  5. INSERT INTO  partitiontable (datevalue) VALUES('2008-6-6 12:00:00') 

 

查看:

 

  1. SELECT   
  2.  
  3. partition_id,  
  4.  
  5. PARTITION_number,  
  6.  
  7. ROWS  
  8.  
  9. FROM sys.partitions  
  10.  
  11. WHERE object_idobject_id=object_id('partitiontable') 

 

面向查詢索引的索引策略

表的存儲(chǔ)HOBT,根據(jù)是否有索引來決定。

在堆中查詢數(shù)據(jù)的基本方式是執(zhí)行全表掃描,表是基于數(shù)據(jù)頁存儲(chǔ)的,因此表掃描就是對(duì)掃描存儲(chǔ)該表的數(shù)據(jù)頁,并從中提取所需的數(shù)據(jù)。這表明堆上進(jìn)行數(shù)據(jù)查詢的I/O開銷應(yīng)該與對(duì)應(yīng)的數(shù)據(jù)頁數(shù)基本相當(dāng)。

我們應(yīng)該創(chuàng)建什么樣的索引呢?創(chuàng)建查詢優(yōu)化器實(shí)際會(huì)使用的索引,創(chuàng)建能減少I/O的索引。

相對(duì)于響應(yīng)時(shí)間,優(yōu)化器更關(guān)注于吞吐量,優(yōu)化器使用靜態(tài)的統(tǒng)計(jì)數(shù)據(jù),必要時(shí)使用手動(dòng)更新,UPDATE STATISTICS即可刷新需要的統(tǒng)計(jì)頁。優(yōu)化器需要結(jié)構(gòu)良好的查詢。SQL SERVER 對(duì)每個(gè)表只使用一個(gè)索引(有例外)。

關(guān)于SQL Server 2008數(shù)據(jù)庫的知識(shí)就介紹到這里了,希望本次的介紹能夠?qū)δ兴斋@!

【編輯推薦】

  1. SQL Server 2005數(shù)據(jù)庫nolock使用詳解
  2. SQL Server 2005無法連接到本地服務(wù)器的解決
  3. SQL Server如何查詢當(dāng)前服務(wù)器有多少連接請(qǐng)求
  4. SQL Server通過整理索引碎片和重建索引提高速度
  5. SQL Server 2008安裝無法通過性能計(jì)數(shù)器一致性的解決
責(zé)任編輯:趙鵬 來源: 博客園
相關(guān)推薦

2011-08-19 15:13:36

SQL Server MDX查詢

2009-04-10 15:37:48

SQL Server2鏡像實(shí)施

2009-03-19 09:30:59

2010-08-27 09:59:51

SQL Server

2011-08-25 13:41:50

SQL Server 變更跟蹤

2011-09-07 15:11:31

SQL Server同步

2011-08-16 18:11:13

SQL Server 手動(dòng)提交

2011-08-09 17:24:21

SQL Server 數(shù)據(jù)庫日志

2021-03-24 14:50:00

SQLServer數(shù)據(jù)庫字符串

2010-07-15 17:28:50

SQL Server

2010-12-17 09:11:41

SQL Server

2011-07-25 12:56:44

SSMAOracle數(shù)據(jù)庫SQL Server

2021-03-19 07:12:23

SQL Server數(shù)據(jù)庫數(shù)據(jù)庫收縮

2017-03-15 16:45:02

SQL Server 數(shù)據(jù)庫分配用戶

2010-07-16 10:29:02

SQL Server

2010-07-06 13:22:13

SQL Server

2011-08-19 15:29:10

SQL Server 元數(shù)組

2010-07-06 14:00:51

SQL Server

2011-08-16 18:00:15

MyEclipseSQL Server

2010-07-22 14:52:00

SQL Server
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)