Microsoft SQL Server 2008/2012 Internals 一處疑問

來源:互聯網
上載者:User

標籤:blog   http   os   ar   sp   資料   div   2014   log   

Kalen Delaney 等著的深入解析 Microsoft SQL Server 系列,享有盛譽,深入研讀,是管窺深奧複雜之 SQL Server 的階梯與門徑。手頭有  Microsoft SQL Server 2008 Internals 影印版,也有  Microsoft SQL Server 2012 Internals 電子版,相互參照,輔之以實際演練,受益匪淺。 但有一處,與實際演練情形有所出入。Microsoft SQL Server 2008/2012 Internals 在 272 頁有這樣一段:  這段文字,2008 版與 2012 版完全一樣。文中說,如果向表中插入一行全空記錄(除主鍵之外,其他可空的 varchar 欄位全為 NULL): INSERT INTO NullVarchar (col1,col2,col3,col4,col5,col6,col7,col8,col9,col10)VALUES (NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); 則通過 DBCC PAGE 命令匯出的資料表中的實際儲存,其 NULL bitmap 域為全零。而實際的匯出結果如下(SQL Server 2012 Express):  其中,NULL bitmap 域的值為 0xfe07,實際等於 0x07fe = 0000011111111110。此值的意義為:除第一個欄位(主鍵欄位 id)不為空白外,其餘 10 個欄位全為空白。 而 Status Bits A = 0x10 = 00010000,其中 bit 4 = 1,說明記錄中含有 NULL bitmap 域。而 bit 5 = 0 則表示記錄中沒有可變長度欄位,也就是說,因為所有的可變長度欄位都為空白,則 SQL Server 索性就不儲存這些欄位了。 Kalen Delaney 的書 Microsoft SQL Server 2008/2012 Internals 中,NULL bitmap 域為什麼是全零? 

Microsoft SQL Server 2008/2012 Internals 一處疑問

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.