{"id":2331,"date":"2014-04-09T11:00:08","date_gmt":"2014-04-09T15:00:08","guid":{"rendered":"http:\/\/sqlity.net\/en\/?p=2331"},"modified":"2014-11-13T13:39:52","modified_gmt":"2014-11-13T18:39:52","slug":"gam-interval","status":"publish","type":"post","link":"https:\/\/sqlity.net\/en\/2331\/gam-interval\/","title":{"rendered":"The GAM Interval and GAM Extents"},"content":{"rendered":"<div>\n<h3>Introduction<\/h3>\n<p>\nIn <a href=\"http:\/\/sqlity.net\/en\/2315\/index-allocation-map\/\">The Index Allocation Map<\/a> I talked about the GAM Interval and pointed out that each GAM Interval is made up of 64000 extents. That information was based on other online resources including several articles by <a href=\"http:\/\/www.sqlskills.com\/blogs\/paul\/category\/inside-the-storage-engine\/\" target=\"_blank\"> Paul Randal<\/a> who had a leading role in developing the SQL Server engine and as such is usually a very reliable resource. The same information can also be found in Kalen Delaney's excellent book on <a href=\"http:\/\/www.amazon.com\/gp\/product\/0735658560\/ref=as_li_ss_tl?ie=UTF8&camp=1789&creative=390957&creativeASIN=0735658560&linkCode=as2&tag=sqlitynet-20\" target=\"_blank\">Microsoft SQL Server 2012 Internals<\/a>.\n<\/p>\n<p>\nHowever, in this case the information presented in those resources is slightly inaccurate. In this article I am going to show you how big a GAM interval actually is. On the way, I am also going to cover the related topic of GAM extents.\n<\/p>\n<h3>GAM Interval<\/h3>\n<p>\nSQL Server uses several page types to catalog the state of all the pages in a database file. Each database is logically split into pages of 8192 bytes. All pages are organized in <a href=\"http:\/\/sqlity.net\/en\/2265\/extent\/\">extents<\/a>. An extent is a group of eight consecutive pages. The page-state tracking page types are GAM, SGAM, IAM, DIFF, ML and PFS pages. All but PFS pages track the state using a bitmap that associates each extent in a GAM interval with a single bit in that bitmap. (PFS pages track status information for single pages not extents.) That means that all those page types need to be present once for each GAM interval.\n<\/p>\n<p>\nGAM pages track if an extent is in use. SGAM pages indicate if an extent is a shared extent. DIFF pages mark extents that have changed since the last full backup and ML pages keep track of pages that were affected by minimally logged operations in bulked-logged recovery mode. IAM pages finally link extents to allocation units. (See <a href=\"http:\/\/sqlity.net\/en\/2315\/index-allocation-map\/\">The Index Allocation Map<\/a>.)\n<\/p>\n<h3>GAM Extent<\/h3>\n<p>\nIAM Pages are on demand pages and are associated with an allocation unit. As such, they do not have a fixed position within the database file. GAM, SGAM, DIFF and ML pages on the other hand all live in a special extent, the GAM extent. The GAM extent is always the first extent of a GAM interval. The GAM extent for the first GAM interval in each database file contains two additional pages. Page 0 in every file is always a File Header Page. Page 1 is always the first PFS page. All other GAM extents contain only the before mentioned four pages. The remaining pages in a GAM extent are unused as of SQL Server 2012.\n<\/p>\n<h3>The Mysterious GAM Interval Size<\/h3>\n<p>\nPage type 8 indicates that a page is a GAM page and the first GAM page is always page 2:\n<\/p>\n<p>\n<a href=\"http:\/\/sqlity.net\/wp-content\/uploads\/2014\/04\/page_2_is_a_GAM_page.jpg\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/sqlity.net\/wp-content\/uploads\/2014\/04\/page_2_is_a_GAM_page.jpg\" alt=\"Page 2 is a GAM page.\" title=\"Page 2 is a GAM page.\" width=\"753\" height=\"455\" class=\"aligncenter size-full wp-image-2334\" srcset=\"https:\/\/sqlity.net\/wp-content\/uploads\/2014\/04\/page_2_is_a_GAM_page.jpg 753w, https:\/\/sqlity.net\/wp-content\/uploads\/2014\/04\/page_2_is_a_GAM_page-300x181.jpg 300w, https:\/\/sqlity.net\/wp-content\/uploads\/2014\/04\/page_2_is_a_GAM_page-150x90.jpg 150w\" sizes=\"auto, (max-width: 753px) 100vw, 753px\" \/><\/a>\n<\/p>\n<p>\nIf a GAM interval were 64000 extents in size, we would expect the next GAM page to be page 512002 (64000 * 8 + 2). However, that page is of type 1 and therefore is not a GAM page:\n<\/p>\n<p>\n<a href=\"http:\/\/sqlity.net\/wp-content\/uploads\/2014\/04\/page_512002_is_of_type_1_an_not_a_GAM_page.jpg\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/sqlity.net\/wp-content\/uploads\/2014\/04\/page_512002_is_of_type_1_an_not_a_GAM_page.jpg\" alt=\"Page 512002 is of type 1 and not a GAM page.\" title=\"Page 512002 is of type 1 and not a GAM page.\" width=\"753\" height=\"455\" class=\"aligncenter size-full wp-image-2332\" srcset=\"https:\/\/sqlity.net\/wp-content\/uploads\/2014\/04\/page_512002_is_of_type_1_an_not_a_GAM_page.jpg 753w, https:\/\/sqlity.net\/wp-content\/uploads\/2014\/04\/page_512002_is_of_type_1_an_not_a_GAM_page-300x181.jpg 300w, https:\/\/sqlity.net\/wp-content\/uploads\/2014\/04\/page_512002_is_of_type_1_an_not_a_GAM_page-150x90.jpg 150w\" sizes=\"auto, (max-width: 753px) 100vw, 753px\" \/><\/a>\n<\/p>\n<p>\nClearly, something is off here. To investigate further I created a simple one-page-per-row table in an otherwise empty database and filled it with a little over 1 million rows:\n<\/p>\n<div>\n[sql]\nCREATE TABLE dbo.l(id INT IDENTITY PRIMARY KEY, c CHAR(8000) NOT NULL DEFAULT '');<br \/>\nGO<br \/>\n INSERT INTO dbo.l DEFAULT VALUES;<br \/>\nGO 1240000<br \/>\n[\/sql]\n<\/div>\n<p>\nThe first GAM interval contains allocation units for system tables, but the second GAM interval was empty at the start of this script. The number of rows should be enough to fill that second GAM interval completely with data for this table.\n<\/p>\n<p>The IAM page for this table that covers the second GAM interval is page [1:299]:<\/p>\n<p>\n<a href=\"http:\/\/sqlity.net\/wp-content\/uploads\/2014\/04\/IAM_page_for_second_GAM_interval.jpg\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/sqlity.net\/wp-content\/uploads\/2014\/04\/IAM_page_for_second_GAM_interval.jpg\" alt=\"An IAM page covering the second GAM interval.\" title=\"An IAM page covering the second GAM interval.\" width=\"753\" height=\"455\" class=\"aligncenter size-full wp-image-2333\" srcset=\"https:\/\/sqlity.net\/wp-content\/uploads\/2014\/04\/IAM_page_for_second_GAM_interval.jpg 753w, https:\/\/sqlity.net\/wp-content\/uploads\/2014\/04\/IAM_page_for_second_GAM_interval-300x181.jpg 300w, https:\/\/sqlity.net\/wp-content\/uploads\/2014\/04\/IAM_page_for_second_GAM_interval-150x90.jpg 150w\" sizes=\"auto, (max-width: 753px) 100vw, 753px\" \/><\/a>\n<\/p>\n<p>\nRemember, an IAM page does not have to be located in the GAM interval that it covers. As an IAM page covers a GAM interval in the same way as a GAM page does, seeing a completely full page should give us some clues on how big a GAM interval actually is. The shortened output of the page buffer is below:\n<\/p>\n<div>\n[sourcecode]\nMemory Dump @0x000000006FA3A000<\/p>\n<p>000000006FA3A000:   010a0000 00020001 1b010000 01005a00 2c010000  ..............Z.,...<br \/>\n000000006FA3A014:   01000200 54000000 0600f61f 2b010000 01000000  ....T.....\u00f6.+.......<br \/>\n000000006FA3A028:   7e890000 f2010000 07000000 00000000 00000000  ~\u0089..\u00f2...............<br \/>\n000000006FA3A03C:   c50f9ea9 00000000 00000000 00000000 00000000  \u00c5.\u009e\u00a9................<br \/>\n000000006FA3A050:   00000000 00000000 00000000 00000000 00005e00  ..................^.<br \/>\n000000006FA3A064:   01000000 00000000 00000000 00000000 00000000  ....................<br \/>\n000000006FA3A078:   00000000 00000000 00000000 00000000 00cd0700  .................\u00cd..<br \/>\n000000006FA3A08C:   01000000 00000000 00000000 00000000 00000000  ....................<br \/>\n000000006FA3A0A0:   00000000 00000000 00000000 00000000 00000000  ....................<br \/>\n000000006FA3A0B4:   00000000 00000000 00000000 381ffeff ffffffff  ............8.\u00fe\u00ff\u00ff\u00ff\u00ff\u00ff<br \/>\n000000006FA3A0C8:   ffffffff ffffffff ffffffff ffffffff ffffffff  \u00ff\u00ff\u00ff\u00ff\u00ff\u00ff\u00ff\u00ff\u00ff\u00ff\u00ff\u00ff\u00ff\u00ff\u00ff\u00ff\u00ff\u00ff\u00ff\u00ff<br \/>\n000000006FA3A0DC:   ffffffff ffffffff ffffffff ffffffff ffffffff  \u00ff\u00ff\u00ff\u00ff\u00ff\u00ff\u00ff\u00ff\u00ff\u00ff\u00ff\u00ff\u00ff\u00ff\u00ff\u00ff\u00ff\u00ff\u00ff\u00ff<br \/>\n&lt;...&gt;<br \/>\n000000006FA3BFCC:   ffffffff ffffffff ffffffff ffffffff ffffffff  \u00ff\u00ff\u00ff\u00ff\u00ff\u00ff\u00ff\u00ff\u00ff\u00ff\u00ff\u00ff\u00ff\u00ff\u00ff\u00ff\u00ff\u00ff\u00ff\u00ff<br \/>\n000000006FA3BFE0:   ffffffff ffffffff ffffffff ffffffff ffffffff  \u00ff\u00ff\u00ff\u00ff\u00ff\u00ff\u00ff\u00ff\u00ff\u00ff\u00ff\u00ff\u00ff\u00ff\u00ff\u00ff\u00ff\u00ff\u00ff\u00ff<br \/>\n000000006FA3BFF4:   ffff0000 00000000 be006000                    \u00ff\u00ff......\u00be.`.<br \/>\n[\/sourcecode]\n<\/p><\/div>\n<p>\nIf you look at address 0x6FA3A0C0 you will see the two bytes 0x381f. Those are always present in an IAM page at that position. The map starts directly thereafter with the byte 0xfe. This tells us that the first extent of the GAM interval does not belong to this table. However, that is expected, as the first extent is always a GAM extent. The first byte after that position that does not have the value 0xff is byte 0x6FA3BFF6. That means there seem to be 0x6FA3BFF6 \u2013 0x6FA3A0C2 = 7988 bytes in the map. 7988 bytes make 63904 bits. Each bit covers one extent, so a GAM interval should be 63904 extents or 511232 pages.\n<\/p>\n<p>\nWith a GAM interval length of 511232 pages, we would expect the second GAM page at page 511232 + 2 = 511234. Let us confirm:\n<\/p>\n<p>\n<a href=\"http:\/\/sqlity.net\/wp-content\/uploads\/2014\/04\/page_511234_is_not_a_GAM_page.jpg\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/sqlity.net\/wp-content\/uploads\/2014\/04\/page_511234_is_not_a_GAM_page.jpg\" alt=\"Page 511234 is still not a GAM page.\" title=\"Page 511234 is still not a GAM page.\" width=\"753\" height=\"582\" class=\"aligncenter size-full wp-image-2336\" srcset=\"https:\/\/sqlity.net\/wp-content\/uploads\/2014\/04\/page_511234_is_not_a_GAM_page.jpg 753w, https:\/\/sqlity.net\/wp-content\/uploads\/2014\/04\/page_511234_is_not_a_GAM_page-300x231.jpg 300w, https:\/\/sqlity.net\/wp-content\/uploads\/2014\/04\/page_511234_is_not_a_GAM_page-150x115.jpg 150w\" sizes=\"auto, (max-width: 753px) 100vw, 753px\" \/><\/a>\n<\/p>\n<p>\nThis produces an error, complaining about an invalid page type. The page is actually completely zeroed out, as you can confirm by running the following statement:\n<\/p>\n<div>\n[sql]\nDBCC PAGE(0,1,511234,2);<br \/>\n [\/sql]\n<\/div>\n<p>\nHowever, directly above the error it tells us that the GAM page for this page is page [1:511232], the first page of the GAM interval. That page is indeed the GAM page for the second GAM interval:\n<\/p>\n<p>\n<a href=\"http:\/\/sqlity.net\/wp-content\/uploads\/2014\/04\/page_511232_is_the_second_GAM_page.jpg\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/sqlity.net\/wp-content\/uploads\/2014\/04\/page_511232_is_the_second_GAM_page.jpg\" alt=\"Page 511232 is the second GAM page.\" title=\"Page 511232 is the second GAM page.\" width=\"753\" height=\"452\" class=\"aligncenter size-full wp-image-2335\" srcset=\"https:\/\/sqlity.net\/wp-content\/uploads\/2014\/04\/page_511232_is_the_second_GAM_page.jpg 753w, https:\/\/sqlity.net\/wp-content\/uploads\/2014\/04\/page_511232_is_the_second_GAM_page-300x180.jpg 300w, https:\/\/sqlity.net\/wp-content\/uploads\/2014\/04\/page_511232_is_the_second_GAM_page-150x90.jpg 150w\" sizes=\"auto, (max-width: 753px) 100vw, 753px\" \/><\/a>\n<\/p>\n<h3>Summary<\/h3>\n<p>\nSo let use quickly rehash everything we talked about. Every database file is organized in 8192-byte pages that in turn are grouped into 8-byte extents. The file is further logically organized in sections of 63904 extents or 511232 pages. Those sections are called GAM intervals. The first extend in each GAM interval is the GAM extent that contains metadata pages. The GAM page is the first page in that GAM extent. However, the first two pages of a file are reserved for other pages. Therefore, the first GAM page in a file is not page 0 but page 2. Each GAM extent has at most six used pages (as of SQL Server 2012). The remaining ones stay unused.\n<\/p>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>What is a GAM extent in SQL Server? What is a GAM Interval and how big is it really? Read on now to get the answers to these questions and see why a GAM interval is not 64000 extents.<\/p>\n<p> <a href=\"https:\/\/sqlity.net\/en\/2331\/gam-interval\/\">[more&#8230;]<\/a><\/p>\n","protected":false},"author":3,"featured_media":0,"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":[111,158,160,159,155,161,107,15],"class_list":["post-2331","post","type-post","status-publish","format-standard","hentry","category-general","category-series","category-sql-server-internals","category-storage-wednesday","tag-dbcc-page","tag-gam","tag-gam-extent","tag-gam-interval","tag-iam-page","tag-missconception","tag-page","tag-sql-server"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.8 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>The GAM Interval and GAM Extents - sqlity.net<\/title>\n<meta name=\"description\" content=\"What is a GAM extent in SQL Server? What is a GAM Interval and how big is it really? (It&#039;s not 64000 extents.) Read on to get the answers now.\" \/>\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\/2331\/gam-interval\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"The GAM Interval and GAM Extents - sqlity.net\" \/>\n<meta property=\"og:description\" content=\"What is a GAM extent in SQL Server? What is a GAM Interval and how big is it really? (It&#039;s not 64000 extents.) Read on to get the answers now.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/sqlity.net\/en\/2331\/gam-interval\/\" \/>\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-04-09T15:00:08+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2014-11-13T18:39:52+00:00\" \/>\n<meta property=\"og:image\" content=\"http:\/\/sqlity.net\/wp-content\/uploads\/2014\/04\/page_2_is_a_GAM_page.jpg\" \/>\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=\"5 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/sqlity.net\\\/en\\\/2331\\\/gam-interval\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/sqlity.net\\\/en\\\/2331\\\/gam-interval\\\/\"},\"author\":{\"name\":\"Sebastian Meine\",\"@id\":\"https:\\\/\\\/sqlity.net\\\/en\\\/#\\\/schema\\\/person\\\/bcffd8c572bc2f1bd10fdba80135e53c\"},\"headline\":\"The GAM Interval and GAM Extents\",\"datePublished\":\"2014-04-09T15:00:08+00:00\",\"dateModified\":\"2014-11-13T18:39:52+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/sqlity.net\\\/en\\\/2331\\\/gam-interval\\\/\"},\"wordCount\":1039,\"commentCount\":0,\"image\":{\"@id\":\"https:\\\/\\\/sqlity.net\\\/en\\\/2331\\\/gam-interval\\\/#primaryimage\"},\"thumbnailUrl\":\"http:\\\/\\\/sqlity.net\\\/wp-content\\\/uploads\\\/2014\\\/04\\\/page_2_is_a_GAM_page.jpg\",\"keywords\":[\"DBCC PAGE\",\"GAM\",\"GAM Extent\",\"GAM Interval\",\"IAM page\",\"missconception\",\"page\",\"SQL Server\"],\"articleSection\":[\"General\",\"Series\",\"SQL Server Internals\",\"Storage Wednesday\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/sqlity.net\\\/en\\\/2331\\\/gam-interval\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/sqlity.net\\\/en\\\/2331\\\/gam-interval\\\/\",\"url\":\"https:\\\/\\\/sqlity.net\\\/en\\\/2331\\\/gam-interval\\\/\",\"name\":\"The GAM Interval and GAM Extents - sqlity.net\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/sqlity.net\\\/en\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/sqlity.net\\\/en\\\/2331\\\/gam-interval\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/sqlity.net\\\/en\\\/2331\\\/gam-interval\\\/#primaryimage\"},\"thumbnailUrl\":\"http:\\\/\\\/sqlity.net\\\/wp-content\\\/uploads\\\/2014\\\/04\\\/page_2_is_a_GAM_page.jpg\",\"datePublished\":\"2014-04-09T15:00:08+00:00\",\"dateModified\":\"2014-11-13T18:39:52+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/sqlity.net\\\/en\\\/#\\\/schema\\\/person\\\/bcffd8c572bc2f1bd10fdba80135e53c\"},\"description\":\"What is a GAM extent in SQL Server? What is a GAM Interval and how big is it really? (It's not 64000 extents.) Read on to get the answers now.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/sqlity.net\\\/en\\\/2331\\\/gam-interval\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/sqlity.net\\\/en\\\/2331\\\/gam-interval\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/sqlity.net\\\/en\\\/2331\\\/gam-interval\\\/#primaryimage\",\"url\":\"http:\\\/\\\/sqlity.net\\\/wp-content\\\/uploads\\\/2014\\\/04\\\/page_2_is_a_GAM_page.jpg\",\"contentUrl\":\"http:\\\/\\\/sqlity.net\\\/wp-content\\\/uploads\\\/2014\\\/04\\\/page_2_is_a_GAM_page.jpg\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/sqlity.net\\\/en\\\/2331\\\/gam-interval\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/sqlity.net\\\/en\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"The GAM Interval and GAM Extents\"}]},{\"@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":"The GAM Interval and GAM Extents - sqlity.net","description":"What is a GAM extent in SQL Server? What is a GAM Interval and how big is it really? (It's not 64000 extents.) Read on to get the answers now.","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\/2331\/gam-interval\/","og_locale":"en_US","og_type":"article","og_title":"The GAM Interval and GAM Extents - sqlity.net","og_description":"What is a GAM extent in SQL Server? What is a GAM Interval and how big is it really? (It's not 64000 extents.) Read on to get the answers now.","og_url":"https:\/\/sqlity.net\/en\/2331\/gam-interval\/","og_site_name":"sqlity.net","article_publisher":"https:\/\/www.facebook.com\/sqlity.net","article_published_time":"2014-04-09T15:00:08+00:00","article_modified_time":"2014-11-13T18:39:52+00:00","og_image":[{"url":"http:\/\/sqlity.net\/wp-content\/uploads\/2014\/04\/page_2_is_a_GAM_page.jpg","type":"","width":"","height":""}],"author":"Sebastian Meine","twitter_card":"summary_large_image","twitter_creator":"@sqlity","twitter_site":"@sqlity","twitter_misc":{"Written by":"Sebastian Meine","Est. reading time":"5 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/sqlity.net\/en\/2331\/gam-interval\/#article","isPartOf":{"@id":"https:\/\/sqlity.net\/en\/2331\/gam-interval\/"},"author":{"name":"Sebastian Meine","@id":"https:\/\/sqlity.net\/en\/#\/schema\/person\/bcffd8c572bc2f1bd10fdba80135e53c"},"headline":"The GAM Interval and GAM Extents","datePublished":"2014-04-09T15:00:08+00:00","dateModified":"2014-11-13T18:39:52+00:00","mainEntityOfPage":{"@id":"https:\/\/sqlity.net\/en\/2331\/gam-interval\/"},"wordCount":1039,"commentCount":0,"image":{"@id":"https:\/\/sqlity.net\/en\/2331\/gam-interval\/#primaryimage"},"thumbnailUrl":"http:\/\/sqlity.net\/wp-content\/uploads\/2014\/04\/page_2_is_a_GAM_page.jpg","keywords":["DBCC PAGE","GAM","GAM Extent","GAM Interval","IAM page","missconception","page","SQL Server"],"articleSection":["General","Series","SQL Server Internals","Storage Wednesday"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/sqlity.net\/en\/2331\/gam-interval\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/sqlity.net\/en\/2331\/gam-interval\/","url":"https:\/\/sqlity.net\/en\/2331\/gam-interval\/","name":"The GAM Interval and GAM Extents - sqlity.net","isPartOf":{"@id":"https:\/\/sqlity.net\/en\/#website"},"primaryImageOfPage":{"@id":"https:\/\/sqlity.net\/en\/2331\/gam-interval\/#primaryimage"},"image":{"@id":"https:\/\/sqlity.net\/en\/2331\/gam-interval\/#primaryimage"},"thumbnailUrl":"http:\/\/sqlity.net\/wp-content\/uploads\/2014\/04\/page_2_is_a_GAM_page.jpg","datePublished":"2014-04-09T15:00:08+00:00","dateModified":"2014-11-13T18:39:52+00:00","author":{"@id":"https:\/\/sqlity.net\/en\/#\/schema\/person\/bcffd8c572bc2f1bd10fdba80135e53c"},"description":"What is a GAM extent in SQL Server? What is a GAM Interval and how big is it really? (It's not 64000 extents.) Read on to get the answers now.","breadcrumb":{"@id":"https:\/\/sqlity.net\/en\/2331\/gam-interval\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/sqlity.net\/en\/2331\/gam-interval\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/sqlity.net\/en\/2331\/gam-interval\/#primaryimage","url":"http:\/\/sqlity.net\/wp-content\/uploads\/2014\/04\/page_2_is_a_GAM_page.jpg","contentUrl":"http:\/\/sqlity.net\/wp-content\/uploads\/2014\/04\/page_2_is_a_GAM_page.jpg"},{"@type":"BreadcrumbList","@id":"https:\/\/sqlity.net\/en\/2331\/gam-interval\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/sqlity.net\/en\/"},{"@type":"ListItem","position":2,"name":"The GAM Interval and GAM Extents"}]},{"@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":"","jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/p2wXuw-BB","jetpack-related-posts":[],"_links":{"self":[{"href":"https:\/\/sqlity.net\/en\/wp-json\/wp\/v2\/posts\/2331","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=2331"}],"version-history":[{"count":0,"href":"https:\/\/sqlity.net\/en\/wp-json\/wp\/v2\/posts\/2331\/revisions"}],"wp:attachment":[{"href":"https:\/\/sqlity.net\/en\/wp-json\/wp\/v2\/media?parent=2331"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/sqlity.net\/en\/wp-json\/wp\/v2\/categories?post=2331"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/sqlity.net\/en\/wp-json\/wp\/v2\/tags?post=2331"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}