<br />
<b>Warning</b>:  Undefined array key "PATH_INFO" in <b>/var/www/html/blogs/paul/wp-content/themes/sql-skills/functions.php</b> on line <b>13</b><br />
{"version":"1.0","provider_name":"Paul S. Randal","provider_url":"https:\/\/www.sqlskills.com\/blogs\/paul","title":"SQL101: Introduction to SQL Server Transactions - Paul S. Randal","type":"rich","width":600,"height":338,"html":"<blockquote class=\"wp-embedded-content\" data-secret=\"f5xR1bGJlh\"><a href=\"https:\/\/www.sqlskills.com\/blogs\/paul\/sql101-introduction-to-sql-server-transactions\/\">SQL101: Introduction to SQL Server Transactions<\/a><\/blockquote><iframe sandbox=\"allow-scripts\" security=\"restricted\" src=\"https:\/\/www.sqlskills.com\/blogs\/paul\/sql101-introduction-to-sql-server-transactions\/embed\/#?secret=f5xR1bGJlh\" width=\"600\" height=\"338\" title=\"&#8220;SQL101: Introduction to SQL Server Transactions&#8221; &#8212; Paul S. Randal\" data-secret=\"f5xR1bGJlh\" frameborder=\"0\" marginwidth=\"0\" marginheight=\"0\" scrolling=\"no\" class=\"wp-embedded-content\"><\/iframe><script>\n\/*! This file is auto-generated *\/\n!function(d,l){\"use strict\";l.querySelector&&d.addEventListener&&\"undefined\"!=typeof URL&&(d.wp=d.wp||{},d.wp.receiveEmbedMessage||(d.wp.receiveEmbedMessage=function(e){var t=e.data;if((t||t.secret||t.message||t.value)&&!\/[^a-zA-Z0-9]\/.test(t.secret)){for(var s,r,n,a=l.querySelectorAll('iframe[data-secret=\"'+t.secret+'\"]'),o=l.querySelectorAll('blockquote[data-secret=\"'+t.secret+'\"]'),c=new RegExp(\"^https?:$\",\"i\"),i=0;i<o.length;i++)o[i].style.display=\"none\";for(i=0;i<a.length;i++)s=a[i],e.source===s.contentWindow&&(s.removeAttribute(\"style\"),\"height\"===t.message?(1e3<(r=parseInt(t.value,10))?r=1e3:~~r<200&&(r=200),s.height=r):\"link\"===t.message&&(r=new URL(s.getAttribute(\"src\")),n=new URL(t.value),c.test(n.protocol))&&n.host===r.host&&l.activeElement===s&&(d.top.location.href=t.value))}},d.addEventListener(\"message\",d.wp.receiveEmbedMessage,!1),l.addEventListener(\"DOMContentLoaded\",function(){for(var e,t,s=l.querySelectorAll(\"iframe.wp-embedded-content\"),r=0;r<s.length;r++)(t=(e=s[r]).getAttribute(\"data-secret\"))||(t=Math.random().toString(36).substring(2,12),e.src+=\"#?secret=\"+t,e.setAttribute(\"data-secret\",t)),e.contentWindow.postMessage({message:\"ready\",secret:t},\"*\")},!1)))}(window,document);\n\/\/# sourceURL=https:\/\/www.sqlskills.com\/blogs\/paul\/wp-includes\/js\/wp-embed.min.js\n<\/script>\n","description":"(The original version of this post first appeared on the now-deleted SentryOne blog at the start of 2022.) One of the most fundamental concepts in any relational database management system (RDBMS), such as SQL Server, is the transaction. During my consulting career, I&#8217;ve seen many instances of performance problems caused by developers not understanding how [&hellip;]"}