{"id":3213,"date":"2012-08-28T09:00:00","date_gmt":"2012-08-28T16:00:00","guid":{"rendered":"https:\/\/blogs.technet.microsoft.com\/dataplatforminsider\/2012\/08\/28\/tpc-e-raising-the-bar-in-oltp-performance\/"},"modified":"2024-01-22T22:49:34","modified_gmt":"2024-01-23T06:49:34","slug":"tpc-e-raising-the-bar-in-oltp-performance","status":"publish","type":"post","link":"https:\/\/cm-edgetun.pages.dev\/en-us\/sql-server\/blog\/2012\/08\/28\/tpc-e-raising-the-bar-in-oltp-performance\/","title":{"rendered":"TPC-E \u2013 Raising the Bar in OLTP Performance"},"content":{"rendered":"<div style=\"margin:0in 0in 0pt;line-height:normal;\"><span style=\"font-size:small;\"><span style=\"font-family:'Segoe UI';\"><strong><em>Blog Author<\/em>:<\/strong>\u00a0 Charles Levine, <\/span><span style=\"font-family:'Segoe UI';\">Principal Program Manager, SQL Server Performance Engineering<\/span><\/span><\/div>\n<p><span style=\"font-family:'Segoe UI';font-size:small;\">Maximizing SQL Server\u2019s performance and scalability is a complex engineering challenge. Beyond good architecture and well-designed code, we also extensively measure SQL Server to ensure that it delivers the best performance compared to previous versions and other databases. But which benchmarks do we use? That\u2019s an important question. Being super-fast on workloads that aren\u2019t relevant for real-world applications may be good for bragging rights, but doesn\u2019t help our customers. <\/span><\/p>\n<p><span style=\"font-family:'Segoe UI';font-size:small;\">We actually use many benchmarks to get a broad spectrum of coverage. In OLTP, though, our primary workload is the Transaction Processing Performance Council\u2019s <\/span><a href=\"http:\/\/www.tpc.org\/tpce\/\"><span style=\"font-family:'Segoe UI';font-size:small;\">TPC-E<\/span><\/a><span style=\"font-family:'Segoe UI';font-size:small;\"> benchmark [1]. The <\/span><a href=\"http:\/\/www.tpc.org\/\"><span style=\"font-family:'Segoe UI';font-size:small;\">TPC<\/span><\/a><span style=\"font-family:'Segoe UI';font-size:small;\"> is an industry standards organization that defines performance benchmarks. TPC-E exercises a range of complex database functions that are representative of real-world workloads.<\/span><\/p>\n<p><span style=\"font-family:'Segoe UI';font-size:small;\">In this post, I want to give you some insight into why we focus on TPC-E for our engineering work and why we\u2019ve abandoned the better known, but now less relevant, TPC-C for published results and marketing. <\/span><\/p>\n<p><span style=\"font-family:'Segoe UI';font-size:small;\">TPC-C is 20 years old and has changed little since its introduction in 1992. All of the major DBMS companies have spent years picking through every detail of TPC-C. Databases have been optimized for TPC-C to such a degree that it long ago stopped driving customer-relevant engineering improvements. <\/span><\/p>\n<p><span style=\"font-family:'Segoe UI';font-size:small;\">In contrast, TPC-E is just five years old. The TPC designed it to supersede TPC-C. Microsoft was one of many companies that contributed to the development of TPC-E. We were also an early adopter of TPC-E after recognizing that TPC-C was no longer driving our engineering work in directions that benefited our customers. TPC-E has proven to be a well-constructed workload that has driven many improvements in SQL Server, surfacing performance and scalability issues that had gone undiscovered in more than a decade of running TPC-C.<\/span><\/p>\n<p><span style=\"font-family:'Segoe UI';font-size:small;\">But don\u2019t take our word for it. This IBM <\/span><a><span style=\"font-family:'Segoe UI';font-size:small;\">whitepaper<\/span><\/a><span style=\"font-family:'Segoe UI';font-size:small;\"> [2] explains how TPC-E was designed to be more realistic than TPC-C. There are numerous ways, detailed in the whitepaper, in which TPC-E is far superior to TPC-C. The table below compares TPC-C and TPC-E on several dimensions. As you can see, in TPC-E the schema is substantially richer and more complex, there are twice as many transactions as TPC-C, and only TPC-E requires essential capabilities such as referential integrity and RAID protected storage. Which one looks more like your own databases?<\/span><\/p>\n<table class=\"MsoNormalTable\" style=\"border-collapse:collapse;margin:2.75pt 6.75pt;\" cellspacing=\"0\" cellpadding=\"0\" border=\"1\">\n<tbody>\n<tr>\n<td style=\"padding-bottom:0in;padding-top:0in;padding-left:5.4pt;padding-right:5.4pt;border:black 1pt solid;\" valign=\"top\" width=\"245\">\u00a0<\/td>\n<td style=\"border-top:black 1pt solid;border-right:black 1pt solid;border-bottom:black 1pt solid;padding-bottom:0in;padding-top:0in;padding-left:5.4pt;border-left:medium none;padding-right:5.4pt;\" valign=\"top\" width=\"150\">\n<div style=\"margin:0in 0in 0pt;line-height:normal;\" align=\"center\">\n<b><span><span style=\"font-size:12pt;\">TPC-C<\/span><\/span><\/b><b><span><\/span><\/b>\n<\/div>\n<\/td>\n<td style=\"border-top:black 1pt solid;border-right:black 1pt solid;border-bottom:black 1pt solid;padding-bottom:0in;padding-top:0in;padding-left:5.4pt;border-left:medium none;padding-right:5.4pt;\" valign=\"top\" width=\"156\">\n<div style=\"margin:0in 0in 0pt;line-height:normal;\" align=\"center\">\n<b><span><span style=\"font-size:12pt;\">TPC-E<\/span><\/span><\/b><b><span><\/span><\/b>\n<\/div>\n<\/td>\n<\/tr>\n<tr>\n<td style=\"border-top:medium none;border-right:black 1pt solid;background:#d9d9d9;border-bottom:black 1pt solid;padding-bottom:0in;padding-top:0in;padding-left:5.4pt;border-left:black 1pt solid;padding-right:5.4pt;\" valign=\"top\" width=\"245\">\n<div style=\"margin:0in 0in 0pt;line-height:normal;\">\n<b><span><span style=\"font-size:10pt;color:#0000ff;\">Schema<\/span><\/span><\/b><b><span><\/span><\/b>\n<\/div>\n<\/td>\n<td style=\"border-top:medium none;border-right:black 1pt solid;background:#d9d9d9;border-bottom:black 1pt solid;padding-bottom:0in;padding-top:0in;padding-left:5.4pt;border-left:medium none;padding-right:5.4pt;\" valign=\"top\" width=\"150\">\u00a0<\/td>\n<td style=\"border-top:medium none;border-right:black 1pt solid;background:#d9d9d9;border-bottom:black 1pt solid;padding-bottom:0in;padding-top:0in;padding-left:5.4pt;border-left:medium none;padding-right:5.4pt;\" valign=\"top\" width=\"156\">\u00a0<\/td>\n<\/tr>\n<tr>\n<td style=\"border-top:medium none;border-right:black 1pt solid;border-bottom:black 1pt solid;padding-bottom:0in;padding-top:0in;padding-left:5.4pt;border-left:black 1pt solid;padding-right:5.4pt;\" valign=\"top\" width=\"245\">\n<div style=\"margin:0in 0in 0pt 7.7pt;line-height:normal;\">\n<span><span style=\"font-size:10pt;\">Number of database tables<\/span><\/span><span><\/span>\n<\/div>\n<\/td>\n<td style=\"border-top:medium none;border-right:black 1pt solid;border-bottom:black 1pt solid;padding-bottom:0in;padding-top:0in;padding-left:5.4pt;border-left:medium none;padding-right:5.4pt;\" valign=\"top\" width=\"150\">\n<div style=\"margin:0in 0in 0pt;line-height:normal;\" align=\"center\">\n<b><span><span style=\"font-size:10pt;\">9<\/span><\/span><\/b><b><span><\/span><\/b>\n<\/div>\n<\/td>\n<td style=\"border-top:medium none;border-right:black 1pt solid;border-bottom:black 1pt solid;padding-bottom:0in;padding-top:0in;padding-left:5.4pt;border-left:medium none;padding-right:5.4pt;\" valign=\"top\" width=\"156\">\n<div style=\"margin:0in 0in 0pt;line-height:normal;\" align=\"center\">\n<b><span><span style=\"font-size:10pt;\">33<\/span><\/span><\/b><b><span><\/span><\/b>\n<\/div>\n<\/td>\n<\/tr>\n<tr>\n<td style=\"border-top:medium none;border-right:black 1pt solid;border-bottom:black 1pt solid;padding-bottom:0in;padding-top:0in;padding-left:5.4pt;border-left:black 1pt solid;padding-right:5.4pt;\" valign=\"top\" width=\"245\">\n<div style=\"margin:0in 0in 0pt 7.7pt;line-height:normal;\">\n<span><span style=\"font-size:10pt;\">Foreign keys<\/span><\/span><span><\/span>\n<\/div>\n<\/td>\n<td style=\"border-top:medium none;border-right:black 1pt solid;border-bottom:black 1pt solid;padding-bottom:0in;padding-top:0in;padding-left:5.4pt;border-left:medium none;padding-right:5.4pt;\" valign=\"top\" width=\"150\">\n<div style=\"margin:0in 0in 0pt;line-height:normal;\" align=\"center\">\n<b><span><span style=\"font-size:10pt;\">9<\/span><\/span><\/b><b><span><\/span><\/b>\n<\/div>\n<\/td>\n<td style=\"border-top:medium none;border-right:black 1pt solid;border-bottom:black 1pt solid;padding-bottom:0in;padding-top:0in;padding-left:5.4pt;border-left:medium none;padding-right:5.4pt;\" valign=\"top\" width=\"156\">\n<div style=\"margin:0in 0in 0pt;line-height:normal;\" align=\"center\">\n<b><span><span style=\"font-size:10pt;\">50<\/span><\/span><\/b><b><span><\/span><\/b>\n<\/div>\n<\/td>\n<\/tr>\n<tr>\n<td style=\"border-top:medium none;border-right:black 1pt solid;border-bottom:black 1pt solid;padding-bottom:0in;padding-top:0in;padding-left:5.4pt;border-left:black 1pt solid;padding-right:5.4pt;\" valign=\"top\" width=\"245\">\n<div style=\"margin:0in 0in 0pt 7.7pt;line-height:normal;\">\n<span><span style=\"font-size:10pt;\">Tables with foreign keys<\/span><\/span><span><\/span>\n<\/div>\n<\/td>\n<td style=\"border-top:medium none;border-right:black 1pt solid;border-bottom:black 1pt solid;padding-bottom:0in;padding-top:0in;padding-left:5.4pt;border-left:medium none;padding-right:5.4pt;\" valign=\"top\" width=\"150\">\n<div style=\"margin:0in 0in 0pt;line-height:normal;\" align=\"center\">\n<b><span><span style=\"font-size:10pt;\">7<\/span><\/span><\/b><b><span><\/span><\/b>\n<\/div>\n<\/td>\n<td style=\"border-top:medium none;border-right:black 1pt solid;border-bottom:black 1pt solid;padding-bottom:0in;padding-top:0in;padding-left:5.4pt;border-left:medium none;padding-right:5.4pt;\" valign=\"top\" width=\"156\">\n<div style=\"margin:0in 0in 0pt;line-height:normal;\" align=\"center\">\n<b><span><span style=\"font-size:10pt;\">27<\/span><\/span><\/b><b><span><\/span><\/b>\n<\/div>\n<\/td>\n<\/tr>\n<tr>\n<td style=\"border-top:medium none;border-right:black 1pt solid;border-bottom:black 1pt solid;padding-bottom:0in;padding-top:0in;padding-left:5.4pt;border-left:black 1pt solid;padding-right:5.4pt;\" valign=\"top\" width=\"245\">\n<div style=\"margin:0in 0in 0pt 7.7pt;line-height:normal;\">\n<span><span style=\"font-size:10pt;\">Check constraints<\/span><\/span><span><\/span>\n<\/div>\n<\/td>\n<td style=\"border-top:medium none;border-right:black 1pt solid;border-bottom:black 1pt solid;padding-bottom:0in;padding-top:0in;padding-left:5.4pt;border-left:medium none;padding-right:5.4pt;\" valign=\"top\" width=\"150\">\n<div style=\"margin:0in 0in 0pt;line-height:normal;\" align=\"center\">\n<b><span><span style=\"font-size:10pt;\">0<\/span><\/span><\/b><b><span><\/span><\/b>\n<\/div>\n<\/td>\n<td style=\"border-top:medium none;border-right:black 1pt solid;border-bottom:black 1pt solid;padding-bottom:0in;padding-top:0in;padding-left:5.4pt;border-left:medium none;padding-right:5.4pt;\" valign=\"top\" width=\"156\">\n<div style=\"margin:0in 0in 0pt;line-height:normal;\" align=\"center\">\n<b><span><span style=\"font-size:10pt;\">22<\/span><\/span><\/b><b><span><\/span><\/b>\n<\/div>\n<\/td>\n<\/tr>\n<tr>\n<td style=\"border-top:medium none;border-right:black 1pt solid;border-bottom:black 1pt solid;padding-bottom:0in;padding-top:0in;padding-left:5.4pt;border-left:black 1pt solid;padding-right:5.4pt;\" valign=\"top\" width=\"245\">\n<div style=\"margin:0in 0in 0pt 7.7pt;line-height:normal;\">\n<span><span style=\"font-size:10pt;\">Partitioning Characteristic<\/span><\/span><span><\/span>\n<\/div>\n<\/td>\n<td style=\"border-top:medium none;border-right:black 1pt solid;border-bottom:black 1pt solid;padding-bottom:0in;padding-top:0in;padding-left:5.4pt;border-left:medium none;padding-right:5.4pt;\" valign=\"top\" width=\"150\">\n<div style=\"margin:0in 0in 0pt;line-height:normal;\" align=\"center\">\n<b><span><span style=\"font-size:10pt;\">unrealistic; single dimension common <\/span><\/span><\/b><b><span><\/span><\/b>\n<\/div>\n<div style=\"margin:0in 0in 0pt;line-height:normal;\" align=\"center\">\n<b><span><span style=\"font-size:10pt;\">to 8 of 9 tables<\/span><\/span><\/b><b><span><\/span><\/b>\n<\/div>\n<\/td>\n<td style=\"border-top:medium none;border-right:black 1pt solid;border-bottom:black 1pt solid;padding-bottom:0in;padding-top:0in;padding-left:5.4pt;border-left:medium none;padding-right:5.4pt;\" valign=\"top\" width=\"156\">\n<div style=\"margin:0in 0in 0pt;line-height:normal;\" align=\"center\">\n<b><span><span style=\"font-size:10pt;\">realistic; <\/span><\/span><\/b><b><span><\/span><\/b>\n<\/div>\n<div style=\"margin:0in 0in 0pt;line-height:normal;\" align=\"center\">\n<b><span><span style=\"font-size:10pt;\">two independent dimensions <\/span><\/span><\/b><b><span><\/span><\/b>\n<\/div>\n<\/td>\n<\/tr>\n<tr>\n<td style=\"border-top:medium none;border-right:black 1pt solid;border-bottom:black 1pt solid;padding-bottom:0in;padding-top:0in;padding-left:5.4pt;border-left:black 1pt solid;padding-right:5.4pt;\" valign=\"top\" width=\"245\">\n<div style=\"margin:0in 0in 0pt 7.7pt;line-height:normal;\"><span><span style=\"font-size:10pt;\">Data content<\/span><\/span><\/div>\n<\/td>\n<td style=\"border-top:medium none;border-right:black 1pt solid;border-bottom:black 1pt solid;padding-bottom:0in;padding-top:0in;padding-left:5.4pt;border-left:medium none;padding-right:5.4pt;\" valign=\"top\" width=\"150\">\n<div style=\"margin:0in 0in 0pt;line-height:normal;\" align=\"center\"><b><span><span style=\"font-size:10pt;\">unrealistic; generated random characters<\/span><\/span><\/b><\/div>\n<\/td>\n<td style=\"border-top:medium none;border-right:black 1pt solid;border-bottom:black 1pt solid;padding-bottom:0in;padding-top:0in;padding-left:5.4pt;border-left:medium none;padding-right:5.4pt;\" valign=\"top\" width=\"156\">\n<div style=\"margin:0in 0in 0pt;line-height:normal;\" align=\"center\"><b><span><span style=\"font-size:10pt;\">realistic; generated from real data using weighted distributions<\/span><\/span><\/b><\/div>\n<\/td>\n<\/tr>\n<tr>\n<td style=\"border-top:medium none;border-right:black 1pt solid;background:#d9d9d9;border-bottom:black 1pt solid;padding-bottom:0in;padding-top:0in;padding-left:5.4pt;border-left:black 1pt solid;padding-right:5.4pt;\" valign=\"top\" width=\"245\">\n<div style=\"margin:0in 0in 0pt;line-height:normal;\">\n<b><span><span style=\"font-size:10pt;color:#0000ff;\">Transactions<\/span><\/span><\/b><b><span><\/span><\/b>\n<\/div>\n<\/td>\n<td style=\"border-top:medium none;border-right:black 1pt solid;background:#d9d9d9;border-bottom:black 1pt solid;padding-bottom:0in;padding-top:0in;padding-left:5.4pt;border-left:medium none;padding-right:5.4pt;\" valign=\"top\" width=\"150\">\u00a0<\/td>\n<td style=\"border-top:medium none;border-right:black 1pt solid;background:#d9d9d9;border-bottom:black 1pt solid;padding-bottom:0in;padding-top:0in;padding-left:5.4pt;border-left:medium none;padding-right:5.4pt;\" valign=\"top\" width=\"156\">\u00a0<\/td>\n<\/tr>\n<tr>\n<td style=\"border-top:medium none;border-right:black 1pt solid;border-bottom:black 1pt solid;padding-bottom:0in;padding-top:0in;padding-left:5.4pt;border-left:black 1pt solid;padding-right:5.4pt;\" valign=\"top\" width=\"245\">\n<div style=\"margin:0in 0in 0pt 7.7pt;line-height:normal;\">\n<span><span style=\"font-size:10pt;\">Number of transactions<\/span><\/span><span><\/span>\n<\/div>\n<\/td>\n<td style=\"border-top:medium none;border-right:black 1pt solid;border-bottom:black 1pt solid;padding-bottom:0in;padding-top:0in;padding-left:5.4pt;border-left:medium none;padding-right:5.4pt;\" valign=\"top\" width=\"150\">\n<div style=\"margin:0in 0in 0pt;line-height:normal;\" align=\"center\">\n<b><span><span style=\"font-size:10pt;\">5<\/span><\/span><\/b><b><span><\/span><\/b>\n<\/div>\n<\/td>\n<td style=\"border-top:medium none;border-right:black 1pt solid;border-bottom:black 1pt solid;padding-bottom:0in;padding-top:0in;padding-left:5.4pt;border-left:medium none;padding-right:5.4pt;\" valign=\"top\" width=\"156\">\n<div style=\"margin:0in 0in 0pt;line-height:normal;\" align=\"center\">\n<b><span><span style=\"font-size:10pt;\">10<\/span><\/span><\/b><b><span><\/span><\/b>\n<\/div>\n<\/td>\n<\/tr>\n<tr>\n<td style=\"border-top:medium none;border-right:black 1pt solid;border-bottom:black 1pt solid;padding-bottom:0in;padding-top:0in;padding-left:5.4pt;border-left:black 1pt solid;padding-right:5.4pt;\" valign=\"top\" width=\"245\">\n<div style=\"margin:0in 0in 0pt 7.7pt;line-height:normal;\">\n<span><span style=\"font-size:10pt;\">Database roundtrips per transaction<\/span><\/span><span><\/span>\n<\/div>\n<\/td>\n<td style=\"border-top:medium none;border-right:black 1pt solid;border-bottom:black 1pt solid;padding-bottom:0in;padding-top:0in;padding-left:5.4pt;border-left:medium none;padding-right:5.4pt;\" valign=\"top\" width=\"150\">\n<div style=\"margin:0in 0in 0pt;line-height:normal;\" align=\"center\">\n<b><span><span style=\"font-size:10pt;\">1<\/span><\/span><\/b><b><span><\/span><\/b>\n<\/div>\n<\/td>\n<td style=\"border-top:medium none;border-right:black 1pt solid;border-bottom:black 1pt solid;padding-bottom:0in;padding-top:0in;padding-left:5.4pt;border-left:medium none;padding-right:5.4pt;\" valign=\"top\" width=\"156\">\n<div style=\"margin:0in 0in 0pt;line-height:normal;\" align=\"center\">\n<b><span><span style=\"font-size:10pt;\">min 1; max 5<\/span><\/span><\/b><b><span><\/span><\/b>\n<\/div>\n<\/td>\n<\/tr>\n<tr>\n<td style=\"border-top:medium none;border-right:black 1pt solid;border-bottom:black 1pt solid;padding-bottom:0in;padding-top:0in;padding-left:5.4pt;border-left:black 1pt solid;padding-right:5.4pt;\" valign=\"top\" width=\"245\">\n<div style=\"margin:0in 0in 0pt 7.7pt;line-height:normal;\"><span><span style=\"font-size:10pt;\">DML statements (approximate)<\/span><\/span><\/div>\n<\/td>\n<td style=\"border-top:medium none;border-right:black 1pt solid;border-bottom:black 1pt solid;padding-bottom:0in;padding-top:0in;padding-left:5.4pt;border-left:medium none;padding-right:5.4pt;\" valign=\"top\" width=\"150\">\n<div style=\"margin:0in 0in 0pt;line-height:normal;\" align=\"center\"><b><span><span style=\"font-size:10pt;\">30<\/span><\/span><\/b><\/div>\n<\/td>\n<td style=\"border-top:medium none;border-right:black 1pt solid;border-bottom:black 1pt solid;padding-bottom:0in;padding-top:0in;padding-left:5.4pt;border-left:medium none;padding-right:5.4pt;\" valign=\"top\" width=\"156\">\n<div style=\"margin:0in 0in 0pt;line-height:normal;\" align=\"center\"><b><span><span style=\"font-size:10pt;\">156<\/span><\/span><\/b><\/div>\n<\/td>\n<\/tr>\n<tr>\n<td style=\"border-top:medium none;border-right:black 1pt solid;background:#d9d9d9;border-bottom:black 1pt solid;padding-bottom:0in;padding-top:0in;padding-left:5.4pt;border-left:black 1pt solid;padding-right:5.4pt;\" valign=\"top\" width=\"245\">\n<div style=\"margin:0in 0in 0pt;line-height:normal;\">\n<b><span><span style=\"font-size:10pt;color:#0000ff;\">Capabilities<\/span><\/span><\/b><span><\/span>\n<\/div>\n<\/td>\n<td style=\"border-top:medium none;border-right:black 1pt solid;background:#d9d9d9;border-bottom:black 1pt solid;padding-bottom:0in;padding-top:0in;padding-left:5.4pt;border-left:medium none;padding-right:5.4pt;\" valign=\"top\" width=\"150\">\u00a0<\/td>\n<td style=\"border-top:medium none;border-right:black 1pt solid;background:#d9d9d9;border-bottom:black 1pt solid;padding-bottom:0in;padding-top:0in;padding-left:5.4pt;border-left:medium none;padding-right:5.4pt;\" valign=\"top\" width=\"156\">\u00a0<\/td>\n<\/tr>\n<tr>\n<td style=\"border-top:medium none;border-right:black 1pt solid;border-bottom:black 1pt solid;padding-bottom:0in;padding-top:0in;padding-left:5.4pt;border-left:black 1pt solid;padding-right:5.4pt;\" valign=\"top\" width=\"245\">\n<div style=\"margin:0in 0in 0pt 7.7pt;line-height:normal;\">\n<span><span style=\"font-size:10pt;\">Referential Integrity Required<\/span><\/span><span><\/span>\n<\/div>\n<\/td>\n<td style=\"border-top:medium none;border-right:black 1pt solid;border-bottom:black 1pt solid;padding-bottom:0in;padding-top:0in;padding-left:5.4pt;border-left:medium none;padding-right:5.4pt;\" valign=\"top\" width=\"150\">\n<div style=\"margin:0in 0in 0pt;line-height:normal;\" align=\"center\">\n<b><span><span style=\"font-size:10pt;\">No<\/span><\/span><\/b><b><span><\/span><\/b>\n<\/div>\n<\/td>\n<td style=\"border-top:medium none;border-right:black 1pt solid;border-bottom:black 1pt solid;padding-bottom:0in;padding-top:0in;padding-left:5.4pt;border-left:medium none;padding-right:5.4pt;\" valign=\"top\" width=\"156\">\n<div style=\"margin:0in 0in 0pt;line-height:normal;\" align=\"center\">\n<b><span><span style=\"font-size:10pt;\">Yes<\/span><\/span><\/b><b><span><\/span><\/b>\n<\/div>\n<\/td>\n<\/tr>\n<tr>\n<td style=\"border-top:medium none;border-right:black 1pt solid;border-bottom:black 1pt solid;padding-bottom:0in;padding-top:0in;padding-left:5.4pt;border-left:black 1pt solid;padding-right:5.4pt;\" valign=\"top\" width=\"245\">\n<div style=\"margin:0in 0in 0pt 7.7pt;line-height:normal;\">\n<span><span style=\"font-size:10pt;\">Storage Protection (e.g. RAID) for Database Required<\/span><\/span><span><\/span>\n<\/div>\n<\/td>\n<td style=\"border-top:medium none;border-right:black 1pt solid;border-bottom:black 1pt solid;padding-bottom:0in;padding-top:0in;padding-left:5.4pt;border-left:medium none;padding-right:5.4pt;\" valign=\"top\" width=\"150\">\n<div style=\"margin:0in 0in 0pt;line-height:normal;\" align=\"center\">\n<b><span><span style=\"font-size:10pt;\">Log Only<\/span><\/span><\/b><b><span><\/span><\/b>\n<\/div>\n<\/td>\n<td style=\"border-top:medium none;border-right:black 1pt solid;border-bottom:black 1pt solid;padding-bottom:0in;padding-top:0in;padding-left:5.4pt;border-left:medium none;padding-right:5.4pt;\" valign=\"top\" width=\"156\">\n<div style=\"margin:0in 0in 0pt;line-height:normal;\" align=\"center\">\n<b><span><span style=\"font-size:10pt;\">Everything<\/span><\/span><\/b><b><span><\/span><\/b>\n<\/div>\n<\/td>\n<\/tr>\n<tr>\n<td style=\"border-top:medium none;border-right:black 1pt solid;border-bottom:black 1pt solid;padding-bottom:0in;padding-top:0in;padding-left:5.4pt;border-left:black 1pt solid;padding-right:5.4pt;\" valign=\"top\" width=\"245\">\n<div style=\"margin:0in 0in 0pt 7.7pt;line-height:normal;\">\n<span><span style=\"font-size:10pt;\">Timed Database Recovery test<\/span><\/span><span><\/span>\n<\/div>\n<\/td>\n<td style=\"border-top:medium none;border-right:black 1pt solid;border-bottom:black 1pt solid;padding-bottom:0in;padding-top:0in;padding-left:5.4pt;border-left:medium none;padding-right:5.4pt;\" valign=\"top\" width=\"150\">\n<div style=\"margin:0in 0in 0pt;line-height:normal;\" align=\"center\">\n<b><span><span style=\"font-size:10pt;\">No<\/span><\/span><\/b><b><span><\/span><\/b>\n<\/div>\n<\/td>\n<td style=\"border-top:medium none;border-right:black 1pt solid;border-bottom:black 1pt solid;padding-bottom:0in;padding-top:0in;padding-left:5.4pt;border-left:medium none;padding-right:5.4pt;\" valign=\"top\" width=\"156\">\n<div style=\"margin:0in 0in 0pt;line-height:normal;\" align=\"center\">\n<b><span><span style=\"font-size:10pt;\">Yes<\/span><\/span><\/b><b><span><\/span><\/b>\n<\/div>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p><span style=\"font-family:'Segoe UI';font-size:small;\">As of this writing, there are 54 official TPC-E results spanning various hardware platforms and system configurations. What\u2019s surprising is that SQL Server is the only database with official results (i.e., audited, fully disclosed, and open to full review). Although Oracle and IBM are TPC members and contributed to the development of TPC-E, they\u2019ve not shown their database performance running TPC-E. What started as SQL Server being an early adopter of TPC-E has turned into a five year wait for someone to challenge our results.<\/span><\/p>\n<p><span style=\"font-family:'Segoe UI';font-size:small;\">Perhaps part of the problem is that we\u2019ve not been standing still. As you can see in the graph below, SQL Server performance on TPC-E has increased 7x since our first result in 2007. Of course, hardware has gotten faster and that is part of the story. But we\u2019ve also done lots of work to improve performance and scalability, producing several patents along the way. In fact, without improvements that went into SQL Server 2008, 2008 R2, and 2012, our top performance would be less than half of what it is today.<\/span><\/p>\n<p><a href=\"https:\/\/cm-edgetun.pages.dev\/en-us\/sql-server\/blog\/wp-content\/uploads\/2018\/03\/4606.image_thumb_69C9C165.png\" original-url=\"http:\/\/blogs.technet.com\/cfs-file.ashx\/__key\/communityserver-blogs-components-weblogfiles\/00-00-00-60-54-metablogapi\/8883.image_5F00_29FFDAE0.png\"><img loading=\"lazy\" decoding=\"async\" title=\"image\" style=\"background-image:none;padding-top:0px;padding-left:0px;display:inline;padding-right:0px;border:0px;\" border=\"0\" alt=\"image\" src=\"https:\/\/cm-edgetun.pages.dev\/en-us\/sql-server\/blog\/wp-content\/uploads\/2018\/03\/4606.image_thumb_69C9C165.png\" original-url=\"http:\/\/blogs.technet.com\/cfs-file.ashx\/__key\/communityserver-blogs-components-weblogfiles\/00-00-00-60-54-metablogapi\/4606.image_5F00_thumb_5F00_69C9C165.png\" width=\"348\" height=\"226\" srcset=\"\"><\/a><\/p>\n<p><span style=\"font-family:'Segoe UI';font-size:small;\">Would we have made the same gains with TPC-C? No. TPC-C is simply too narrow. It exercises a limited set of operations in the database engine. It\u2019s a bit like the difference between drag racing and Formula One. Drag racers are built for extreme acceleration down a straight track. In less than 10 seconds and a quarter mile the race is over. In Formula One racing, though, it\u2019s not enough to just be fast. You need to be able to race for hundreds of miles through twists and turns at times just inches away from other cars going 200 miles per hour. The engineering is much broader and more demanding. Many innovations in performance, efficiency, and safety that start on the F1 race track make their way into the regular cars that we all use every day. The same can\u2019t be said of drag racing.<\/span><\/p>\n<p><span style=\"font-family:'Segoe UI';font-size:small;\">Years ago, before switching to TPC-E, we prototyped changes to SQL Server that would have improved our TPC-C performance by about 15%. The problem was that it was niche engineering that would have been of minimal value beyond TPC-C. After much debate, we decided against productizing the prototype, even though Oracle and DB2 had already added similar niche optimizations. As much as we would have liked to win the TPC-C drag race, we focused instead on improving performance in areas with the greatest customer benefit. The result is a database with great performance and scalability for wherever the road takes you.<\/span><\/p>\n<div style=\"margin:0in 0in 0pt;line-height:normal;\"><\/div>\n<hr>\n<p><span style=\"font-family:'Segoe UI';\">References:<\/span><\/p>\n<p><span style=\"font-family:'Segoe UI';\">[1] Transaction Processing Performance Council. <b>TPC Benchmark\u2122 E<\/b>. <\/span><a href=\"http:\/\/www.tpc.org\/tpce\/\"><span style=\"font-family:'Segoe UI';\">http:\/\/www.tpc.org\/tpce\/<\/span><\/a><\/p>\n<p><span style=\"font-family:'Segoe UI';\">[2] Tricia Hogan. February 2007. <b>Overview of TPC Benchmark E: The Next Generation of OLTP Benchmarks<\/b>. IBM white paper. <\/span><a><span style=\"font-family:'Segoe UI';\">ftp:\/\/ftp.software.ibm.com\/eserver\/benchmarks\/wp_TPC-E_Benchmark_022307.pdf<\/span><\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Blog Author:\u00a0 Charles Levine, Principal Program Manager, SQL Server Performance Engineering Maximizing SQL Server\u2019s performance and scalability is a complex engineering challenge. Beyond good architecture and well-designed code, we also extensively measure SQL Server to ensure that it delivers the best performance compared to previous versions and other databases.<\/p>\n","protected":false},"author":1457,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"ep_exclude_from_search":false,"_classifai_error":"","_classifai_text_to_speech_error":"","footnotes":""},"post_tag":[],"product":[],"content-type":[2445],"topic":[],"coauthors":[2487],"class_list":["post-3213","post","type-post","status-publish","format-standard","hentry","content-type-thought-leadership"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.2 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>TPC-E \u2013 Raising the Bar in OLTP Performance - Microsoft SQL Server 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:\/\/cm-edgetun.pages.dev\/en-us\/sql-server\/blog\/2012\/08\/28\/tpc-e-raising-the-bar-in-oltp-performance\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"TPC-E \u2013 Raising the Bar in OLTP Performance - Microsoft SQL Server Blog\" \/>\n<meta property=\"og:description\" content=\"Blog Author:\u00a0 Charles Levine, Principal Program Manager, SQL Server Performance Engineering Maximizing SQL Server\u2019s performance and scalability is a complex engineering challenge. Beyond good architecture and well-designed code, we also extensively measure SQL Server to ensure that it delivers the best performance compared to previous versions and other databases.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/cm-edgetun.pages.dev\/en-us\/sql-server\/blog\/2012\/08\/28\/tpc-e-raising-the-bar-in-oltp-performance\/\" \/>\n<meta property=\"og:site_name\" content=\"Microsoft SQL Server Blog\" \/>\n<meta property=\"article:publisher\" content=\"http:\/\/www.facebook.com\/sqlserver\" \/>\n<meta property=\"article:published_time\" content=\"2012-08-28T16:00:00+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-01-23T06:49:34+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/cm-edgetun.pages.dev\/en-us\/sql-server\/blog\/wp-content\/uploads\/2018\/03\/4606.image_thumb_69C9C165.png\" \/>\n<meta name=\"author\" content=\"SQL Server Team\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@SQLServer\" \/>\n<meta name=\"twitter:site\" content=\"@SQLServer\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"SQL Server Team\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"4 min read\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/cm-edgetun.pages.dev\/en-us\/sql-server\/blog\/2012\/08\/28\/tpc-e-raising-the-bar-in-oltp-performance\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/cm-edgetun.pages.dev\/en-us\/sql-server\/blog\/2012\/08\/28\/tpc-e-raising-the-bar-in-oltp-performance\/\"},\"author\":[{\"@id\":\"https:\/\/cm-edgetun.pages.dev\/en-us\/sql-server\/blog\/author\/sql-server-team\/\",\"@type\":\"Person\",\"@name\":\"SQL Server Team\"}],\"headline\":\"TPC-E \u2013 Raising the Bar in OLTP Performance\",\"datePublished\":\"2012-08-28T16:00:00+00:00\",\"dateModified\":\"2024-01-23T06:49:34+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/cm-edgetun.pages.dev\/en-us\/sql-server\/blog\/2012\/08\/28\/tpc-e-raising-the-bar-in-oltp-performance\/\"},\"wordCount\":947,\"commentCount\":4,\"publisher\":{\"@id\":\"https:\/\/cm-edgetun.pages.dev\/en-us\/sql-server\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/cm-edgetun.pages.dev\/en-us\/sql-server\/blog\/2012\/08\/28\/tpc-e-raising-the-bar-in-oltp-performance\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/cm-edgetun.pages.dev\/en-us\/sql-server\/blog\/wp-content\/uploads\/2018\/03\/4606.image_thumb_69C9C165.png\",\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/cm-edgetun.pages.dev\/en-us\/sql-server\/blog\/2012\/08\/28\/tpc-e-raising-the-bar-in-oltp-performance\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/cm-edgetun.pages.dev\/en-us\/sql-server\/blog\/2012\/08\/28\/tpc-e-raising-the-bar-in-oltp-performance\/\",\"url\":\"https:\/\/cm-edgetun.pages.dev\/en-us\/sql-server\/blog\/2012\/08\/28\/tpc-e-raising-the-bar-in-oltp-performance\/\",\"name\":\"TPC-E \u2013 Raising the Bar in OLTP Performance - Microsoft SQL Server Blog\",\"isPartOf\":{\"@id\":\"https:\/\/cm-edgetun.pages.dev\/en-us\/sql-server\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/cm-edgetun.pages.dev\/en-us\/sql-server\/blog\/2012\/08\/28\/tpc-e-raising-the-bar-in-oltp-performance\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/cm-edgetun.pages.dev\/en-us\/sql-server\/blog\/2012\/08\/28\/tpc-e-raising-the-bar-in-oltp-performance\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/cm-edgetun.pages.dev\/en-us\/sql-server\/blog\/wp-content\/uploads\/2018\/03\/4606.image_thumb_69C9C165.png\",\"datePublished\":\"2012-08-28T16:00:00+00:00\",\"dateModified\":\"2024-01-23T06:49:34+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/cm-edgetun.pages.dev\/en-us\/sql-server\/blog\/2012\/08\/28\/tpc-e-raising-the-bar-in-oltp-performance\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/cm-edgetun.pages.dev\/en-us\/sql-server\/blog\/2012\/08\/28\/tpc-e-raising-the-bar-in-oltp-performance\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/cm-edgetun.pages.dev\/en-us\/sql-server\/blog\/2012\/08\/28\/tpc-e-raising-the-bar-in-oltp-performance\/#primaryimage\",\"url\":\"https:\/\/cm-edgetun.pages.dev\/en-us\/sql-server\/blog\/wp-content\/uploads\/2018\/03\/4606.image_thumb_69C9C165.png\",\"contentUrl\":\"https:\/\/cm-edgetun.pages.dev\/en-us\/sql-server\/blog\/wp-content\/uploads\/2018\/03\/4606.image_thumb_69C9C165.png\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/cm-edgetun.pages.dev\/en-us\/sql-server\/blog\/2012\/08\/28\/tpc-e-raising-the-bar-in-oltp-performance\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/cm-edgetun.pages.dev\/en-us\/sql-server\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"TPC-E \u2013 Raising the Bar in OLTP Performance\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/cm-edgetun.pages.dev\/en-us\/sql-server\/blog\/#website\",\"url\":\"https:\/\/cm-edgetun.pages.dev\/en-us\/sql-server\/blog\/\",\"name\":\"Microsoft SQL Server Blog\",\"description\":\"Official News from Microsoft\u2019s Information Platform\",\"publisher\":{\"@id\":\"https:\/\/cm-edgetun.pages.dev\/en-us\/sql-server\/blog\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/cm-edgetun.pages.dev\/en-us\/sql-server\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/cm-edgetun.pages.dev\/en-us\/sql-server\/blog\/#organization\",\"name\":\"Microsoft SQL Server Blog\",\"url\":\"https:\/\/cm-edgetun.pages.dev\/en-us\/sql-server\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/cm-edgetun.pages.dev\/en-us\/sql-server\/blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/cm-edgetun.pages.dev\/en-us\/sql-server\/blog\/wp-content\/uploads\/2019\/08\/Microsoft-Logo.png\",\"contentUrl\":\"https:\/\/cm-edgetun.pages.dev\/en-us\/sql-server\/blog\/wp-content\/uploads\/2019\/08\/Microsoft-Logo.png\",\"width\":259,\"height\":194,\"caption\":\"Microsoft SQL Server Blog\"},\"image\":{\"@id\":\"https:\/\/cm-edgetun.pages.dev\/en-us\/sql-server\/blog\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"http:\/\/www.facebook.com\/sqlserver\",\"https:\/\/x.com\/SQLServer\",\"https:\/\/www.youtube.com\/user\/MSCloudOS\"]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"TPC-E \u2013 Raising the Bar in OLTP Performance - Microsoft SQL Server 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:\/\/cm-edgetun.pages.dev\/en-us\/sql-server\/blog\/2012\/08\/28\/tpc-e-raising-the-bar-in-oltp-performance\/","og_locale":"en_US","og_type":"article","og_title":"TPC-E \u2013 Raising the Bar in OLTP Performance - Microsoft SQL Server Blog","og_description":"Blog Author:\u00a0 Charles Levine, Principal Program Manager, SQL Server Performance Engineering Maximizing SQL Server\u2019s performance and scalability is a complex engineering challenge. Beyond good architecture and well-designed code, we also extensively measure SQL Server to ensure that it delivers the best performance compared to previous versions and other databases.","og_url":"https:\/\/cm-edgetun.pages.dev\/en-us\/sql-server\/blog\/2012\/08\/28\/tpc-e-raising-the-bar-in-oltp-performance\/","og_site_name":"Microsoft SQL Server Blog","article_publisher":"http:\/\/www.facebook.com\/sqlserver","article_published_time":"2012-08-28T16:00:00+00:00","article_modified_time":"2024-01-23T06:49:34+00:00","og_image":[{"url":"https:\/\/cm-edgetun.pages.dev\/en-us\/sql-server\/blog\/wp-content\/uploads\/2018\/03\/4606.image_thumb_69C9C165.png","type":"","width":"","height":""}],"author":"SQL Server Team","twitter_card":"summary_large_image","twitter_creator":"@SQLServer","twitter_site":"@SQLServer","twitter_misc":{"Written by":"SQL Server Team","Est. reading time":"4 min read"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/cm-edgetun.pages.dev\/en-us\/sql-server\/blog\/2012\/08\/28\/tpc-e-raising-the-bar-in-oltp-performance\/#article","isPartOf":{"@id":"https:\/\/cm-edgetun.pages.dev\/en-us\/sql-server\/blog\/2012\/08\/28\/tpc-e-raising-the-bar-in-oltp-performance\/"},"author":[{"@id":"https:\/\/cm-edgetun.pages.dev\/en-us\/sql-server\/blog\/author\/sql-server-team\/","@type":"Person","@name":"SQL Server Team"}],"headline":"TPC-E \u2013 Raising the Bar in OLTP Performance","datePublished":"2012-08-28T16:00:00+00:00","dateModified":"2024-01-23T06:49:34+00:00","mainEntityOfPage":{"@id":"https:\/\/cm-edgetun.pages.dev\/en-us\/sql-server\/blog\/2012\/08\/28\/tpc-e-raising-the-bar-in-oltp-performance\/"},"wordCount":947,"commentCount":4,"publisher":{"@id":"https:\/\/cm-edgetun.pages.dev\/en-us\/sql-server\/blog\/#organization"},"image":{"@id":"https:\/\/cm-edgetun.pages.dev\/en-us\/sql-server\/blog\/2012\/08\/28\/tpc-e-raising-the-bar-in-oltp-performance\/#primaryimage"},"thumbnailUrl":"https:\/\/cm-edgetun.pages.dev\/en-us\/sql-server\/blog\/wp-content\/uploads\/2018\/03\/4606.image_thumb_69C9C165.png","inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/cm-edgetun.pages.dev\/en-us\/sql-server\/blog\/2012\/08\/28\/tpc-e-raising-the-bar-in-oltp-performance\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/cm-edgetun.pages.dev\/en-us\/sql-server\/blog\/2012\/08\/28\/tpc-e-raising-the-bar-in-oltp-performance\/","url":"https:\/\/cm-edgetun.pages.dev\/en-us\/sql-server\/blog\/2012\/08\/28\/tpc-e-raising-the-bar-in-oltp-performance\/","name":"TPC-E \u2013 Raising the Bar in OLTP Performance - Microsoft SQL Server Blog","isPartOf":{"@id":"https:\/\/cm-edgetun.pages.dev\/en-us\/sql-server\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/cm-edgetun.pages.dev\/en-us\/sql-server\/blog\/2012\/08\/28\/tpc-e-raising-the-bar-in-oltp-performance\/#primaryimage"},"image":{"@id":"https:\/\/cm-edgetun.pages.dev\/en-us\/sql-server\/blog\/2012\/08\/28\/tpc-e-raising-the-bar-in-oltp-performance\/#primaryimage"},"thumbnailUrl":"https:\/\/cm-edgetun.pages.dev\/en-us\/sql-server\/blog\/wp-content\/uploads\/2018\/03\/4606.image_thumb_69C9C165.png","datePublished":"2012-08-28T16:00:00+00:00","dateModified":"2024-01-23T06:49:34+00:00","breadcrumb":{"@id":"https:\/\/cm-edgetun.pages.dev\/en-us\/sql-server\/blog\/2012\/08\/28\/tpc-e-raising-the-bar-in-oltp-performance\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/cm-edgetun.pages.dev\/en-us\/sql-server\/blog\/2012\/08\/28\/tpc-e-raising-the-bar-in-oltp-performance\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/cm-edgetun.pages.dev\/en-us\/sql-server\/blog\/2012\/08\/28\/tpc-e-raising-the-bar-in-oltp-performance\/#primaryimage","url":"https:\/\/cm-edgetun.pages.dev\/en-us\/sql-server\/blog\/wp-content\/uploads\/2018\/03\/4606.image_thumb_69C9C165.png","contentUrl":"https:\/\/cm-edgetun.pages.dev\/en-us\/sql-server\/blog\/wp-content\/uploads\/2018\/03\/4606.image_thumb_69C9C165.png"},{"@type":"BreadcrumbList","@id":"https:\/\/cm-edgetun.pages.dev\/en-us\/sql-server\/blog\/2012\/08\/28\/tpc-e-raising-the-bar-in-oltp-performance\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/cm-edgetun.pages.dev\/en-us\/sql-server\/blog\/"},{"@type":"ListItem","position":2,"name":"TPC-E \u2013 Raising the Bar in OLTP Performance"}]},{"@type":"WebSite","@id":"https:\/\/cm-edgetun.pages.dev\/en-us\/sql-server\/blog\/#website","url":"https:\/\/cm-edgetun.pages.dev\/en-us\/sql-server\/blog\/","name":"Microsoft SQL Server Blog","description":"Official News from Microsoft\u2019s Information Platform","publisher":{"@id":"https:\/\/cm-edgetun.pages.dev\/en-us\/sql-server\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/cm-edgetun.pages.dev\/en-us\/sql-server\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/cm-edgetun.pages.dev\/en-us\/sql-server\/blog\/#organization","name":"Microsoft SQL Server Blog","url":"https:\/\/cm-edgetun.pages.dev\/en-us\/sql-server\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/cm-edgetun.pages.dev\/en-us\/sql-server\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/cm-edgetun.pages.dev\/en-us\/sql-server\/blog\/wp-content\/uploads\/2019\/08\/Microsoft-Logo.png","contentUrl":"https:\/\/cm-edgetun.pages.dev\/en-us\/sql-server\/blog\/wp-content\/uploads\/2019\/08\/Microsoft-Logo.png","width":259,"height":194,"caption":"Microsoft SQL Server Blog"},"image":{"@id":"https:\/\/cm-edgetun.pages.dev\/en-us\/sql-server\/blog\/#\/schema\/logo\/image\/"},"sameAs":["http:\/\/www.facebook.com\/sqlserver","https:\/\/x.com\/SQLServer","https:\/\/www.youtube.com\/user\/MSCloudOS"]}]}},"msxcm_display_generated_audio":false,"msxcm_animated_featured_image":null,"_links":{"self":[{"href":"https:\/\/cm-edgetun.pages.dev\/en-us\/sql-server\/blog\/wp-json\/wp\/v2\/posts\/3213","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/cm-edgetun.pages.dev\/en-us\/sql-server\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/cm-edgetun.pages.dev\/en-us\/sql-server\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/cm-edgetun.pages.dev\/en-us\/sql-server\/blog\/wp-json\/wp\/v2\/users\/1457"}],"replies":[{"embeddable":true,"href":"https:\/\/cm-edgetun.pages.dev\/en-us\/sql-server\/blog\/wp-json\/wp\/v2\/comments?post=3213"}],"version-history":[{"count":0,"href":"https:\/\/cm-edgetun.pages.dev\/en-us\/sql-server\/blog\/wp-json\/wp\/v2\/posts\/3213\/revisions"}],"wp:attachment":[{"href":"https:\/\/cm-edgetun.pages.dev\/en-us\/sql-server\/blog\/wp-json\/wp\/v2\/media?parent=3213"}],"wp:term":[{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/cm-edgetun.pages.dev\/en-us\/sql-server\/blog\/wp-json\/wp\/v2\/post_tag?post=3213"},{"taxonomy":"product","embeddable":true,"href":"https:\/\/cm-edgetun.pages.dev\/en-us\/sql-server\/blog\/wp-json\/wp\/v2\/product?post=3213"},{"taxonomy":"content-type","embeddable":true,"href":"https:\/\/cm-edgetun.pages.dev\/en-us\/sql-server\/blog\/wp-json\/wp\/v2\/content-type?post=3213"},{"taxonomy":"topic","embeddable":true,"href":"https:\/\/cm-edgetun.pages.dev\/en-us\/sql-server\/blog\/wp-json\/wp\/v2\/topic?post=3213"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/cm-edgetun.pages.dev\/en-us\/sql-server\/blog\/wp-json\/wp\/v2\/coauthors?post=3213"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}