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

從物理結(jié)構(gòu)上談一談SQL Server數(shù)據(jù)庫(kù)的優(yōu)化

數(shù)據(jù)庫(kù) SQL Server
本文我們主要從物理結(jié)構(gòu)上介紹了SQL Server數(shù)據(jù)庫(kù)的優(yōu)化,即對(duì)SQL Server數(shù)據(jù)庫(kù)存儲(chǔ)頁(yè)的操作來(lái)優(yōu)化數(shù)據(jù)庫(kù),希望能夠?qū)δ兴鶐椭?/div>

我們知道,SQL Server中數(shù)據(jù)存儲(chǔ)的基本單位是頁(yè)。為數(shù)據(jù)庫(kù)中的數(shù)據(jù)文件(.mdf 或 .ndf)分配的磁盤(pán)空間可以從邏輯上劃分成頁(yè)(從 0 到 n 連續(xù)編號(hào))。磁盤(pán) I/O 操作在頁(yè)級(jí)執(zhí)行。也就是說(shuō),SQL Server 讀取或?qū)懭胨袛?shù)據(jù)頁(yè)。

平時(shí)在通過(guò)SQL Server Profiler 或者打開(kāi)Statistics IO 選項(xiàng)時(shí)看到物理讀,邏輯度的單位都是頁(yè)。

在SQL Server 中,頁(yè)的大小為8KB。這意味著SQL Server數(shù)據(jù)庫(kù)中每MB有128 頁(yè)。每頁(yè)的開(kāi)頭是96 字節(jié)的標(biāo)頭,用于存儲(chǔ)有關(guān)頁(yè)的系統(tǒng)信息。此信息包括頁(yè)碼、頁(yè)類型、頁(yè)的可用空間以及擁有該頁(yè)的對(duì)象的分配單元 ID。

下表說(shuō)明了SQL Server 數(shù)據(jù)庫(kù)的數(shù)據(jù)文件中所使用的頁(yè)類型。

頁(yè)類型 內(nèi)容

Data

當(dāng) text in row 設(shè)置為 ON 時(shí),包含除 text、 ntext、image、nvarchar(max)、varchar(max)、varbinary(max) 和 xml 數(shù)據(jù)之外的所有數(shù)據(jù)的數(shù)據(jù)行。

Index

索引條目。

Text/Image

大型對(duì)象數(shù)據(jù)類型:

  • text、 ntext、image、nvarchar(max)、varchar(max)、varbinary(max) 和 xml 數(shù)據(jù)。

     

數(shù)據(jù)行超過(guò) 8 KB 時(shí)為可變長(zhǎng)度數(shù)據(jù)類型列:

  • varchar、nvarchar、varbinary 和 sql_variant

     

Global Allocation Map、Shared Global Allocation Map

有關(guān)區(qū)是否分配的信息。

Page Free Space

有關(guān)頁(yè)分配和頁(yè)的可用空間的信息。

Index Allocation Map

有關(guān)每個(gè)分配單元中表或索引所使用的區(qū)的信息。

Bulk Changed Map

有關(guān)每個(gè)分配單元中自***一條 BACKUP LOG 語(yǔ)句之后的大容量操作所修改的區(qū)的信息。

Differential Changed Map

有關(guān)每個(gè)分配單元中自***一條 BACKUP DATABASE 語(yǔ)句之后更改的區(qū)的信息。

在數(shù)據(jù)頁(yè)上,數(shù)據(jù)行緊接著標(biāo)頭按順序放置。頁(yè)的末尾是行偏移表,對(duì)于頁(yè)中的每一行,每個(gè)行偏移表都包含一個(gè)條目。每個(gè)條目記錄對(duì)應(yīng)行的***個(gè)字節(jié)與頁(yè)首的距離。行偏移表中的條目的順序與頁(yè)中行的順序相反。

數(shù)據(jù)行存儲(chǔ)在頁(yè)上,超出頁(yè)大小如此。

2個(gè)原則:

表設(shè)計(jì):Row 要占用盡可能短的長(zhǎng)度,占用少的空間,讓一個(gè)page上存儲(chǔ)更多的row,這樣在相同的讀次數(shù)下,獲取到的數(shù)據(jù)就更多了。

查詢:Select的時(shí)候,別動(dòng)不動(dòng)就來(lái)個(gè)*,因?yàn)楫?dāng)row 中有Image,text等,或者本身變長(zhǎng)字段vchar等加起來(lái)的長(zhǎng)度超過(guò)了8k,就會(huì)需要去 

ROW_OVERFLOW_DATA 中去讀取一次。增加了讀的開(kāi)銷。當(dāng)然從網(wǎng)絡(luò)等開(kāi)銷來(lái)說(shuō)也不建議用* 。

關(guān)于SQL Server數(shù)據(jù)庫(kù)從存儲(chǔ)頁(yè)方面的優(yōu)化措施就介紹到這里了,希望本次的介紹能夠?qū)δ兴斋@!

【編輯推薦】

  1. SQL Server數(shù)據(jù)庫(kù)多表關(guān)聯(lián)匯總查詢的問(wèn)題解決
  2. 設(shè)置SQL Server數(shù)據(jù)庫(kù)AWE機(jī)制使其支持大內(nèi)存
  3. SQL Server 2008數(shù)據(jù)庫(kù)被標(biāo)記為可疑的解決方法
  4. SQL Server數(shù)據(jù)庫(kù)中FOR XML AUTO的使用詳解續(xù)
  5. SQL Server使用UNION代替OR提升查詢性能的實(shí)例
責(zé)任編輯:趙鵬 來(lái)源: 博客園
相關(guān)推薦

2011-07-28 09:49:04

Oracle數(shù)據(jù)庫(kù)服務(wù)Oracle實(shí)例

2011-07-26 15:47:01

SQL Server數(shù)外鍵約束

2021-11-23 09:45:26

架構(gòu)系統(tǒng)技術(shù)

2011-04-01 13:21:26

SQL ServerOracle數(shù)據(jù)庫(kù)查詢優(yōu)化

2022-07-04 10:51:27

數(shù)據(jù)中臺(tái)數(shù)據(jù)倉(cāng)庫(kù)

2011-08-22 12:01:36

SQL Server代碼優(yōu)化

2011-08-03 17:43:53

MySQL數(shù)據(jù)庫(kù)外鍵約束

2018-03-30 13:59:22

數(shù)據(jù)庫(kù)SQL語(yǔ)句性能優(yōu)化

2009-07-06 21:20:34

SQL Server數(shù)

2010-04-15 13:01:25

Oracel數(shù)據(jù)庫(kù)

2021-02-19 09:19:11

消息隊(duì)列場(chǎng)景

2010-07-01 14:18:09

SQL Server數(shù)

2011-03-28 17:12:36

sql server數(shù)優(yōu)化

2010-06-28 14:56:24

優(yōu)化SQL Serve

2010-07-08 17:33:21

SQL Server數(shù)

2010-07-06 16:24:53

SQL Server數(shù)

2011-03-08 08:49:55

MySQL優(yōu)化單機(jī)

2018-08-21 14:42:29

閃存存在問(wèn)題

2021-07-28 20:12:17

WindowsHeap內(nèi)存

2009-01-27 21:00:00

服務(wù)器數(shù)據(jù)庫(kù)SQL Server
點(diǎn)贊
收藏

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