在SQL Server中,如何找到一張表或某個索引擁有那些頁面(page)呢? 有時候,我們在分析和研究(例如,死鎖分析)的時候還真有這樣的需求,那麼如何做呢? SQL Server 2012提供了一個無文檔的DMF(sys.dm_db_database_page_allocations)可以實現我... ...
在SQL Server中,如何找到一張表或某個索引擁有那些頁面(page)呢? 有時候,我們在分析和研究(例如,死鎖分析)的時候還真有這樣的需求,那麼如何做呢? SQL Server 2012提供了一個無文檔的DMF(sys.dm_db_database_page_allocations)可以實現我們的需求,sys.dm_db_database_page_allocations有下麵幾個參數:
· @DatabaseId: 資料庫的ID,可以用DB_ID()函數獲取某個資料庫或當前資料庫的ID
· @TableId: 表的ID。 我們可以使用OBJECT_ID()函數通過表名獲取表ID。 這是一個可選參數,如果將其作為NULL傳遞,則返回與資料庫中所有表的關聯頁面,當它為NULL時,將忽略接下來的兩個參數(即@IndexId和@PartionId)值
· @IndexId: 索引的索引ID。 我們可以使用sys.indexes目錄視圖來獲取索引ID。 它是一個可選參數,如果將其作為NULL傳遞,則返回所有索引關聯的頁面。
· @PartitionId: 分區的ID,它是一個可選參數,如果將其作為NULL傳遞,則返回與所有分區關聯的頁面.
· @Mode: 這是必填參數,有 “ LIMITED ” 或 “ DETAILED ” 兩個參數。 “ LIMITED ” 返回的信息較少。 “ DETAILED ” 會返回詳細/更多信息。顯然, “ DETAILED ” 模式會占用更多資源。
對於大表而言,如果選擇 “ DETAILED ” 參數,則消耗的資源和時間非常長,這個時候非常有必要選擇 “ LIMITED ” 參數。
為了更好的理解sys.dm_db_database_page_allocations輸出的數據,其實我們有必要簡單瞭解、回顧一下SQL Server中數據存儲的相關知識點。 這就涉及到頁(Page)和區(Extent)的概念了。SQL Server中數據存儲的基本單位是頁,磁碟I/O操作在頁級執行。也就是說,SQL Server讀取或寫入數據的最小單位就是以8 KB為單位的頁。
區是管理空間的基本單位。 一個區是8個物理上連續的頁的集合(64KB),所有頁都存儲在區中。區用來有效地管理頁所有頁都存儲在區中。 SQL Server中有兩種類型的區:
統一區: 由單個對象所有。區中的所有8頁只能有一個對象使用。
混合區: 最多可由8個對象共用。區中8頁中每一頁都可由不同的對象所有。但是一頁總是只能屬於一個對象。
SQL Server中頁也有很多類型,具體參考下麵表格。
註意事項:有些Page Type比較少見,暫時有些資料沒有補充完善
PAGE_TYPE
頁類型
頁類型碼
描述
1
Data Page
DATA_PAGE
數據頁(Data Page) 用來存放數據
l 堆中的數據頁
l 聚集索引中“葉子“頁
2
Index Page
INDEX_PAGE
索引頁( Index Page ) , 聚集索引的非葉子節點和非聚集索引的所有索引記錄
3
Text Mixed Page
TEXT_MIX_PAGE
一個文本頁面,其中包含小塊的 LOB 值以及 text tree 的內部,這些可以在索引或堆的同一分區中的 LOB 值之間共用。
A text page that holds small chunks of LOB values plus internal parts of text tree. These can be shared between LOB values in the same partition of an index or heap.
4
Text Tree Page
TEXT_TREE_PAGE
A text page that holds large chunks of LOB values from a single column value
7
Sort Page
在排序操作期間存儲中間結果的頁面
8
Global Allocation Map Page
GAM_PAGE
GAM 在數據文件中第三個頁上,文件和頁的編號為( 1:2 ),它用 bit 位來標識相應的區( extents )是否已經被分配。它差不多能標識約 64000 個區( 8k pages * 8 bits per byte ),也就是 4G 的空間,如果數據空間超過 4G ,那麼資料庫會用另外一個 GAM 頁來標識下一個 4G 空間
Bit=1 : 標識當前的區是空閑的,可以用來分配
Bit=0 : 標識當前的區已經被數據使用了
9
Shared Global Allocation Map Page
SGAM_PAGE
SGAM 在數據文件的第四個頁上,文件和頁編號為( 1:3 ),它的結構和 GAM 是一樣的,區別在於
您的分享是我們最大的動力!
-Advertisement-
更多相關文章
1.for 迴圈體 ; 2.seq 命令:產生從某個數到另外一個數之間的所有整數 ; 3.ping -c 參數 指定ping包的個數 ; 4.$? 執行上一個指令的返回值 (顯示最後命令的退出狀態。0表示沒有錯誤,其他任何值表明有錯誤) . ...
9 月初,我對 `python 爬蟲` 燃起興趣,但爬取到的數據多通道實時同步讀寫用`文件`並不方便,於是開始用起`mysql`。這篇筆記,我將整理近一個月的實戰中最常用到的 `mysql` 語句,同時也將涉及到如何在`python3`中與 `mysql` 實現數據交換。 ...
NN與2NN工作機制 思考:NameNode中的元數據是存儲在哪裡的? 假設存儲在NameNode節點的硬碟中,因為經常需要隨機訪問和響應客戶請求,必然效率太低,所以是存儲在記憶體中的 但是,如果存儲在記憶體中,一旦斷電,元數據丟失,整個集群便無法工作,因此會在硬碟中產生備份元數據的Fsimage 但是 ...
HDFS 基於流數據模式訪問和處理超大文件的需求而開發的。 低延時的數據訪問 HDFS是為高吞吐數據傳輸設計的,因此可能犧牲延時HBase更適合低延時的數據訪問。 大量小文件 文件的元數據保存在NameNode的記憶體中, 整個文件系統的文件數量會受限於NameNode的記憶體大小。 多方讀寫,需要任意 ...
ETL概述 ETL(Extraction-Transformation-Loading)是將業務系統的數據經過抽取、清洗轉換之後載入到數據倉庫的過程,目的是將企業中的分散、零亂、標準不統一的數據整合到一起,為企業的決策提供分析依據, ETL是BI(商業智能)項目重要的一個環節。 數據治理流程 數據挖 ...
本文主要記錄了在使用MySQL的過程中遇到錯誤代碼為1728的問題以及解決方案。 ...
1、平衡: 性能 容量 成本 2、高可用(主節點高可用): 節點 網路 磁碟 3、部署方案: Master和Standby Master分機部署 primaty segment 與miiror Segment分機部署 Segment Mirror 方案: Group Miirroring Spead ...
一周排行
-Advertisement-
移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...
Copyright ©2016 ZenDei.com All Rights Reserved.
廣告合作: info@ ZenDei.com