{"id":12859,"date":"2019-10-07T16:37:02","date_gmt":"2019-10-07T14:37:02","guid":{"rendered":"https:\/\/www.dbi-services.com\/blog\/sql-server-2019-accelerated-database-recovery-instantaneous-rollback-and-aggressive-log-truncation\/"},"modified":"2023-07-17T11:28:46","modified_gmt":"2023-07-17T09:28:46","slug":"sql-server-2019-accelerated-database-recovery-instantaneous-rollback-and-aggressive-log-truncation","status":"publish","type":"post","link":"https:\/\/www.dbi-services.com\/blog\/sql-server-2019-accelerated-database-recovery-instantaneous-rollback-and-aggressive-log-truncation\/","title":{"rendered":"SQL Server 2019 Accelerated Database Recovery &#8211; Instantaneous rollback and aggressive log truncation"},"content":{"rendered":"<p><span style=\"font-family: Calibri;\"><span lang=\"EN-US\"><span style=\"color: #000000;\">In my previous article about <\/span><\/span><a href=\"https:\/\/www.dbi-services.com\/blog\/introducing-accelerated-database-recovery-with-sql-server-2019\/\" target=\"_blank\" rel=\"noopener noreferrer\"><span lang=\"EN-US\">Accelerated Database Recovery<\/span><\/a><span lang=\"EN-US\"><span style=\"color: #000000;\"> (ADR), I wrote mostly about the new Persistent Volume Store (PVS), how important it was important in the new SQL database engine recovery process and the potential impact it may have on the application workload. This time let\u2019s talk a little bit more about ADR feature benefits we may get with instantaneous rollback and aggressive log truncation. These two capabilities will address some DBA pains especially when rollback or crash recovery kick in with open long running transactions. <\/span><\/span><\/span><\/p>\n<p><span lang=\"EN-US\"><span style=\"color: #000000; font-family: Calibri;\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-34751\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/164-0-adr-banner.jpg\" alt=\"\" width=\"750\" height=\"500\" \/><\/span><\/span><\/p>\n<p><span lang=\"EN-US\"><span style=\"color: #000000; font-family: Calibri;\">First, let\u2019s set the context by running the following long running transaction without ADR enabled:<\/span><\/span><\/p>\n<pre class=\"brush: sql; gutter: true; first-line: 1\">BEGIN TRAN;\nUPDATE dbo.bigTransactionHistory\nSET Quantity = Quantity + 1;\nGO\n\nUPDATE dbo.bigTransactionHistory\nSET Quantity = Quantity + 1;\nGO\nROLLBACK TRAN;<\/pre>\n<p><span lang=\"EN-US\"><span style=\"color: #000000; font-family: Calibri;\">The above query generates 10GB of log records (roughly 90% of the total transaction log space size) as shown below:<\/span><\/span><\/p>\n<pre class=\"brush: sql; gutter: true; first-line: 1\">SELECT \n\tDB_NAME(database_id) AS database_name,\n\ttotal_log_size_in_bytes \/ 1024 \/ 1024 \/ 1024 AS total_GB,\n\tused_log_space_in_bytes \/ 1024 \/ 1024 \/ 1024 AS used_GB,\n\tused_log_space_in_percent\nFROM sys.dm_db_log_space_usage<\/pre>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-34743\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/164-1-Tlog-used-spaced-without-ADR.jpg\" alt=\"\" width=\"572\" height=\"68\" \/><\/p>\n<p><span lang=\"EN-US\"><span style=\"color: #000000; font-family: Calibri;\">Before cancelling my previous query to trigger a rollback operation, let\u2019s run the following concurrent update:<\/span><\/span><\/p>\n<pre class=\"brush: sql; gutter: true; first-line: 1\">BEGIN TRAN;\n\nDECLARE @begin_date DATETIME = GETDATE();\n\nUPDATE dbo.bigTransactionHistory\nSET Quantity = Quantity + 1\nWhere TransactionID = 1;\n\nDECLARE @end_date DATETIME = GETDATE();\n\nSELECT DATEDIFF(SECOND, @begin_date, @end_date);<\/pre>\n<p><span lang=\"EN-US\"><span style=\"color: #000000; font-family: Calibri;\">As expected, the second query is blocked during the rollback process of the first one because they compete on the same resource:<\/span><\/span><\/p>\n<pre class=\"brush: sql; gutter: true; first-line: 1\">SELECT \n\tspid,\n\tblocked,\n\tlastwaittype,\n\twaitresource,\n\tcmd,\n\tprogram_name\nFROM sys.sysprocesses\nWHERE spid IN (64, 52)<\/pre>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-34744\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/164-2-Session-blocked-during-rollback.jpg\" alt=\"\" width=\"796\" height=\"142\" \/><\/p>\n<p><span lang=\"EN-US\"><span style=\"color: #000000; font-family: Calibri;\">In my case, the second query was blocked during 135s. Regarding your scenario, it could be less or more. I experienced this annoying issue myself at some customer shops and I\u2019m pretty sure it is the case of many of SQL Server DBAs. <\/span><\/span><\/p>\n<p><span lang=\"EN-US\"><span style=\"color: #000000; font-family: Calibri;\">Let\u2019s now perform the same test after enabling ADR. Executing the query below (used in my first test) gave interesting results. <\/span><\/span><\/p>\n<pre class=\"brush: sql; gutter: true; first-line: 1\">BEGIN TRAN;\nUPDATE dbo.bigTransactionHistory\nSET Quantity = Quantity + 1;\nGO\n\nUPDATE dbo.bigTransactionHistory\nSET Quantity = Quantity + 1;\nGO<\/pre>\n<p>First, rolling back the transaction was pretty instantaneous and the concurrent query executed faster without being blocked by ROLLBACK process. This is where the logical revert comes into play. As stated to the <a href=\"https:\/\/docs.microsoft.com\/en-us\/azure\/sql-database\/sql-database-accelerated-database-recovery\" target=\"_blank\" rel=\"noopener noreferrer\">Microsoft documentation<\/a>, when rollback is triggered all locks are released immediately. Unlike the usual recovery process, ADR uses the additional PVS is to cancel operations for identified aborted transactions by restoring the latest committed version of concerned rows. The <em>sys.dm_tran_aborted_transactions<\/em> DMV provides a picture of aborted transactions:<\/p>\n<pre class=\"brush: sql; gutter: true; first-line: 1\">SELECT *\nFROM sys.dm_tran_aborted_transactions;\nGO<\/pre>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-34747\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/164-6-aborted-transactions.jpg\" alt=\"\" width=\"654\" height=\"47\" \/><\/p>\n<p><span lang=\"EN-US\"><span style=\"color: #000000; font-family: Calibri;\">For a sake of curiosity, I tried to dig further into the transaction log file to compare rollback operations between usual recovery process and ADR-based recovery process. I used a simpler scenario including a simple dbo.test_adr table with one id column and that consists in insert 2 rows and updating them afterwards. To get log record data, the sys.fn_db_log function is your friend. <\/span><\/span><\/p>\n<pre class=\"brush: sql; gutter: true; first-line: 1\">CREATE TABLE dbo.test_adr (\n\tid INT\n);\n\nCHECKPOINT;\n\nBEGIN TRAN;\n\nINSERT INTO dbo.test_adr ( id ) VALUES (1), (2);\n\nUPDATE dbo.test_adr SET id = id + 1;\n\nROLLBACK TRAN;\n\nSELECT \n\t[Current LSN]\n\t,Operation\n\t,Context\n\t,[Transaction ID]\n\t,[Lock Information]\n\t,[Description]\n       ,[AllocUnitName]\nFROM sys.fn_dblog(NULL, NULL);<\/pre>\n<p><span lang=\"EN-US\"><span style=\"font-family: Calibri;\"><span style=\"color: #000000;\">Without ADR, we retrieve usual log records for rollback operations including compensation records and the transaction\u2019s end rollback mark. In such case, remind the locks are released only at the end of the rollback operation (LOP_ABORT_XACT).\u00a0 <\/span><\/span><\/span><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-34748 size-full\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/164-7-tlog-details-rollback-without-adr-e1570464863196.jpg\" alt=\"\" width=\"900\" height=\"219\" \/><\/p>\n<p><span lang=\"EN-US\"><span style=\"color: #000000; font-family: Calibri;\">With ADR, the story is a little bit different: <\/span><\/span><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-34749 size-full\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/164-8-tlog-details-rollback-with-adr-e1570464950418.jpg\" alt=\"\" width=\"900\" height=\"282\" \/><\/p>\n<p><span lang=\"EN-US\"><span style=\"color: #000000; font-family: Calibri;\">Let\u2019s precise it is only a speculation stuff from my own here and I just tried to correlate information from the <a href=\"https:\/\/docs.microsoft.com\/en-us\/azure\/sql-database\/sql-database-accelerated-database-recovery\" target=\"_blank\" rel=\"noopener noreferrer\">Microsoft documentation<\/a>. So, don\u2019t take my word for it. W<\/span><\/span><span style=\"color: #000000;\"><span lang=\"EN-US\"><span style=\"font-family: Calibri;\">hen a transaction is roll backed, it is marked as aborted and tracked by the logical revert operation. The good news is that locks are immediately released afterwards. My guess is that the LOP_FORGET_XACT record corresponds to the moment when the transaction is marked as aborted and since this moment no blocking issues related to the ROLLBACK can occur. At the same time the logical revert is an asynchronous process and comes into play by providing instantaneous transaction rollback and undo for all versioned operations by using the PVS.\u00a0 <\/span><\/span><\/span><\/p>\n<p><span lang=\"EN-US\"><span style=\"color: #000000; font-family: Calibri;\">Second, reverting to this first test scenario \u2026<\/span><\/span><\/p>\n<pre class=\"brush: sql; gutter: true; first-line: 1\">BEGIN TRAN;\nUPDATE dbo.bigTransactionHistory\nSET Quantity = Quantity + 1;\nGO\n\nUPDATE dbo.bigTransactionHistory\nSET Quantity = Quantity + 1;\nGO<\/pre>\n<p><span lang=\"EN-US\"><span style=\"font-family: Calibri;\"><span style=\"color: #000000;\">\u2026 I noticed the transaction log file space was used differently and even less compared to my first previous test without ADR enabled. I performed the same test several times and I got results in the same order of magnitude. \u00a0<\/span><\/span><\/span><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-34745\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/164-3-Tlog-used-spaced-with-ADR.jpg\" alt=\"\" width=\"530\" height=\"60\" \/><\/p>\n<p><span lang=\"EN-US\"><span style=\"color: #000000; font-family: Calibri;\">I got some clues by adding some perfmon counters:<\/span><\/span><\/p>\n<ul>\n<li><span style=\"color: #000000;\"><span lang=\"EN-US\"><span style=\"font-family: Calibri;\">SQL Server databases:PVS in-row diff generated\/sec<\/span><\/span><\/span><\/li>\n<li><span style=\"color: #000000;\"><span lang=\"EN-US\"><span style=\"font-family: Calibri;\">SQL Server databases:PVS off-row records generated\/sec<\/span><\/span><\/span><\/li>\n<li><span style=\"color: #000000;\"><span lang=\"EN-US\"><span style=\"font-family: Calibri;\">SQL Server databases:Percent Log Used<\/span><\/span><\/span><\/li>\n<li><span style=\"color: #000000;\"><span lang=\"EN-US\"><span style=\"font-family: Calibri;\">SQL Server Buffer Manager:Checkpoints\/sec<\/span><\/span><\/span><\/li>\n<\/ul>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-34746 size-full\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/164-5-Tracking-aborted-tran-with-ADR-perfmon-e1570465216867.jpg\" alt=\"\" width=\"900\" height=\"335\" \/><\/p>\n<p><span lang=\"EN-US\"><span style=\"color: #000000; font-family: Calibri;\">My two update operations use different storage strategies for storing row versions. Indeed, in the first shot, row versions fit in the data page whereas in the second shot SQL Server must go through the off-row storage to store additional versions. In addition, we are also seeing interesting behavior of the ADR sLog component with the aggressive log truncation at the moment of the different checkpoint operations. Due to the changes in logging, only certain operations require log space and because the sLog content on every checkpoint operation it makes possible aggressive log truncation. <\/span><\/span><\/p>\n<p><span lang=\"EN-US\"><span style=\"color: #000000; font-family: Calibri;\">In my case, it led to keep under control the space used by my long running transaction even if it is in open state. <\/span><\/span><\/p>\n<p><span lang=\"EN-US\"><span style=\"color: #000000; font-family: Calibri;\">In this blog post we\u2019ve seen how ADR may address database unavailability paint point through instantaneous rollback and aggressive log truncation. Good to know that we may get benefit from such features in SQL Server 2019!<\/span><\/span><\/p>\n<p><span lang=\"EN-US\"><span style=\"color: #000000; font-family: Calibri;\">See you!<\/span><\/span><\/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>In my previous article about Accelerated Database Recovery (ADR), I wrote mostly about the new Persistent Volume Store (PVS), how important it was important in the new SQL database engine recovery process and the potential impact it may have on the application workload. This time let\u2019s talk a little bit more about ADR feature benefits [&hellip;]<\/p>\n","protected":false},"author":26,"featured_media":12861,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[229,99],"tags":[1690,1174,1691,1709,1457],"type_dbi":[],"class_list":["post-12859","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-database-administration-monitoring","category-sql-server","tag-accelerated-database-recovery","tag-adr","tag-recovery-process","tag-rollback","tag-sql-server-2019"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v27.2 (Yoast SEO v27.5) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>SQL Server 2019 Accelerated Database Recovery - Instantaneous rollback and aggressive log truncation - dbi Blog<\/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-accelerated-database-recovery-instantaneous-rollback-and-aggressive-log-truncation\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"SQL Server 2019 Accelerated Database Recovery - Instantaneous rollback and aggressive log truncation\" \/>\n<meta property=\"og:description\" content=\"In my previous article about Accelerated Database Recovery (ADR), I wrote mostly about the new Persistent Volume Store (PVS), how important it was important in the new SQL database engine recovery process and the potential impact it may have on the application workload. This time let\u2019s talk a little bit more about ADR feature benefits [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.dbi-services.com\/blog\/sql-server-2019-accelerated-database-recovery-instantaneous-rollback-and-aggressive-log-truncation\/\" \/>\n<meta property=\"og:site_name\" content=\"dbi Blog\" \/>\n<meta property=\"article:published_time\" content=\"2019-10-07T14:37:02+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2023-07-17T09:28:46+00:00\" \/>\n<meta property=\"og:image\" content=\"http:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/164-1-Tlog-used-spaced-without-ADR.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"572\" \/>\n\t<meta property=\"og:image:height\" content=\"68\" \/>\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=\"5 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-accelerated-database-recovery-instantaneous-rollback-and-aggressive-log-truncation\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/sql-server-2019-accelerated-database-recovery-instantaneous-rollback-and-aggressive-log-truncation\\\/\"},\"author\":{\"name\":\"Microsoft Team\",\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/#\\\/schema\\\/person\\\/bfab48333280d616e1170e7369df90a4\"},\"headline\":\"SQL Server 2019 Accelerated Database Recovery &#8211; Instantaneous rollback and aggressive log truncation\",\"datePublished\":\"2019-10-07T14:37:02+00:00\",\"dateModified\":\"2023-07-17T09:28:46+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/sql-server-2019-accelerated-database-recovery-instantaneous-rollback-and-aggressive-log-truncation\\\/\"},\"wordCount\":804,\"commentCount\":0,\"image\":{\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/sql-server-2019-accelerated-database-recovery-instantaneous-rollback-and-aggressive-log-truncation\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/wp-content\\\/uploads\\\/sites\\\/2\\\/2022\\\/04\\\/164-1-Tlog-used-spaced-without-ADR.jpg\",\"keywords\":[\"Accelerated Database Recovery\",\"ADR\",\"Recovery process\",\"Rollback\",\"SQL Server 2019\"],\"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-accelerated-database-recovery-instantaneous-rollback-and-aggressive-log-truncation\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/sql-server-2019-accelerated-database-recovery-instantaneous-rollback-and-aggressive-log-truncation\\\/\",\"url\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/sql-server-2019-accelerated-database-recovery-instantaneous-rollback-and-aggressive-log-truncation\\\/\",\"name\":\"SQL Server 2019 Accelerated Database Recovery - Instantaneous rollback and aggressive log truncation - dbi Blog\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/sql-server-2019-accelerated-database-recovery-instantaneous-rollback-and-aggressive-log-truncation\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/sql-server-2019-accelerated-database-recovery-instantaneous-rollback-and-aggressive-log-truncation\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/wp-content\\\/uploads\\\/sites\\\/2\\\/2022\\\/04\\\/164-1-Tlog-used-spaced-without-ADR.jpg\",\"datePublished\":\"2019-10-07T14:37:02+00:00\",\"dateModified\":\"2023-07-17T09:28:46+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/#\\\/schema\\\/person\\\/bfab48333280d616e1170e7369df90a4\"},\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/sql-server-2019-accelerated-database-recovery-instantaneous-rollback-and-aggressive-log-truncation\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/sql-server-2019-accelerated-database-recovery-instantaneous-rollback-and-aggressive-log-truncation\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/sql-server-2019-accelerated-database-recovery-instantaneous-rollback-and-aggressive-log-truncation\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/wp-content\\\/uploads\\\/sites\\\/2\\\/2022\\\/04\\\/164-1-Tlog-used-spaced-without-ADR.jpg\",\"contentUrl\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/wp-content\\\/uploads\\\/sites\\\/2\\\/2022\\\/04\\\/164-1-Tlog-used-spaced-without-ADR.jpg\",\"width\":572,\"height\":68},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/sql-server-2019-accelerated-database-recovery-instantaneous-rollback-and-aggressive-log-truncation\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Accueil\",\"item\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"SQL Server 2019 Accelerated Database Recovery &#8211; Instantaneous rollback and aggressive log truncation\"}]},{\"@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 Accelerated Database Recovery - Instantaneous rollback and aggressive log truncation - dbi Blog","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-accelerated-database-recovery-instantaneous-rollback-and-aggressive-log-truncation\/","og_locale":"en_US","og_type":"article","og_title":"SQL Server 2019 Accelerated Database Recovery - Instantaneous rollback and aggressive log truncation","og_description":"In my previous article about Accelerated Database Recovery (ADR), I wrote mostly about the new Persistent Volume Store (PVS), how important it was important in the new SQL database engine recovery process and the potential impact it may have on the application workload. This time let\u2019s talk a little bit more about ADR feature benefits [&hellip;]","og_url":"https:\/\/www.dbi-services.com\/blog\/sql-server-2019-accelerated-database-recovery-instantaneous-rollback-and-aggressive-log-truncation\/","og_site_name":"dbi Blog","article_published_time":"2019-10-07T14:37:02+00:00","article_modified_time":"2023-07-17T09:28:46+00:00","og_image":[{"width":572,"height":68,"url":"http:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/164-1-Tlog-used-spaced-without-ADR.jpg","type":"image\/jpeg"}],"author":"Microsoft Team","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Microsoft Team","Est. reading time":"5 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.dbi-services.com\/blog\/sql-server-2019-accelerated-database-recovery-instantaneous-rollback-and-aggressive-log-truncation\/#article","isPartOf":{"@id":"https:\/\/www.dbi-services.com\/blog\/sql-server-2019-accelerated-database-recovery-instantaneous-rollback-and-aggressive-log-truncation\/"},"author":{"name":"Microsoft Team","@id":"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/bfab48333280d616e1170e7369df90a4"},"headline":"SQL Server 2019 Accelerated Database Recovery &#8211; Instantaneous rollback and aggressive log truncation","datePublished":"2019-10-07T14:37:02+00:00","dateModified":"2023-07-17T09:28:46+00:00","mainEntityOfPage":{"@id":"https:\/\/www.dbi-services.com\/blog\/sql-server-2019-accelerated-database-recovery-instantaneous-rollback-and-aggressive-log-truncation\/"},"wordCount":804,"commentCount":0,"image":{"@id":"https:\/\/www.dbi-services.com\/blog\/sql-server-2019-accelerated-database-recovery-instantaneous-rollback-and-aggressive-log-truncation\/#primaryimage"},"thumbnailUrl":"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/164-1-Tlog-used-spaced-without-ADR.jpg","keywords":["Accelerated Database Recovery","ADR","Recovery process","Rollback","SQL Server 2019"],"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-accelerated-database-recovery-instantaneous-rollback-and-aggressive-log-truncation\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.dbi-services.com\/blog\/sql-server-2019-accelerated-database-recovery-instantaneous-rollback-and-aggressive-log-truncation\/","url":"https:\/\/www.dbi-services.com\/blog\/sql-server-2019-accelerated-database-recovery-instantaneous-rollback-and-aggressive-log-truncation\/","name":"SQL Server 2019 Accelerated Database Recovery - Instantaneous rollback and aggressive log truncation - dbi Blog","isPartOf":{"@id":"https:\/\/www.dbi-services.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.dbi-services.com\/blog\/sql-server-2019-accelerated-database-recovery-instantaneous-rollback-and-aggressive-log-truncation\/#primaryimage"},"image":{"@id":"https:\/\/www.dbi-services.com\/blog\/sql-server-2019-accelerated-database-recovery-instantaneous-rollback-and-aggressive-log-truncation\/#primaryimage"},"thumbnailUrl":"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/164-1-Tlog-used-spaced-without-ADR.jpg","datePublished":"2019-10-07T14:37:02+00:00","dateModified":"2023-07-17T09:28:46+00:00","author":{"@id":"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/bfab48333280d616e1170e7369df90a4"},"breadcrumb":{"@id":"https:\/\/www.dbi-services.com\/blog\/sql-server-2019-accelerated-database-recovery-instantaneous-rollback-and-aggressive-log-truncation\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.dbi-services.com\/blog\/sql-server-2019-accelerated-database-recovery-instantaneous-rollback-and-aggressive-log-truncation\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.dbi-services.com\/blog\/sql-server-2019-accelerated-database-recovery-instantaneous-rollback-and-aggressive-log-truncation\/#primaryimage","url":"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/164-1-Tlog-used-spaced-without-ADR.jpg","contentUrl":"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/164-1-Tlog-used-spaced-without-ADR.jpg","width":572,"height":68},{"@type":"BreadcrumbList","@id":"https:\/\/www.dbi-services.com\/blog\/sql-server-2019-accelerated-database-recovery-instantaneous-rollback-and-aggressive-log-truncation\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Accueil","item":"https:\/\/www.dbi-services.com\/blog\/"},{"@type":"ListItem","position":2,"name":"SQL Server 2019 Accelerated Database Recovery &#8211; Instantaneous rollback and aggressive log truncation"}]},{"@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\/12859","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=12859"}],"version-history":[{"count":1,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/posts\/12859\/revisions"}],"predecessor-version":[{"id":26721,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/posts\/12859\/revisions\/26721"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/media\/12861"}],"wp:attachment":[{"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/media?parent=12859"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/categories?post=12859"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/tags?post=12859"},{"taxonomy":"type","embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/type_dbi?post=12859"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}