{"id":2496,"date":"2014-07-23T20:30:45","date_gmt":"2014-07-24T00:30:45","guid":{"rendered":"http:\/\/sqlity.net\/en\/?p=2496"},"modified":"2014-11-13T13:31:58","modified_gmt":"2014-11-13T18:31:58","slug":"text-mix-page","status":"publish","type":"post","link":"https:\/\/sqlity.net\/en\/2496\/text-mix-page\/","title":{"rendered":"Page Type 3 &#8211; LOB Data Pages explained"},"content":{"rendered":"<div>\n<p>\nSQL Server stores all data in 8192-byte sized blocks called pages. Several types of pages are in use within a typical database. One particularly interesting group is formed by the type-3 pages or Large Object Pages.\n<\/p>\n<h3>LOB_DATA Allocation Units<\/h3>\n<p>\nMost data types in SQL Server take up no more than 8000 bytes of storage. However, there are a few data types, which allow for larger pieces of information to be stored. Examples include the <span class=\"tt\">VARCHAR(MAX)<\/span>, <span class=\"tt\">VARBINARY(MAX)<\/span> or <span class=\"tt\">XML<\/span> data types.\n<\/p>\n<p>\nNormal data pages that belong to a table are grouped in IN_ROW_DATA <a href=\"http:\/\/sqlity.net\/en\/2287\/allocation-unit\/\">allocation units<\/a>. However, if a value that is larger than 8000 bytes needs to be stored, SQL Server does not attempt to store it in those data pages anymore. It does not even store those values in the same allocation unit. Instead, Large Object data or LOB data is stored in special LOB_DATA allocation units.\n<\/p>\n<p>\nWhen a table is created that has columns with LOB data types, a second allocation unit is created automatically. Every time a row containing a large value is stored, the non-LOB values end up in a normal data page. For every LOB value, a pointer is written with the in row data. That pointer points to the actual value in a page that is part of the LOB_DATA allocation unit.\n<\/p>\n<p>\nEverything discussed in this article applies to single partitions. Every clustered or nonclustered index as well as every heap has at least one partition in SQL Server. If it is defined as \"partitioned\", it likely has more than one. Every partition has its own set of allocation units. (Check <a href=\"http:\/\/sqlity.net\/en\/2287\/allocation-unit\/\">here<\/a> for details.) So, when I talk about the allocation unit(s) of a table, I am really referring to the allocation units of every partition of every index or heap that is part of that table.\n<\/p>\n<p>\nLet us look at an example. First, we need to create a table with a LOB column:\n<\/p>\n<div>\n[sql]\nCREATE TABLE dbo.TableWithLob<br \/>\n(<br \/>\n  id INT IDENTITY(1,1) CONSTRAINT [PK:dbo.TableWithLob] PRIMARY KEY CLUSTERED,<br \/>\n  some_value INT,<br \/>\n  some_lob VARCHAR(MAX)<br \/>\n)<\/p>\n<p>GO<br \/>\nINSERT INTO dbo.TableWithLob(some_value)<br \/>\nVALUES(11),(13),(15),(17),(19);<br \/>\n[\/sql]\n<\/p><\/div>\n<p>\nThe SQL snippet creates a simple table with a <span class=\"tt\">VARCHAR(MAX)<\/span> column and inserts five rows into it. Note that in all those rows, the value of the <span class=\"tt\">some_lob<\/span> column is <span class=\"tt\">NULL<\/span>.\n<\/p>\n<p>\nIf we now take a look at the <span class=\"tt\">sys.allocation_units<\/span> catalog view, we can see that two allocation units are assigned to this table.\n<\/p>\n<div>\n[sql]\nSELECT OBJECT_SCHEMA_NAME(P.object_id) AS schema_name,<br \/>\n       OBJECT_NAME(P.object_id) AS table_name,<br \/>\n       I.name AS index_name,<br \/>\n       P.partition_number,<br \/>\n       P.rows,<br \/>\n       AU.allocation_unit_id,<br \/>\n       AU.type_desc AS allocation_unit_type,<br \/>\n       AU.used_pages,<br \/>\n       AU.data_pages,<br \/>\n       AU.total_pages<br \/>\n  FROM sys.allocation_units AS AU<br \/>\n  JOIN sys.partitions AS P<br \/>\n    ON P.partition_id = AU.container_id<br \/>\n  JOIN sys.indexes AS I<br \/>\n    ON P.index_id = I.index_id<br \/>\n   AND P.object_id = I.object_id<br \/>\n WHERE P.object_id = OBJECT_ID('dbo.TableWithLob');<br \/>\n[\/sql]\n<\/div>\n<p>\nThe first one is the <span class=\"tt\">IN_ROW_DATA<\/span> allocation unit that is part of every table. The second is an allocation unit of type <span class=\"tt\">LOB_DATA<\/span>. That allocation unit does not have any pages allocated to it yet, as all rows in the table have their <span class=\"tt\">some_lob<\/span> column set to <span class=\"tt\">NULL<\/span>.\n<\/p>\n<p>\n<a href=\"http:\/\/sqlity.net\/wp-content\/uploads\/2014\/07\/table_with_LOB_allocation_unit.jpg\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/sqlity.net\/wp-content\/uploads\/2014\/07\/table_with_LOB_allocation_unit.jpg\" alt=\"a table with a LOB_DATA allocation unit\" title=\"a table with a LOB_DATA allocation unit\" width=\"768\" height=\"468\" class=\"aligncenter size-full wp-image-2497\" srcset=\"https:\/\/sqlity.net\/wp-content\/uploads\/2014\/07\/table_with_LOB_allocation_unit.jpg 768w, https:\/\/sqlity.net\/wp-content\/uploads\/2014\/07\/table_with_LOB_allocation_unit-300x182.jpg 300w, https:\/\/sqlity.net\/wp-content\/uploads\/2014\/07\/table_with_LOB_allocation_unit-150x91.jpg 150w\" sizes=\"auto, (max-width: 768px) 100vw, 768px\" \/><\/a>\n<\/p>\n<h3>The Story of the TEXT MIX PAGE<\/h3>\n<p>\nOnce there is actual LOB data to store, it will get stored in that additional allocation unit in special pages. Those pages that hold the LOB values are pages of type 3. They are called TEXT MIX pages or just LOB pages. To confirm that, let us first look at the pages that belong to the example table in its current state. We can use the following query to get a list of all pages in our table:\n<\/p>\n<div>\n[sql]\nSELECT OBJECT_SCHEMA_NAME(P.object_id) AS schema_name,<br \/>\n       OBJECT_NAME(P.object_id) AS table_name,<br \/>\n       I.name AS index_name,<br \/>\n       P.partition_number,<br \/>\n       DDDPA.allocation_unit_id,<br \/>\n       DDDPA.allocation_unit_type_desc,<br \/>\n       DDDPA.allocated_page_file_id AS file_id,<br \/>\n       DDDPA.allocated_page_page_id AS page_id,<br \/>\n       DDDPA.page_type,<br \/>\n       DDDPA.page_type_desc,<br \/>\n       DDDPA.page_level<br \/>\n  FROM sys.dm_db_database_page_allocations(DB_ID(),OBJECT_ID('dbo.TableWithLob'),NULL,NULL,'DETAILED') AS DDDPA<br \/>\n  JOIN sys.allocation_units AS AU<br \/>\n    ON DDDPA.allocation_unit_id = AU.allocation_unit_id<br \/>\n  JOIN sys.partitions AS P<br \/>\n    ON P.partition_id = AU.container_id<br \/>\n  JOIN sys.indexes AS I<br \/>\n    ON P.index_id = I.index_id<br \/>\n   AND P.object_id = I.object_id<br \/>\n ORDER BY DDDPA.allocation_unit_id,DDDPA.allocated_page_file_id,DDDPA.allocated_page_page_id;<br \/>\n[\/sql]\n<\/div>\n<p>\nThe query is using the <a href=\"http:\/\/sqlity.net\/en\/2471\/sys-dm_db_database_page_allocations\/\">undocumented <span class=\"tt\">sys.dm_db_database_page_allocations<\/span> DMF<\/a> to get a list of all pages that belong to the different allocation units in our table. There are currently only two:\n<\/p>\n<p>\n<a href=\"http:\/\/sqlity.net\/wp-content\/uploads\/2014\/07\/one_data_page_in_use_in_data_allocation_unit.jpg\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/sqlity.net\/wp-content\/uploads\/2014\/07\/one_data_page_in_use_in_data_allocation_unit.jpg\" alt=\"an IN_ROW_DATA allocation unit with a single data page\" title=\"an IN_ROW_DATA allocation unit with a single data page\" width=\"768\" height=\"468\" class=\"aligncenter size-full wp-image-2498\" srcset=\"https:\/\/sqlity.net\/wp-content\/uploads\/2014\/07\/one_data_page_in_use_in_data_allocation_unit.jpg 768w, https:\/\/sqlity.net\/wp-content\/uploads\/2014\/07\/one_data_page_in_use_in_data_allocation_unit-300x182.jpg 300w, https:\/\/sqlity.net\/wp-content\/uploads\/2014\/07\/one_data_page_in_use_in_data_allocation_unit-150x91.jpg 150w\" sizes=\"auto, (max-width: 768px) 100vw, 768px\" \/><\/a>\n<\/p>\n<p>\nOne is a <a href=\"http:\/\/sqlity.net\/en\/2134\/row-offset-array\/\">normal data page<\/a> and the other one is an <a href=\"http:\/\/sqlity.net\/en\/2315\/index-allocation-map\/\">IAM page<\/a> that is used by SQL Server to keep track of all pages that belong to this allocation unit.\n<\/p>\n<p>\nIf we now change the value of the <span class=\"tt\">some_lob<\/span> column in a single row we can see that the value is stored in the <span class=\"tt\">LOB_DATA<\/span> allocation unit. For that, we are going to use this update statement:\n<\/p>\n<div>\n[sql]\nUPDATE dbo.TableWithLob SET<br \/>\n  some_lob = REPLICATE(CAST('X' AS VARCHAR(MAX)),8001)<br \/>\n WHERE id = 5;<br \/>\n[\/sql]\n<\/div>\n<p>\nAfter executing this statement, you can run the above query again to look at the pages that are now part of this table:\n<\/p>\n<p>\n<a href=\"http:\/\/sqlity.net\/wp-content\/uploads\/2014\/07\/one_LOB_page_in_use_in_LOB_allocation_unit.jpg\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/sqlity.net\/wp-content\/uploads\/2014\/07\/one_LOB_page_in_use_in_LOB_allocation_unit.jpg\" alt=\"a LOB_DATA allocation unit with a single TEXT_MIX_DATA page\" title=\"a LOB_DATA allocation unit with a single TEXT_MIX_DATA page\" width=\"768\" height=\"468\" class=\"aligncenter size-full wp-image-2499\" srcset=\"https:\/\/sqlity.net\/wp-content\/uploads\/2014\/07\/one_LOB_page_in_use_in_LOB_allocation_unit.jpg 768w, https:\/\/sqlity.net\/wp-content\/uploads\/2014\/07\/one_LOB_page_in_use_in_LOB_allocation_unit-300x182.jpg 300w, https:\/\/sqlity.net\/wp-content\/uploads\/2014\/07\/one_LOB_page_in_use_in_LOB_allocation_unit-150x91.jpg 150w\" sizes=\"auto, (max-width: 768px) 100vw, 768px\" \/><\/a>\n<\/p>\n<p>\nThe table now consists of four pages: The two pages that were there before, but also two new pages. Both new pages are in the <span class=\"tt\">LOB_DATA<\/span> allocation unit. SQL Server needs at least one IAM page in every allocation unit, to catalog the pages that are part of it. Therefore, one of the new pages is an IAM page. The other page is, as we expected, a <span class=\"tt\">TEXT_MIX_PAGE<\/span>.\n<\/p>\n<p>\nThe reason the page type is listed as a <span class=\"tt\">TEXT_MIX_PAGE<\/span> instead of a lob data page is likely to be found in the history of this data type. Before SQL Server 2005, the only two data types that could store LOB data were <span class=\"tt\">IMAGE<\/span> and <span class=\"tt\">TEXT<\/span>.\n<\/p>\n<h3>Summary<\/h3>\n<p>\nIn SQL Server, Large Object data is stored in special LOB data pages that live in separate LOB data allocation units. Those pages are of type 3 (<span class=\"tt\">TEXT_MIX_PAGE<\/span>). Any partition of any table or index that holds a column with a LOB data type automatically receives a <span class=\"tt\">LOB_DATA<\/span> allocation unit. That allocation unit stays empty until an actual large value is stored.\n<\/p>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>LOB data values in SQL Server are stored in separate allocation units in pages of type TEXT_MIX_PAGE. Read on and discover when these pages are used and how you can find out if your tables contain any pages of that type.<\/p>\n<p> <a href=\"https:\/\/sqlity.net\/en\/2496\/text-mix-page\/\">[more&#8230;]<\/a><\/p>\n","protected":false},"author":3,"featured_media":2499,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_feature_clip_id":0,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":false,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2},"jetpack_post_was_ever_published":false},"categories":[5,27,14,105],"tags":[155,107,15,108,109],"class_list":["post-2496","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-general","category-series","category-sql-server-internals","category-storage-wednesday","tag-iam-page","tag-page","tag-sql-server","tag-storage","tag-storage-engine"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.8 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Page Type 3 - LOB Data Pages explained - sqlity.net<\/title>\n<meta name=\"description\" content=\"LOB data values in SQL Server are stored in separate allocation units in pages of type TEXT_MIX_PAGE. Read on to get all the details.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/sqlity.net\/en\/2496\/text-mix-page\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Page Type 3 - LOB Data Pages explained - sqlity.net\" \/>\n<meta property=\"og:description\" content=\"LOB data values in SQL Server are stored in separate allocation units in pages of type TEXT_MIX_PAGE. Read on to get all the details.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/sqlity.net\/en\/2496\/text-mix-page\/\" \/>\n<meta property=\"og:site_name\" content=\"sqlity.net\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/sqlity.net\" \/>\n<meta property=\"article:published_time\" content=\"2014-07-24T00:30:45+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2014-11-13T18:31:58+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/sqlity.net\/wp-content\/uploads\/2014\/07\/one_LOB_page_in_use_in_LOB_allocation_unit.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"768\" \/>\n\t<meta property=\"og:image:height\" content=\"468\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Sebastian Meine\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@sqlity\" \/>\n<meta name=\"twitter:site\" content=\"@sqlity\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Sebastian Meine\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"6 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/sqlity.net\\\/en\\\/2496\\\/text-mix-page\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/sqlity.net\\\/en\\\/2496\\\/text-mix-page\\\/\"},\"author\":{\"name\":\"Sebastian Meine\",\"@id\":\"https:\\\/\\\/sqlity.net\\\/en\\\/#\\\/schema\\\/person\\\/bcffd8c572bc2f1bd10fdba80135e53c\"},\"headline\":\"Page Type 3 &#8211; LOB Data Pages explained\",\"datePublished\":\"2014-07-24T00:30:45+00:00\",\"dateModified\":\"2014-11-13T18:31:58+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/sqlity.net\\\/en\\\/2496\\\/text-mix-page\\\/\"},\"wordCount\":1165,\"commentCount\":1,\"image\":{\"@id\":\"https:\\\/\\\/sqlity.net\\\/en\\\/2496\\\/text-mix-page\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/sqlity.net\\\/wp-content\\\/uploads\\\/2014\\\/07\\\/one_LOB_page_in_use_in_LOB_allocation_unit.jpg\",\"keywords\":[\"IAM page\",\"page\",\"SQL Server\",\"storage\",\"storage engine\"],\"articleSection\":[\"General\",\"Series\",\"SQL Server Internals\",\"Storage Wednesday\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/sqlity.net\\\/en\\\/2496\\\/text-mix-page\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/sqlity.net\\\/en\\\/2496\\\/text-mix-page\\\/\",\"url\":\"https:\\\/\\\/sqlity.net\\\/en\\\/2496\\\/text-mix-page\\\/\",\"name\":\"Page Type 3 - LOB Data Pages explained - sqlity.net\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/sqlity.net\\\/en\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/sqlity.net\\\/en\\\/2496\\\/text-mix-page\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/sqlity.net\\\/en\\\/2496\\\/text-mix-page\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/sqlity.net\\\/wp-content\\\/uploads\\\/2014\\\/07\\\/one_LOB_page_in_use_in_LOB_allocation_unit.jpg\",\"datePublished\":\"2014-07-24T00:30:45+00:00\",\"dateModified\":\"2014-11-13T18:31:58+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/sqlity.net\\\/en\\\/#\\\/schema\\\/person\\\/bcffd8c572bc2f1bd10fdba80135e53c\"},\"description\":\"LOB data values in SQL Server are stored in separate allocation units in pages of type TEXT_MIX_PAGE. Read on to get all the details.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/sqlity.net\\\/en\\\/2496\\\/text-mix-page\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/sqlity.net\\\/en\\\/2496\\\/text-mix-page\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/sqlity.net\\\/en\\\/2496\\\/text-mix-page\\\/#primaryimage\",\"url\":\"https:\\\/\\\/sqlity.net\\\/wp-content\\\/uploads\\\/2014\\\/07\\\/one_LOB_page_in_use_in_LOB_allocation_unit.jpg\",\"contentUrl\":\"https:\\\/\\\/sqlity.net\\\/wp-content\\\/uploads\\\/2014\\\/07\\\/one_LOB_page_in_use_in_LOB_allocation_unit.jpg\",\"width\":768,\"height\":468},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/sqlity.net\\\/en\\\/2496\\\/text-mix-page\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/sqlity.net\\\/en\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Page Type 3 &#8211; LOB Data Pages explained\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/sqlity.net\\\/en\\\/#website\",\"url\":\"https:\\\/\\\/sqlity.net\\\/en\\\/\",\"name\":\"sqlity.net\",\"description\":\"Quality for SQL\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/sqlity.net\\\/en\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/sqlity.net\\\/en\\\/#\\\/schema\\\/person\\\/bcffd8c572bc2f1bd10fdba80135e53c\",\"name\":\"Sebastian Meine\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/4ab0a6d02dd494849a584a2c3c8bc3bdcef1d0aa5f87e98bf905dbdb9ad2ce3a?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/4ab0a6d02dd494849a584a2c3c8bc3bdcef1d0aa5f87e98bf905dbdb9ad2ce3a?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/4ab0a6d02dd494849a584a2c3c8bc3bdcef1d0aa5f87e98bf905dbdb9ad2ce3a?s=96&d=mm&r=g\",\"caption\":\"Sebastian Meine\"},\"sameAs\":[\"http:\\\/\\\/sqlity.net\",\"https:\\\/\\\/x.com\\\/sqlity\"]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Page Type 3 - LOB Data Pages explained - sqlity.net","description":"LOB data values in SQL Server are stored in separate allocation units in pages of type TEXT_MIX_PAGE. Read on to get all the details.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/sqlity.net\/en\/2496\/text-mix-page\/","og_locale":"en_US","og_type":"article","og_title":"Page Type 3 - LOB Data Pages explained - sqlity.net","og_description":"LOB data values in SQL Server are stored in separate allocation units in pages of type TEXT_MIX_PAGE. Read on to get all the details.","og_url":"https:\/\/sqlity.net\/en\/2496\/text-mix-page\/","og_site_name":"sqlity.net","article_publisher":"https:\/\/www.facebook.com\/sqlity.net","article_published_time":"2014-07-24T00:30:45+00:00","article_modified_time":"2014-11-13T18:31:58+00:00","og_image":[{"width":768,"height":468,"url":"https:\/\/sqlity.net\/wp-content\/uploads\/2014\/07\/one_LOB_page_in_use_in_LOB_allocation_unit.jpg","type":"image\/jpeg"}],"author":"Sebastian Meine","twitter_card":"summary_large_image","twitter_creator":"@sqlity","twitter_site":"@sqlity","twitter_misc":{"Written by":"Sebastian Meine","Est. reading time":"6 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/sqlity.net\/en\/2496\/text-mix-page\/#article","isPartOf":{"@id":"https:\/\/sqlity.net\/en\/2496\/text-mix-page\/"},"author":{"name":"Sebastian Meine","@id":"https:\/\/sqlity.net\/en\/#\/schema\/person\/bcffd8c572bc2f1bd10fdba80135e53c"},"headline":"Page Type 3 &#8211; LOB Data Pages explained","datePublished":"2014-07-24T00:30:45+00:00","dateModified":"2014-11-13T18:31:58+00:00","mainEntityOfPage":{"@id":"https:\/\/sqlity.net\/en\/2496\/text-mix-page\/"},"wordCount":1165,"commentCount":1,"image":{"@id":"https:\/\/sqlity.net\/en\/2496\/text-mix-page\/#primaryimage"},"thumbnailUrl":"https:\/\/sqlity.net\/wp-content\/uploads\/2014\/07\/one_LOB_page_in_use_in_LOB_allocation_unit.jpg","keywords":["IAM page","page","SQL Server","storage","storage engine"],"articleSection":["General","Series","SQL Server Internals","Storage Wednesday"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/sqlity.net\/en\/2496\/text-mix-page\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/sqlity.net\/en\/2496\/text-mix-page\/","url":"https:\/\/sqlity.net\/en\/2496\/text-mix-page\/","name":"Page Type 3 - LOB Data Pages explained - sqlity.net","isPartOf":{"@id":"https:\/\/sqlity.net\/en\/#website"},"primaryImageOfPage":{"@id":"https:\/\/sqlity.net\/en\/2496\/text-mix-page\/#primaryimage"},"image":{"@id":"https:\/\/sqlity.net\/en\/2496\/text-mix-page\/#primaryimage"},"thumbnailUrl":"https:\/\/sqlity.net\/wp-content\/uploads\/2014\/07\/one_LOB_page_in_use_in_LOB_allocation_unit.jpg","datePublished":"2014-07-24T00:30:45+00:00","dateModified":"2014-11-13T18:31:58+00:00","author":{"@id":"https:\/\/sqlity.net\/en\/#\/schema\/person\/bcffd8c572bc2f1bd10fdba80135e53c"},"description":"LOB data values in SQL Server are stored in separate allocation units in pages of type TEXT_MIX_PAGE. Read on to get all the details.","breadcrumb":{"@id":"https:\/\/sqlity.net\/en\/2496\/text-mix-page\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/sqlity.net\/en\/2496\/text-mix-page\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/sqlity.net\/en\/2496\/text-mix-page\/#primaryimage","url":"https:\/\/sqlity.net\/wp-content\/uploads\/2014\/07\/one_LOB_page_in_use_in_LOB_allocation_unit.jpg","contentUrl":"https:\/\/sqlity.net\/wp-content\/uploads\/2014\/07\/one_LOB_page_in_use_in_LOB_allocation_unit.jpg","width":768,"height":468},{"@type":"BreadcrumbList","@id":"https:\/\/sqlity.net\/en\/2496\/text-mix-page\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/sqlity.net\/en\/"},{"@type":"ListItem","position":2,"name":"Page Type 3 &#8211; LOB Data Pages explained"}]},{"@type":"WebSite","@id":"https:\/\/sqlity.net\/en\/#website","url":"https:\/\/sqlity.net\/en\/","name":"sqlity.net","description":"Quality for SQL","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/sqlity.net\/en\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/sqlity.net\/en\/#\/schema\/person\/bcffd8c572bc2f1bd10fdba80135e53c","name":"Sebastian Meine","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/4ab0a6d02dd494849a584a2c3c8bc3bdcef1d0aa5f87e98bf905dbdb9ad2ce3a?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/4ab0a6d02dd494849a584a2c3c8bc3bdcef1d0aa5f87e98bf905dbdb9ad2ce3a?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/4ab0a6d02dd494849a584a2c3c8bc3bdcef1d0aa5f87e98bf905dbdb9ad2ce3a?s=96&d=mm&r=g","caption":"Sebastian Meine"},"sameAs":["http:\/\/sqlity.net","https:\/\/x.com\/sqlity"]}]}},"jetpack_publicize_connections":[],"jetpack_featured_media_url":"https:\/\/sqlity.net\/wp-content\/uploads\/2014\/07\/one_LOB_page_in_use_in_LOB_allocation_unit.jpg","jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/p2wXuw-Eg","jetpack-related-posts":[],"_links":{"self":[{"href":"https:\/\/sqlity.net\/en\/wp-json\/wp\/v2\/posts\/2496","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/sqlity.net\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/sqlity.net\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/sqlity.net\/en\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/sqlity.net\/en\/wp-json\/wp\/v2\/comments?post=2496"}],"version-history":[{"count":0,"href":"https:\/\/sqlity.net\/en\/wp-json\/wp\/v2\/posts\/2496\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/sqlity.net\/en\/wp-json\/wp\/v2\/media\/2499"}],"wp:attachment":[{"href":"https:\/\/sqlity.net\/en\/wp-json\/wp\/v2\/media?parent=2496"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/sqlity.net\/en\/wp-json\/wp\/v2\/categories?post=2496"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/sqlity.net\/en\/wp-json\/wp\/v2\/tags?post=2496"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}