{"id":2477,"date":"2020-12-15T20:55:48","date_gmt":"2020-12-15T18:55:48","guid":{"rendered":"https:\/\/www.sqlinthewild.co.za\/?p=2477"},"modified":"2020-12-15T21:39:39","modified_gmt":"2020-12-15T19:39:39","slug":"on-table-variable-row-estimations","status":"publish","type":"post","link":"https:\/\/www.sqlinthewild.co.za\/index.php\/2020\/12\/15\/on-table-variable-row-estimations\/","title":{"rendered":"On table variable row estimations"},"content":{"rendered":"\n<p>At first glance, the question of how many rows are estimated from a table variable is easy.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"540\" height=\"496\" data-attachment-id=\"2478\" data-permalink=\"https:\/\/www.sqlinthewild.co.za\/index.php\/2020\/12\/15\/on-table-variable-row-estimations\/table-variable-estimates\/\" data-orig-file=\"https:\/\/www.sqlinthewild.co.za\/wp-content\/uploads\/2020\/12\/Table-variable-estimates.png\" data-orig-size=\"540,496\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"Table-variable-estimates\" data-image-description=\"\" data-image-caption=\"\" data-medium-file=\"https:\/\/www.sqlinthewild.co.za\/wp-content\/uploads\/2020\/12\/Table-variable-estimates-300x276.png\" data-large-file=\"https:\/\/www.sqlinthewild.co.za\/wp-content\/uploads\/2020\/12\/Table-variable-estimates.png\" src=\"https:\/\/www.sqlinthewild.co.za\/wp-content\/uploads\/2020\/12\/Table-variable-estimates.png\" alt=\"\" class=\"wp-image-2478\" srcset=\"https:\/\/www.sqlinthewild.co.za\/wp-content\/uploads\/2020\/12\/Table-variable-estimates.png 540w, https:\/\/www.sqlinthewild.co.za\/wp-content\/uploads\/2020\/12\/Table-variable-estimates-300x276.png 300w\" sizes=\"auto, (max-width: 540px) 100vw, 540px\" \/><\/figure>\n\n\n\n<p>But, is it really that simple? Well, not really. To dig into the why, first we need to identify why table variables estimate 1 row. The obvious answer is because they don&#8217;t have statistics. However&#8230;<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: sql; title: ; notranslate\" title=\"\">\nALTER DATABASE CURRENT SET AUTO_CREATE_STATISTICS OFF\nGO\n\nCREATE TABLE Test (SomeCol INT);\n\nINSERT INTO Test (SomeCol)\nVALUES (1),(22),(37),(45),(55),(67),(72),(86),(91)\n\nSELECT SomeCol FROM Test\n\nSELECT * FROM sys.stats WHERE object_id = OBJECT_ID('Test')\n\nDROP TABLE dbo.Test\n<\/pre><\/div>\n\n\n<p>That table has no statistics, but it still estimates rows correctly.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"94\" data-attachment-id=\"2480\" data-permalink=\"https:\/\/www.sqlinthewild.co.za\/index.php\/2020\/12\/15\/on-table-variable-row-estimations\/nostats\/\" data-orig-file=\"https:\/\/www.sqlinthewild.co.za\/wp-content\/uploads\/2020\/12\/NoStats.png\" data-orig-size=\"1132,104\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"NoStats\" data-image-description=\"\" data-image-caption=\"\" data-medium-file=\"https:\/\/www.sqlinthewild.co.za\/wp-content\/uploads\/2020\/12\/NoStats-300x28.png\" data-large-file=\"https:\/\/www.sqlinthewild.co.za\/wp-content\/uploads\/2020\/12\/NoStats-1024x94.png\" src=\"https:\/\/www.sqlinthewild.co.za\/wp-content\/uploads\/2020\/12\/NoStats-1024x94.png\" alt=\"\" class=\"wp-image-2480\" srcset=\"https:\/\/www.sqlinthewild.co.za\/wp-content\/uploads\/2020\/12\/NoStats-1024x94.png 1024w, https:\/\/www.sqlinthewild.co.za\/wp-content\/uploads\/2020\/12\/NoStats-300x28.png 300w, https:\/\/www.sqlinthewild.co.za\/wp-content\/uploads\/2020\/12\/NoStats-768x71.png 768w, https:\/\/www.sqlinthewild.co.za\/wp-content\/uploads\/2020\/12\/NoStats-765x70.png 765w, https:\/\/www.sqlinthewild.co.za\/wp-content\/uploads\/2020\/12\/NoStats.png 1132w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"549\" height=\"424\" data-attachment-id=\"2479\" data-permalink=\"https:\/\/www.sqlinthewild.co.za\/index.php\/2020\/12\/15\/on-table-variable-row-estimations\/table-estimates\/\" data-orig-file=\"https:\/\/www.sqlinthewild.co.za\/wp-content\/uploads\/2020\/12\/Table-estimates.png\" data-orig-size=\"549,424\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"Table-estimates\" data-image-description=\"\" data-image-caption=\"\" data-medium-file=\"https:\/\/www.sqlinthewild.co.za\/wp-content\/uploads\/2020\/12\/Table-estimates-300x232.png\" data-large-file=\"https:\/\/www.sqlinthewild.co.za\/wp-content\/uploads\/2020\/12\/Table-estimates.png\" src=\"https:\/\/www.sqlinthewild.co.za\/wp-content\/uploads\/2020\/12\/Table-estimates.png\" alt=\"\" class=\"wp-image-2479\" srcset=\"https:\/\/www.sqlinthewild.co.za\/wp-content\/uploads\/2020\/12\/Table-estimates.png 549w, https:\/\/www.sqlinthewild.co.za\/wp-content\/uploads\/2020\/12\/Table-estimates-300x232.png 300w\" sizes=\"auto, (max-width: 549px) 100vw, 549px\" \/><\/figure>\n\n\n\n<p>So it&#8217;s not just the absence of statistics. Hmmm&#8230; Where else is there a difference with a table variable?<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"941\" height=\"506\" data-attachment-id=\"2483\" data-permalink=\"https:\/\/www.sqlinthewild.co.za\/index.php\/2020\/12\/15\/on-table-variable-row-estimations\/xe-event-output\/\" data-orig-file=\"https:\/\/www.sqlinthewild.co.za\/wp-content\/uploads\/2020\/12\/XE-Event-Output.png\" data-orig-size=\"941,506\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"XE-Event-Output\" data-image-description=\"\" data-image-caption=\"\" data-medium-file=\"https:\/\/www.sqlinthewild.co.za\/wp-content\/uploads\/2020\/12\/XE-Event-Output-300x161.png\" data-large-file=\"https:\/\/www.sqlinthewild.co.za\/wp-content\/uploads\/2020\/12\/XE-Event-Output.png\" src=\"https:\/\/www.sqlinthewild.co.za\/wp-content\/uploads\/2020\/12\/XE-Event-Output.png\" alt=\"\" class=\"wp-image-2483\" srcset=\"https:\/\/www.sqlinthewild.co.za\/wp-content\/uploads\/2020\/12\/XE-Event-Output.png 941w, https:\/\/www.sqlinthewild.co.za\/wp-content\/uploads\/2020\/12\/XE-Event-Output-300x161.png 300w, https:\/\/www.sqlinthewild.co.za\/wp-content\/uploads\/2020\/12\/XE-Event-Output-768x413.png 768w, https:\/\/www.sqlinthewild.co.za\/wp-content\/uploads\/2020\/12\/XE-Event-Output-765x411.png 765w\" sizes=\"auto, (max-width: 941px) 100vw, 941px\" \/><\/figure>\n\n\n\n<p>It has to do with when the plans are generated. The XE event results are from an event tracking statement start and end and the post-compilation event for the plan. For the query using the table variable, the entire batch is compiled before the execution starts. For the permanent table, there are multiple compilation events.<\/p>\n\n\n\n<p>And this is because of something called &#8216;deferred compile&#8217;. For the table variable, the entire batch is compiled at the start, at a time where the table variable does not exist, and because there are no statistics, no recompile is triggered after the insert. Hence, there cannot be any row estimation other than 1 row, because the table did not exist when the estimate was made.<\/p>\n\n\n\n<p>For the permanent table, the compilation of the query that uses the table is deferred until the query starts, not when the batch starts. Hence the plan for the query is generated after the table exists, after it&#8217;s been populated. That&#8217;s the difference here.<\/p>\n\n\n\n<p>Now, there&#8217;s still no statistics, and so there&#8217;s no way to get data distribution, but that&#8217;s not the only way to get information on the rows in the table. The Storage Engine knows how many rows are in the table, though data distribution isn&#8217;t known.<\/p>\n\n\n\n<p>Hence, with a table variable we can expect to see an estimated row count other than 1 any time the table variable exists before the query that uses it is compiled.<\/p>\n\n\n\n<p>That will happen when the table variable is a table-type parameter, when the query using it has the RECOMPILE option, and when SQL 2019&#8217;s deferred compile for table variables is in play.<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: sql; title: ; notranslate\" title=\"\">\nCREATE OR ALTER PROCEDURE TestRowEstimations @Input TestTableType READONLY AS\n\nSELECT SomeCol FROM @Input;\n\nDECLARE @Test TABLE (SomeCol INT);\n\nINSERT INTO @Test (SomeCol)\nVALUES (1),(22),(37),(45),(55),(67),(72),(86),(91);\n\nSELECT SomeCol FROM @Test;\n\nSELECT SomeCol FROM @Test OPTION (RECOMPILE);\nGO\n<\/pre><\/div>\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"535\" height=\"418\" data-attachment-id=\"2484\" data-permalink=\"https:\/\/www.sqlinthewild.co.za\/index.php\/2020\/12\/15\/on-table-variable-row-estimations\/2020-12-15_20-12-07\/\" data-orig-file=\"https:\/\/www.sqlinthewild.co.za\/wp-content\/uploads\/2020\/12\/2020-12-15_20-12-07.png\" data-orig-size=\"535,418\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"2020-12-15_20-12-07\" data-image-description=\"\" data-image-caption=\"\" data-medium-file=\"https:\/\/www.sqlinthewild.co.za\/wp-content\/uploads\/2020\/12\/2020-12-15_20-12-07-300x234.png\" data-large-file=\"https:\/\/www.sqlinthewild.co.za\/wp-content\/uploads\/2020\/12\/2020-12-15_20-12-07.png\" src=\"https:\/\/www.sqlinthewild.co.za\/wp-content\/uploads\/2020\/12\/2020-12-15_20-12-07.png\" alt=\"\" class=\"wp-image-2484\" srcset=\"https:\/\/www.sqlinthewild.co.za\/wp-content\/uploads\/2020\/12\/2020-12-15_20-12-07.png 535w, https:\/\/www.sqlinthewild.co.za\/wp-content\/uploads\/2020\/12\/2020-12-15_20-12-07-300x234.png 300w\" sizes=\"auto, (max-width: 535px) 100vw, 535px\" \/><figcaption>Table-valued parameter<\/figcaption><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"543\" height=\"465\" data-attachment-id=\"2485\" data-permalink=\"https:\/\/www.sqlinthewild.co.za\/index.php\/2020\/12\/15\/on-table-variable-row-estimations\/2020-12-15_20-48-32\/\" data-orig-file=\"https:\/\/www.sqlinthewild.co.za\/wp-content\/uploads\/2020\/12\/2020-12-15_20-48-32.png\" data-orig-size=\"543,465\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"2020-12-15_20-48-32\" data-image-description=\"\" data-image-caption=\"\" data-medium-file=\"https:\/\/www.sqlinthewild.co.za\/wp-content\/uploads\/2020\/12\/2020-12-15_20-48-32-300x257.png\" data-large-file=\"https:\/\/www.sqlinthewild.co.za\/wp-content\/uploads\/2020\/12\/2020-12-15_20-48-32.png\" src=\"https:\/\/www.sqlinthewild.co.za\/wp-content\/uploads\/2020\/12\/2020-12-15_20-48-32.png\" alt=\"\" class=\"wp-image-2485\" srcset=\"https:\/\/www.sqlinthewild.co.za\/wp-content\/uploads\/2020\/12\/2020-12-15_20-48-32.png 543w, https:\/\/www.sqlinthewild.co.za\/wp-content\/uploads\/2020\/12\/2020-12-15_20-48-32-300x257.png 300w\" sizes=\"auto, (max-width: 543px) 100vw, 543px\" \/><figcaption>Normal select on compatibility mode 140<\/figcaption><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"546\" height=\"419\" data-attachment-id=\"2486\" data-permalink=\"https:\/\/www.sqlinthewild.co.za\/index.php\/2020\/12\/15\/on-table-variable-row-estimations\/2020-12-15_20-52-59\/\" data-orig-file=\"https:\/\/www.sqlinthewild.co.za\/wp-content\/uploads\/2020\/12\/2020-12-15_20-52-59.png\" data-orig-size=\"546,419\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"2020-12-15_20-52-59\" data-image-description=\"\" data-image-caption=\"\" data-medium-file=\"https:\/\/www.sqlinthewild.co.za\/wp-content\/uploads\/2020\/12\/2020-12-15_20-52-59-300x230.png\" data-large-file=\"https:\/\/www.sqlinthewild.co.za\/wp-content\/uploads\/2020\/12\/2020-12-15_20-52-59.png\" src=\"https:\/\/www.sqlinthewild.co.za\/wp-content\/uploads\/2020\/12\/2020-12-15_20-52-59.png\" alt=\"\" class=\"wp-image-2486\" srcset=\"https:\/\/www.sqlinthewild.co.za\/wp-content\/uploads\/2020\/12\/2020-12-15_20-52-59.png 546w, https:\/\/www.sqlinthewild.co.za\/wp-content\/uploads\/2020\/12\/2020-12-15_20-52-59-300x230.png 300w\" sizes=\"auto, (max-width: 546px) 100vw, 546px\" \/><figcaption>Normal select on compatibility mode 150<\/figcaption><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"552\" height=\"427\" data-attachment-id=\"2487\" data-permalink=\"https:\/\/www.sqlinthewild.co.za\/index.php\/2020\/12\/15\/on-table-variable-row-estimations\/2020-12-15_20-49-17\/\" data-orig-file=\"https:\/\/www.sqlinthewild.co.za\/wp-content\/uploads\/2020\/12\/2020-12-15_20-49-17.png\" data-orig-size=\"552,427\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"2020-12-15_20-49-17\" data-image-description=\"\" data-image-caption=\"\" data-medium-file=\"https:\/\/www.sqlinthewild.co.za\/wp-content\/uploads\/2020\/12\/2020-12-15_20-49-17-300x232.png\" data-large-file=\"https:\/\/www.sqlinthewild.co.za\/wp-content\/uploads\/2020\/12\/2020-12-15_20-49-17.png\" src=\"https:\/\/www.sqlinthewild.co.za\/wp-content\/uploads\/2020\/12\/2020-12-15_20-49-17.png\" alt=\"\" class=\"wp-image-2487\" srcset=\"https:\/\/www.sqlinthewild.co.za\/wp-content\/uploads\/2020\/12\/2020-12-15_20-49-17.png 552w, https:\/\/www.sqlinthewild.co.za\/wp-content\/uploads\/2020\/12\/2020-12-15_20-49-17-300x232.png 300w\" sizes=\"auto, (max-width: 552px) 100vw, 552px\" \/><figcaption>Select with OPTION(RECOMPILE)<\/figcaption><\/figure>\n","protected":false},"excerpt":{"rendered":"<p>At first glance, the question of how many rows are estimated from a table variable is easy. But, is it really that simple? Well, not really. To dig into the why, first we need to identify why table variables estimate&#8230; <a class=\"read-more-button\" href=\"https:\/\/www.sqlinthewild.co.za\/index.php\/2020\/12\/15\/on-table-variable-row-estimations\/\">(Read more)<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"New blog post: On table variable row estimations","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":true,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2}},"categories":[23,29,15,16],"tags":[],"class_list":["post-2477","post","type-post","status-publish","format-standard","hentry","category-execution-plans","category-internals","category-sql-server","category-syndication"],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack_shortlink":"https:\/\/wp.me\/p7h6n-DX","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/www.sqlinthewild.co.za\/index.php\/wp-json\/wp\/v2\/posts\/2477","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.sqlinthewild.co.za\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.sqlinthewild.co.za\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.sqlinthewild.co.za\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.sqlinthewild.co.za\/index.php\/wp-json\/wp\/v2\/comments?post=2477"}],"version-history":[{"count":3,"href":"https:\/\/www.sqlinthewild.co.za\/index.php\/wp-json\/wp\/v2\/posts\/2477\/revisions"}],"predecessor-version":[{"id":2489,"href":"https:\/\/www.sqlinthewild.co.za\/index.php\/wp-json\/wp\/v2\/posts\/2477\/revisions\/2489"}],"wp:attachment":[{"href":"https:\/\/www.sqlinthewild.co.za\/index.php\/wp-json\/wp\/v2\/media?parent=2477"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.sqlinthewild.co.za\/index.php\/wp-json\/wp\/v2\/categories?post=2477"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.sqlinthewild.co.za\/index.php\/wp-json\/wp\/v2\/tags?post=2477"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}