{"id":12066,"date":"2018-11-27T13:08:18","date_gmt":"2018-11-27T12:08:18","guid":{"rendered":"https:\/\/www.dbi-services.com\/blog\/sql-server-2019-ctp-2-1-a-replacement-of-dbcc-page-command\/"},"modified":"2023-07-17T15:12:43","modified_gmt":"2023-07-17T13:12:43","slug":"sql-server-2019-ctp-2-1-a-replacement-of-dbcc-page-command","status":"publish","type":"post","link":"https:\/\/www.dbi-services.com\/blog\/sql-server-2019-ctp-2-1-a-replacement-of-dbcc-page-command\/","title":{"rendered":"SQL Server 2019 CTP 2.1 &#8211; A replacement of DBCC PAGE command?"},"content":{"rendered":"<p>Did you ever use the famous DBCC PAGE command? Folks who are interested in digging further to the SQL Server storage already use it for a while. We also use it during our <a href=\"https:\/\/www.dbi-services.com\/trainings\/sql_server_performance_tuning_3days\/\" target=\"_blank\" rel=\"noopener noreferrer\">SQL Server performance workshop<\/a> by the way. But the usage of such command may sometimes go beyond and it may be used for some troubleshooting scenarios. For instance, last week, I had to investigate a locking contention scenario where I had to figure out which objects were involved and with their related pages (resource type) as the only way to identify them. SQL Server 2019 provides the <a href=\"https:\/\/docs.microsoft.com\/en-us\/sql\/relational-databases\/system-dynamic-management-views\/sys-dm-db-page-info-transact-sql?view=sqlallproducts-allversions\" target=\"_blank\" rel=\"noopener noreferrer\"><em>sys.dm_db_page_info<\/em><\/a> system function that can be useful in this kind of scenario.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-29696\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/blog-148-0-banner.jpg\" alt=\"blog 148 - 0 - banner\" width=\"666\" height=\"492\" \/><\/p>\n<p>To simulate locks let\u2019s start updating some rows in the <a href=\"https:\/\/www.sqlskills.com\/blogs\/jonathan\/enlarging-the-adventureworks-sample-databases\/\" target=\"_blank\" rel=\"noopener noreferrer\">dbo.bigTransactionHistory<\/a> as follows:<\/p>\n<pre class=\"brush: sql; gutter: true; first-line: 1\">USE AdventureWorks_dbi;\nGO\n\nBEGIN TRAN;\n\nUPDATE TOP (1000) dbo.bigTransactionHistory\nSET Quantity = Quantity + 1<\/pre>\n<p>Now let\u2019s take a look at the <em>sys.dm_tran_locks<\/em> to get a picture of locks held by the above query:<\/p>\n<pre class=\"brush: sql; gutter: true; first-line: 1\">SELECT \n\tresource_type,\n\tCOUNT(*) AS nb_locks\nFROM \n\tsys.dm_tran_locks AS tl\nWHERE \n\ttl.request_session_id = 52\nGROUP BY\n\tresource_type<\/pre>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-29690\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/blog-148-1-query-locks.jpg\" alt=\"blog 148 - 1 - query locks\" width=\"225\" height=\"139\" \/><\/p>\n<p>Referring to my customer scenario, let\u2019s say I wanted to investigate locks and objects involved. For the simplicity of the demo I focused only the <em>sys.dm_tran_locks<\/em> DMV but generally speaking you would probably add other ones as <em>sys.dm_exec_requests<\/em>, <em>sys.dm_exec_sessions<\/em> etc \u2026<\/p>\n<pre class=\"brush: sql; gutter: true; first-line: 1\">SELECT \n\ttl.resource_database_id,\n\tSUBSTRING(tl.resource_description, 0, CHARINDEX(':', tl.resource_description)) AS file_id,\n\tSUBSTRING(tl.resource_description, CHARINDEX(':', tl.resource_description) + 1, LEN(tl.resource_description)) AS page_id\nFROM \n\tsys.dm_tran_locks AS tl\nWHERE \n\ttl.request_session_id = 52\n\tAND tl.resource_type = 'PAGE'<\/pre>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-29691\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/blog-148-2-locks-and-pages.jpg\" alt=\"blog 148 - 2 - locks and pages\" width=\"313\" height=\"210\" \/><\/p>\n<p>The <em>sys.dm_tran_locks<\/em> DMV contains the <em>resource_description<\/em> column that provides contextual information about the resource locked by my query. Therefore the <em>resource_description<\/em> value column will inform about [file_id:page_id] when resource_type is PAGE.<\/p>\n<p>SQL Server 2019 will probably lead the DBCC PAGE command to return to the stone age for some tasks but let\u2019s start with this old command as follows:<\/p>\n<pre class=\"brush: sql; gutter: true; first-line: 1\">DBCC PAGE (5, 1, 403636, 3) WITH TABLERESULTS;<\/pre>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-29692\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/blog-148-3-dbcc-page.jpg\" alt=\"blog 148 - 3 - dbcc page\" width=\"730\" height=\"342\" \/><\/p>\n<p>The DBCC PAGE did the job and provides and output that includes the page header section where the Metadata: ObjectId is stored. We may then use it with OBJECT_NAME() function to get the corresponding table name.<\/p>\n<pre class=\"brush: sql; gutter: true; first-line: 1\">SELECT OBJECT_NAME(695673526)<\/pre>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-29693\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/blog-148-4-dbcc-page-object_name.jpg\" alt=\"blog 148 - 4 - dbcc page - object_name\" width=\"195\" height=\"58\" \/><\/p>\n<p>But let\u2019s say that using this command may be slightly controversial because this is always an undocumented command so far and no need to explain here how it can be dangerous to use it in production. Honestly, I never encountered situations where DBCC PAGE was an issue but I may not provide a full guarantee and it is obviously at your own risk. In addition, applying DBCC PAGE for all rows returned from my previous query can be a little bit tricky and this is where the new <em>sys.dm_db_page_info<\/em> comes into play.<\/p>\n<pre class=\"brush: sql; gutter: true; first-line: 1\">;WITH tran_locks\nAS\n(\n\tSELECT \n\t\ttl.resource_database_id,\n\t\tSUBSTRING(tl.resource_description, 0, CHARINDEX(':', tl.resource_description)) AS file_id,\n\t\tSUBSTRING(tl.resource_description, CHARINDEX(':', tl.resource_description) + 1, LEN(tl.resource_description)) AS page_id\n\tFROM \n\t\tsys.dm_tran_locks AS tl\n\tWHERE \n\t\ttl.request_session_id = 52\n\t\tAND tl.resource_type = 'PAGE'\n)\nSELECT \n\tOBJECT_NAME(page_info.object_id) AS table_name,\n\tpage_info.*\nFROM \n\ttran_locks AS t\nCROSS APPLY \n\tsys.dm_db_page_info(t.resource_database_id, t.file_id, t.page_id,DEFAULT) AS page_info<\/pre>\n<p>This system function provides a plenty of information mainly coming from the page header in tabular format and makes my previous requirement easier to address as show below.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-29694 size-full\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/blog-148-5-sys.dm_db_page_info-e1543323528120.jpg\" alt=\"blog 148 - 5 - sys.dm_db_page_info\" width=\"900\" height=\"208\" \/><\/p>\n<p>The good news is this function is officially <a href=\"https:\/\/docs.microsoft.com\/en-us\/sql\/relational-databases\/system-dynamic-management-views\/sys-dm-db-page-info-transact-sql?view=sqlallproducts-allversions\" target=\"_blank\" rel=\"noopener noreferrer\">documented<\/a> but un\/fortunately (as you convenience) for the deep dive study you will still continue to rely on the DBCC PAGE.<\/p>\n<p>Happy troubleshooting!<\/p>\n<p><span style=\"float: none; background-color: #ffffff; color: #333333; cursor: text; font-family: Georgia,'Times New Roman','Bitstream Charter',Times,serif; font-size: 16px; font-style: normal; font-variant: normal; font-weight: 400; letter-spacing: normal; text-align: left; text-decoration: none; text-indent: 0px; text-transform: none;\">By David Barbarin<\/span><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Did you ever use the famous DBCC PAGE command? Folks who are interested in digging further to the SQL Server storage already use it for a while. We also use it during our SQL Server performance workshop by the way. But the usage of such command may sometimes go beyond and it may be used [&hellip;]<\/p>\n","protected":false},"author":26,"featured_media":12068,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[229,99],"tags":[1508,1509,1457,1510],"type_dbi":[],"class_list":["post-12066","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-database-administration-monitoring","category-sql-server","tag-dbcc","tag-dbcc-page","tag-sql-server-2019","tag-sys-dm_db_page_info"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v27.2 (Yoast SEO v27.2) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>SQL Server 2019 CTP 2.1 - A replacement of DBCC PAGE command?<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.dbi-services.com\/blog\/sql-server-2019-ctp-2-1-a-replacement-of-dbcc-page-command\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"SQL Server 2019 CTP 2.1 - A replacement of DBCC PAGE command?\" \/>\n<meta property=\"og:description\" content=\"Did you ever use the famous DBCC PAGE command? Folks who are interested in digging further to the SQL Server storage already use it for a while. We also use it during our SQL Server performance workshop by the way. But the usage of such command may sometimes go beyond and it may be used [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.dbi-services.com\/blog\/sql-server-2019-ctp-2-1-a-replacement-of-dbcc-page-command\/\" \/>\n<meta property=\"og:site_name\" content=\"dbi Blog\" \/>\n<meta property=\"article:published_time\" content=\"2018-11-27T12:08:18+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2023-07-17T13:12:43+00:00\" \/>\n<meta property=\"og:image\" content=\"http:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/blog-148-1-query-locks.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"225\" \/>\n\t<meta property=\"og:image:height\" content=\"139\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Microsoft Team\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Microsoft Team\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"4 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/sql-server-2019-ctp-2-1-a-replacement-of-dbcc-page-command\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/sql-server-2019-ctp-2-1-a-replacement-of-dbcc-page-command\/\"},\"author\":{\"name\":\"Microsoft Team\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/bfab48333280d616e1170e7369df90a4\"},\"headline\":\"SQL Server 2019 CTP 2.1 &#8211; A replacement of DBCC PAGE command?\",\"datePublished\":\"2018-11-27T12:08:18+00:00\",\"dateModified\":\"2023-07-17T13:12:43+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/sql-server-2019-ctp-2-1-a-replacement-of-dbcc-page-command\/\"},\"wordCount\":478,\"commentCount\":0,\"image\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/sql-server-2019-ctp-2-1-a-replacement-of-dbcc-page-command\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/blog-148-1-query-locks.jpg\",\"keywords\":[\"DBCC\",\"DBCC PAGE\",\"SQL Server 2019\",\"sys.dm_db_page_info\"],\"articleSection\":[\"Database Administration &amp; Monitoring\",\"SQL Server\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.dbi-services.com\/blog\/sql-server-2019-ctp-2-1-a-replacement-of-dbcc-page-command\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/sql-server-2019-ctp-2-1-a-replacement-of-dbcc-page-command\/\",\"url\":\"https:\/\/www.dbi-services.com\/blog\/sql-server-2019-ctp-2-1-a-replacement-of-dbcc-page-command\/\",\"name\":\"SQL Server 2019 CTP 2.1 - A replacement of DBCC PAGE command?\",\"isPartOf\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/sql-server-2019-ctp-2-1-a-replacement-of-dbcc-page-command\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/sql-server-2019-ctp-2-1-a-replacement-of-dbcc-page-command\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/blog-148-1-query-locks.jpg\",\"datePublished\":\"2018-11-27T12:08:18+00:00\",\"dateModified\":\"2023-07-17T13:12:43+00:00\",\"author\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/bfab48333280d616e1170e7369df90a4\"},\"breadcrumb\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/sql-server-2019-ctp-2-1-a-replacement-of-dbcc-page-command\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.dbi-services.com\/blog\/sql-server-2019-ctp-2-1-a-replacement-of-dbcc-page-command\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/sql-server-2019-ctp-2-1-a-replacement-of-dbcc-page-command\/#primaryimage\",\"url\":\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/blog-148-1-query-locks.jpg\",\"contentUrl\":\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/blog-148-1-query-locks.jpg\",\"width\":225,\"height\":139},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/sql-server-2019-ctp-2-1-a-replacement-of-dbcc-page-command\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Accueil\",\"item\":\"https:\/\/www.dbi-services.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"SQL Server 2019 CTP 2.1 &#8211; A replacement of DBCC PAGE command?\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/#website\",\"url\":\"https:\/\/www.dbi-services.com\/blog\/\",\"name\":\"dbi Blog\",\"description\":\"\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.dbi-services.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/bfab48333280d616e1170e7369df90a4\",\"name\":\"Microsoft Team\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/secure.gravatar.com\/avatar\/c44a1a792c059f24055763aa77d80a244467f6eef724a8bd13db8d4a350b7a4c?s=96&d=mm&r=g\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/c44a1a792c059f24055763aa77d80a244467f6eef724a8bd13db8d4a350b7a4c?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/c44a1a792c059f24055763aa77d80a244467f6eef724a8bd13db8d4a350b7a4c?s=96&d=mm&r=g\",\"caption\":\"Microsoft Team\"},\"url\":\"https:\/\/www.dbi-services.com\/blog\/author\/microsoft-team\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"SQL Server 2019 CTP 2.1 - A replacement of DBCC PAGE command?","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:\/\/www.dbi-services.com\/blog\/sql-server-2019-ctp-2-1-a-replacement-of-dbcc-page-command\/","og_locale":"en_US","og_type":"article","og_title":"SQL Server 2019 CTP 2.1 - A replacement of DBCC PAGE command?","og_description":"Did you ever use the famous DBCC PAGE command? Folks who are interested in digging further to the SQL Server storage already use it for a while. We also use it during our SQL Server performance workshop by the way. But the usage of such command may sometimes go beyond and it may be used [&hellip;]","og_url":"https:\/\/www.dbi-services.com\/blog\/sql-server-2019-ctp-2-1-a-replacement-of-dbcc-page-command\/","og_site_name":"dbi Blog","article_published_time":"2018-11-27T12:08:18+00:00","article_modified_time":"2023-07-17T13:12:43+00:00","og_image":[{"width":225,"height":139,"url":"http:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/blog-148-1-query-locks.jpg","type":"image\/jpeg"}],"author":"Microsoft Team","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Microsoft Team","Est. reading time":"4 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.dbi-services.com\/blog\/sql-server-2019-ctp-2-1-a-replacement-of-dbcc-page-command\/#article","isPartOf":{"@id":"https:\/\/www.dbi-services.com\/blog\/sql-server-2019-ctp-2-1-a-replacement-of-dbcc-page-command\/"},"author":{"name":"Microsoft Team","@id":"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/bfab48333280d616e1170e7369df90a4"},"headline":"SQL Server 2019 CTP 2.1 &#8211; A replacement of DBCC PAGE command?","datePublished":"2018-11-27T12:08:18+00:00","dateModified":"2023-07-17T13:12:43+00:00","mainEntityOfPage":{"@id":"https:\/\/www.dbi-services.com\/blog\/sql-server-2019-ctp-2-1-a-replacement-of-dbcc-page-command\/"},"wordCount":478,"commentCount":0,"image":{"@id":"https:\/\/www.dbi-services.com\/blog\/sql-server-2019-ctp-2-1-a-replacement-of-dbcc-page-command\/#primaryimage"},"thumbnailUrl":"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/blog-148-1-query-locks.jpg","keywords":["DBCC","DBCC PAGE","SQL Server 2019","sys.dm_db_page_info"],"articleSection":["Database Administration &amp; Monitoring","SQL Server"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.dbi-services.com\/blog\/sql-server-2019-ctp-2-1-a-replacement-of-dbcc-page-command\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.dbi-services.com\/blog\/sql-server-2019-ctp-2-1-a-replacement-of-dbcc-page-command\/","url":"https:\/\/www.dbi-services.com\/blog\/sql-server-2019-ctp-2-1-a-replacement-of-dbcc-page-command\/","name":"SQL Server 2019 CTP 2.1 - A replacement of DBCC PAGE command?","isPartOf":{"@id":"https:\/\/www.dbi-services.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.dbi-services.com\/blog\/sql-server-2019-ctp-2-1-a-replacement-of-dbcc-page-command\/#primaryimage"},"image":{"@id":"https:\/\/www.dbi-services.com\/blog\/sql-server-2019-ctp-2-1-a-replacement-of-dbcc-page-command\/#primaryimage"},"thumbnailUrl":"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/blog-148-1-query-locks.jpg","datePublished":"2018-11-27T12:08:18+00:00","dateModified":"2023-07-17T13:12:43+00:00","author":{"@id":"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/bfab48333280d616e1170e7369df90a4"},"breadcrumb":{"@id":"https:\/\/www.dbi-services.com\/blog\/sql-server-2019-ctp-2-1-a-replacement-of-dbcc-page-command\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.dbi-services.com\/blog\/sql-server-2019-ctp-2-1-a-replacement-of-dbcc-page-command\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.dbi-services.com\/blog\/sql-server-2019-ctp-2-1-a-replacement-of-dbcc-page-command\/#primaryimage","url":"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/blog-148-1-query-locks.jpg","contentUrl":"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/blog-148-1-query-locks.jpg","width":225,"height":139},{"@type":"BreadcrumbList","@id":"https:\/\/www.dbi-services.com\/blog\/sql-server-2019-ctp-2-1-a-replacement-of-dbcc-page-command\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Accueil","item":"https:\/\/www.dbi-services.com\/blog\/"},{"@type":"ListItem","position":2,"name":"SQL Server 2019 CTP 2.1 &#8211; A replacement of DBCC PAGE command?"}]},{"@type":"WebSite","@id":"https:\/\/www.dbi-services.com\/blog\/#website","url":"https:\/\/www.dbi-services.com\/blog\/","name":"dbi Blog","description":"","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.dbi-services.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/bfab48333280d616e1170e7369df90a4","name":"Microsoft Team","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/c44a1a792c059f24055763aa77d80a244467f6eef724a8bd13db8d4a350b7a4c?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/c44a1a792c059f24055763aa77d80a244467f6eef724a8bd13db8d4a350b7a4c?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/c44a1a792c059f24055763aa77d80a244467f6eef724a8bd13db8d4a350b7a4c?s=96&d=mm&r=g","caption":"Microsoft Team"},"url":"https:\/\/www.dbi-services.com\/blog\/author\/microsoft-team\/"}]}},"_links":{"self":[{"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/posts\/12066","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/users\/26"}],"replies":[{"embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/comments?post=12066"}],"version-history":[{"count":1,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/posts\/12066\/revisions"}],"predecessor-version":[{"id":26750,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/posts\/12066\/revisions\/26750"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/media\/12068"}],"wp:attachment":[{"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/media?parent=12066"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/categories?post=12066"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/tags?post=12066"},{"taxonomy":"type","embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/type_dbi?post=12066"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}