{"id":16525,"date":"2021-07-14T16:39:24","date_gmt":"2021-07-14T14:39:24","guid":{"rendered":"https:\/\/www.dbi-services.com\/blog\/sql-server-table-variables-performance-limitations\/"},"modified":"2025-10-01T11:59:16","modified_gmt":"2025-10-01T09:59:16","slug":"sql-server-table-variables-performance-limitations","status":"publish","type":"post","link":"https:\/\/www.dbi-services.com\/blog\/sql-server-table-variables-performance-limitations\/","title":{"rendered":"SQL Server: table variables performance limitations"},"content":{"rendered":"<p>Doing some performance troubleshooting for one of my customers I identified some issues with very large table variables inside Stored procedures.<br \/>\nTable variables limitations are not well understood by developers although they are now <a href=\"https:\/\/docs.microsoft.com\/en-us\/sql\/t-sql\/data-types\/table-transact-sql?view=sql-server-ver15#limitations-and-restrictions\">well documented<\/a>.<\/p>\n<h4>Table variable rows estimation<\/h4>\n<p>Let&#8217;s have a look at an example with my customer context which is SQL Server 2016, so compatibility level 130 at the database level. You can reproduce this demo with the <a href=\"https:\/\/github.com\/Microsoft\/sql-server-samples\/releases\/tag\/wide-world-importers-v1.0\">Wide World Importers<\/a> database.<\/p>\n<pre class=\"brush: sql; gutter: true; first-line: 1\">create table #Orders (\n\t[OrderID] [int] NOT NULL,\n\t[CustomerID] [int] NOT NULL,\n\t[SalespersonPersonID] [int] NOT NULL,\n\t[PickedByPersonID] [int] NULL,\n\t[ContactPersonID] [int] NOT NULL,\n\t[BackorderOrderID] [int] NULL,\n\t[OrderDate] [date] NOT NULL,\n\t[ExpectedDeliveryDate] [date] NOT NULL,\n\t[CustomerPurchaseOrderNumber] [nvarchar](20) NULL,\n\t[IsUndersupplyBackordered] [bit] NOT NULL,\n\t[Comments] [nvarchar](max) NULL,\n\t[DeliveryInstructions] [nvarchar](max) NULL,\n\t[InternalComments] [nvarchar](max) NULL,\n\t[PickingCompletedWhen] [datetime2](7) NULL,\n\t[LastEditedBy] [int] NOT NULL,\n\t[LastEditedWhen] [datetime2](7) NOT NULL\n);\ninsert into @Orders\n\tselect top 50000 * from Sales.Orders;\n\nselect CustomerID, MAX(OrderDate) AS LastOrderDate\nfrom @Orders\ngroup by CustomerID;<\/pre>\n<p><a href=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/Blog_24_1_2016_estimate.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-50756\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/Blog_24_1_2016_estimate.png\" alt=\"\" width=\"854\" height=\"169\"><\/a><\/p>\n<p>This simple query touching all 50000 rows of the table variable get an estimated number of rows of 1.<br \/>\nThis is always the case with table variables unless you use some tricks like the option Recompile. As we can see in the plan the query is spilling to TempDB so the performance impact can be significant with a large amount of data.<\/p>\n<p><a href=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/Blog_24_2_2016_tempdbSpill.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-50759\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/Blog_24_2_2016_tempdbSpill.png\" alt=\"\" width=\"341\" height=\"434\"><\/a><\/p>\n<p>Estimates are also bad for queries with predicates in the WHERE clause or JOIN as you can see. The estimated number of rows is always 1.<\/p>\n<pre class=\"brush: sql; gutter: true; first-line: 1\">select CustomerID, OrderID, OrderDate \nfrom @Orders\nwhere CustomerID = 89;<\/pre>\n<p><a href=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/Blog_24_4_2016_where.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-50774\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/Blog_24_4_2016_where.png\" alt=\"\" width=\"681\" height=\"156\"><\/a><\/p>\n<h4>Table variable with compatibility level 150 (SQL Server 2019)<\/h4>\n<p>Things were improved with SQL Server 2019 and the introduction of <a href=\"https:\/\/docs.microsoft.com\/en-us\/sql\/relational-databases\/performance\/intelligent-query-processing?view=sql-server-ver15#table-variable-deferred-compilation\">Table variable deferred compilation<\/a>.<br \/>\nThe query optimizer is now aware of the table variable cardinality and can better estimate some queries.<\/p>\n<p><a href=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/Blog_24_2019.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-50776\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/Blog_24_2019.png\" alt=\"\" width=\"750\" height=\"144\"><\/a><\/p>\n<p>The original query now executed with a 150 compatibility got the correct estimated number of rows, no TempDB spill, and got its execution time (which is very fast already for this demo) divided by two.<\/p>\n<p>Estimation for queries with predicates is still not perfect with SQL Server 2019 because we still don&#8217;t get statistics on columns. Based only on table cardinality the optimizer can estimate the number of rows for such query. It estimated 224 instead of 84 actual rows. Not perfect but it can sometimes create a way better plan than the forced &#8220;1&#8221; value of previous versions.<\/p>\n<p><a href=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/Blog_24_2019_where.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-50779\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/Blog_24_2019_where.png\" alt=\"\" width=\"731\" height=\"158\"><\/a><\/p>\n<h4>Temp tables estimation<\/h4>\n<p>Rewriting table variables to temporary tables can improve cardinality estimation regardless of the database compatibility level.<\/p>\n<p>Here are the queries using a Temp table:<\/p>\n<pre class=\"brush: sql; gutter: true; first-line: 1\">drop table if exists #Orders;\ncreate table #Orders (\n\t[OrderID] [int] NOT NULL,\n\t[CustomerID] [int] NOT NULL,\n\t[SalespersonPersonID] [int] NOT NULL,\n\t[PickedByPersonID] [int] NULL,\n\t[ContactPersonID] [int] NOT NULL,\n\t[BackorderOrderID] [int] NULL,\n\t[OrderDate] [date] NOT NULL,\n\t[ExpectedDeliveryDate] [date] NOT NULL,\n\t[CustomerPurchaseOrderNumber] [nvarchar](20) NULL,\n\t[IsUndersupplyBackordered] [bit] NOT NULL,\n\t[Comments] [nvarchar](max) NULL,\n\t[DeliveryInstructions] [nvarchar](max) NULL,\n\t[InternalComments] [nvarchar](max) NULL,\n\t[PickingCompletedWhen] [datetime2](7) NULL,\n\t[LastEditedBy] [int] NOT NULL,\n\t[LastEditedWhen] [datetime2](7) NOT NULL\n);\n\ninsert into #Orders\n\tselect top 50000 * from Sales.Orders;\n\nselect CustomerID, MAX(OrderDate) AS LastOrderDate\nfrom #Orders\ngroup by CustomerID;<\/pre>\n<p><a href=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/Blog_24_3_temptable.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-50788\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/Blog_24_3_temptable.png\" alt=\"\" width=\"812\" height=\"154\"><\/a><\/p>\n<p><a href=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/Blog_24_temptable_where.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-50791\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/Blog_24_temptable_where.png\" alt=\"\" width=\"760\" height=\"178\"><\/a><\/p>\n<h4>Conclusion<\/h4>\n<p>Table variables are fine for small data sets. Performance issues can happen with large numbers of rows and queries using JOINs or WHERE clauses.<br \/>\nIf rewriting the code is a possibility, using a temporary table will improve the query plan.<br \/>\nTemporary table performances are more predictable with columns statistics.<br \/>\nThe query optimizer has been improved for table variables so in some cases you might get faster execution times just by upgrading to SQL Server 2019.<\/p>\n\n\n<p>Written by <a href=\"https:\/\/www.linkedin.com\/in\/steven-naudet-aa540158\/\">Steven Naudet<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Doing some performance troubleshooting for one of my customers I identified some issues with very large table variables inside Stored procedures. Table variables limitations are not well understood by developers although they are now well documented. Table variable rows estimation Let&#8217;s have a look at an example with my customer context which is SQL Server [&hellip;]<\/p>\n","protected":false},"author":26,"featured_media":16526,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[229,99],"tags":[2550,2356],"type_dbi":[],"class_list":["post-16525","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-database-administration-monitoring","category-sql-server","tag-sql-server-2","tag-table-variable"],"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: table variables performance limitations - 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-table-variables-performance-limitations\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"SQL Server: table variables performance limitations\" \/>\n<meta property=\"og:description\" content=\"Doing some performance troubleshooting for one of my customers I identified some issues with very large table variables inside Stored procedures. Table variables limitations are not well understood by developers although they are now well documented. Table variable rows estimation Let&#8217;s have a look at an example with my customer context which is SQL Server [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.dbi-services.com\/blog\/sql-server-table-variables-performance-limitations\/\" \/>\n<meta property=\"og:site_name\" content=\"dbi Blog\" \/>\n<meta property=\"article:published_time\" content=\"2021-07-14T14:39:24+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-10-01T09:59:16+00:00\" \/>\n<meta property=\"og:image\" content=\"http:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/Blog_24_1_2016_estimate.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1076\" \/>\n\t<meta property=\"og:image:height\" content=\"213\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\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-table-variables-performance-limitations\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/sql-server-table-variables-performance-limitations\\\/\"},\"author\":{\"name\":\"Microsoft Team\",\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/#\\\/schema\\\/person\\\/bfab48333280d616e1170e7369df90a4\"},\"headline\":\"SQL Server: table variables performance limitations\",\"datePublished\":\"2021-07-14T14:39:24+00:00\",\"dateModified\":\"2025-10-01T09:59:16+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/sql-server-table-variables-performance-limitations\\\/\"},\"wordCount\":404,\"commentCount\":0,\"image\":{\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/sql-server-table-variables-performance-limitations\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/wp-content\\\/uploads\\\/sites\\\/2\\\/2022\\\/04\\\/Blog_24_1_2016_estimate.png\",\"keywords\":[\"SQL Server\",\"Table variable\"],\"articleSection\":[\"Database Administration &amp; Monitoring\",\"SQL Server\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/sql-server-table-variables-performance-limitations\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/sql-server-table-variables-performance-limitations\\\/\",\"url\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/sql-server-table-variables-performance-limitations\\\/\",\"name\":\"SQL Server: table variables performance limitations - dbi Blog\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/sql-server-table-variables-performance-limitations\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/sql-server-table-variables-performance-limitations\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/wp-content\\\/uploads\\\/sites\\\/2\\\/2022\\\/04\\\/Blog_24_1_2016_estimate.png\",\"datePublished\":\"2021-07-14T14:39:24+00:00\",\"dateModified\":\"2025-10-01T09:59:16+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/#\\\/schema\\\/person\\\/bfab48333280d616e1170e7369df90a4\"},\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/sql-server-table-variables-performance-limitations\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/sql-server-table-variables-performance-limitations\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/sql-server-table-variables-performance-limitations\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/wp-content\\\/uploads\\\/sites\\\/2\\\/2022\\\/04\\\/Blog_24_1_2016_estimate.png\",\"contentUrl\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/wp-content\\\/uploads\\\/sites\\\/2\\\/2022\\\/04\\\/Blog_24_1_2016_estimate.png\",\"width\":1076,\"height\":213},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/sql-server-table-variables-performance-limitations\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Accueil\",\"item\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"SQL Server: table variables performance limitations\"}]},{\"@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: table variables performance limitations - 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-table-variables-performance-limitations\/","og_locale":"en_US","og_type":"article","og_title":"SQL Server: table variables performance limitations","og_description":"Doing some performance troubleshooting for one of my customers I identified some issues with very large table variables inside Stored procedures. Table variables limitations are not well understood by developers although they are now well documented. Table variable rows estimation Let&#8217;s have a look at an example with my customer context which is SQL Server [&hellip;]","og_url":"https:\/\/www.dbi-services.com\/blog\/sql-server-table-variables-performance-limitations\/","og_site_name":"dbi Blog","article_published_time":"2021-07-14T14:39:24+00:00","article_modified_time":"2025-10-01T09:59:16+00:00","og_image":[{"width":1076,"height":213,"url":"http:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/Blog_24_1_2016_estimate.png","type":"image\/png"}],"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-table-variables-performance-limitations\/#article","isPartOf":{"@id":"https:\/\/www.dbi-services.com\/blog\/sql-server-table-variables-performance-limitations\/"},"author":{"name":"Microsoft Team","@id":"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/bfab48333280d616e1170e7369df90a4"},"headline":"SQL Server: table variables performance limitations","datePublished":"2021-07-14T14:39:24+00:00","dateModified":"2025-10-01T09:59:16+00:00","mainEntityOfPage":{"@id":"https:\/\/www.dbi-services.com\/blog\/sql-server-table-variables-performance-limitations\/"},"wordCount":404,"commentCount":0,"image":{"@id":"https:\/\/www.dbi-services.com\/blog\/sql-server-table-variables-performance-limitations\/#primaryimage"},"thumbnailUrl":"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/Blog_24_1_2016_estimate.png","keywords":["SQL Server","Table variable"],"articleSection":["Database Administration &amp; Monitoring","SQL Server"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.dbi-services.com\/blog\/sql-server-table-variables-performance-limitations\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.dbi-services.com\/blog\/sql-server-table-variables-performance-limitations\/","url":"https:\/\/www.dbi-services.com\/blog\/sql-server-table-variables-performance-limitations\/","name":"SQL Server: table variables performance limitations - dbi Blog","isPartOf":{"@id":"https:\/\/www.dbi-services.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.dbi-services.com\/blog\/sql-server-table-variables-performance-limitations\/#primaryimage"},"image":{"@id":"https:\/\/www.dbi-services.com\/blog\/sql-server-table-variables-performance-limitations\/#primaryimage"},"thumbnailUrl":"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/Blog_24_1_2016_estimate.png","datePublished":"2021-07-14T14:39:24+00:00","dateModified":"2025-10-01T09:59:16+00:00","author":{"@id":"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/bfab48333280d616e1170e7369df90a4"},"breadcrumb":{"@id":"https:\/\/www.dbi-services.com\/blog\/sql-server-table-variables-performance-limitations\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.dbi-services.com\/blog\/sql-server-table-variables-performance-limitations\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.dbi-services.com\/blog\/sql-server-table-variables-performance-limitations\/#primaryimage","url":"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/Blog_24_1_2016_estimate.png","contentUrl":"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/Blog_24_1_2016_estimate.png","width":1076,"height":213},{"@type":"BreadcrumbList","@id":"https:\/\/www.dbi-services.com\/blog\/sql-server-table-variables-performance-limitations\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Accueil","item":"https:\/\/www.dbi-services.com\/blog\/"},{"@type":"ListItem","position":2,"name":"SQL Server: table variables performance limitations"}]},{"@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\/16525","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=16525"}],"version-history":[{"count":2,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/posts\/16525\/revisions"}],"predecessor-version":[{"id":40613,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/posts\/16525\/revisions\/40613"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/media\/16526"}],"wp:attachment":[{"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/media?parent=16525"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/categories?post=16525"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/tags?post=16525"},{"taxonomy":"type","embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/type_dbi?post=16525"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}