{"id":584,"date":"2024-05-28T08:00:00","date_gmt":"2024-05-28T13:00:00","guid":{"rendered":"https:\/\/www.sqltabletalk.com\/?p=584"},"modified":"2024-05-27T00:49:17","modified_gmt":"2024-05-27T05:49:17","slug":"understanding-in-memory-tables-with-always-on-in-sql-server","status":"publish","type":"post","link":"https:\/\/www.sqltabletalk.com\/?p=584","title":{"rendered":"Understanding In-Memory Tables with Always On in SQL Server"},"content":{"rendered":"<h2>Introduction<\/h2>\n\n<p>In today\u2019s dynamic database management landscape, achieving high performance and reliability is paramount. SQL Server\u2019s Always On availability groups offer a robust framework for high availability and disaster recovery. When combined with the power of in-memory tables, the capabilities of your SQL Server deployment are significantly amplified. This blog explores the benefits of using in-memory tables with Always On availability groups and demonstrates how these technologies can work together to optimize performance and ensure reliability in your SQL Server environment.<\/p>\n\n<h2>Benefits of In-Memory Tables<\/h2>\n\n<p>In-memory tables in SQL Server are designed to offer several key advantages:<\/p>\n\n<ul>\n    <li><strong>High-Throughput Transaction Processing:<\/strong> In-memory tables can handle a large number of transactions per second, making them ideal for applications requiring quick responses.<\/li>\n    <li><strong>Low-Latency Operations:<\/strong> By keeping data in memory, these tables reduce access and modification times, resulting in faster operations.<\/li>\n    <li><strong>Efficient Data Ingestion:<\/strong> They are suitable for scenarios where large volumes of data need to be ingested rapidly.<\/li>\n    <li><strong>Effective Caching:<\/strong> In-memory tables serve as a fast caching layer for frequently accessed data.<\/li>\n    <li><strong>Session State Management:<\/strong> These tables are ideal for maintaining session state in web applications.<\/li>\n    <li><strong>Tempdb Object Replacement:<\/strong> They can replace tempdb objects, reducing tempdb contention and improving overall performance.<\/li>\n<\/ul>\n\n<h2>Types of In-Memory Tables in SQL Server<\/h2>\n\n<p>SQL Server offers two primary types of in-memory tables based on their durability:<\/p>\n\n<h3>Schema-Only Durability (DURABILITY = SCHEMA_ONLY)<\/h3>\n<ul>\n    <li>Maintains only the schema of the in-memory table.<\/li>\n    <li>Data is not preserved after a service restart or when the database goes offline.<\/li>\n    <li><strong>Use Cases:<\/strong> Temporary data for ETL processes, staging tables for data warehouses, and logging tables.<\/li>\n<\/ul>\n\n<h3>Schema and Data Durability (DURABILITY = SCHEMA_AND_DATA)<\/h3>\n<ul>\n    <li>Maintains both the schema and data of the in-memory table.<\/li>\n    <li>Requires a primary key and impacts the database&#8217;s recovery time.<\/li>\n    <li><strong>Use Cases:<\/strong> Tables requiring high throughput and low latency.<\/li>\n<\/ul>\n\n<h2>How Always On Availability Groups Enhance In-Memory Tables<\/h2>\n\n<h3>Schema and Data Durability<\/h3>\n<ul>\n    <li>Secondary replicas maintain the in-memory state of durable memory-optimized tables.<\/li>\n    <li>Failover time to the new primary is comparable to disk-based tables, ensuring continuity and quick recovery.<\/li>\n    <li>Memory-optimized tables have an on-disk presence in the form of &#8220;checkpoint file pairs&#8221; (CFPs) to ensure durability during server crashes.<\/li>\n<\/ul>\n\n<h3>Checkpoint File Pairs (CFPs)<\/h3>\n<ul>\n    <li>Data for memory-optimized tables is stored in data and delta files.<\/li>\n    <li>Deletions are logged in delta files, which are merged over time by a background thread based on a merge policy.<\/li>\n    <li>This process is managed by the offline checkpoint thread to optimize performance.<\/li>\n<\/ul>\n\n<h3>Schema-Only Durability<\/h3>\n<ul>\n    <li>Supported but changes to these tables are not logged.<\/li>\n    <li>No data will exist in these tables on the secondary replica after a failover, making them suitable for temporary data storage.<\/li>\n<\/ul>\n\n<h3>Recovery Process<\/h3>\n<ul>\n    <li><strong>Analysis:<\/strong> Detects committed and uncommitted transactions by analyzing active transaction logs.<\/li>\n    <li><strong>Redo:<\/strong> Runs concurrently on both disk-based and memory-optimized tables, updating data from the last durable checkpoint.<\/li>\n    <li><strong>Undo:<\/strong> Rolls back uncommitted transactions.<\/li>\n<\/ul>\n\n<h2>Factors Affecting Load Time of In-Memory Tables<\/h2>\n\n<p>Several factors influence the load time of in-memory tables during recovery or restore operations:<\/p>\n\n<ul>\n    <li><strong>Data Volume:<\/strong> The amount of data to be loaded into memory.<\/li>\n    <li><strong>I\/O Bandwidth:<\/strong> Available bandwidth for reading data and delta files.<\/li>\n    <li><strong>Parallelism:<\/strong> Degree of parallelism determined by the number of file containers and processor cores.<\/li>\n    <li><strong>Log Records:<\/strong> Number of log records in the active log portion needing redo.<\/li>\n<\/ul>\n\n<h2>Reducing Recovery Time<\/h2>\n\n<p>To minimize recovery time, consider the following strategies:<\/p>\n\n<ul>\n    <li>Ensure replicas are synchronized.<\/li>\n    <li>Keep the redo queue size at zero.<\/li>\n    <li>Perform a manual checkpoint on the primary server.<\/li>\n    <li>Enable instant file initialization.<\/li>\n    <li>Properly configure the bucket count to avoid extended recovery processes.<\/li>\n<\/ul>\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"741\" height=\"503\" src=\"https:\/\/www.sqltabletalk.com\/wp-content\/uploads\/2024\/05\/image-8.png\" alt=\"\" class=\"wp-image-585\" srcset=\"https:\/\/www.sqltabletalk.com\/wp-content\/uploads\/2024\/05\/image-8.png 741w, https:\/\/www.sqltabletalk.com\/wp-content\/uploads\/2024\/05\/image-8-300x204.png 300w\" sizes=\"auto, (max-width: 741px) 100vw, 741px\" \/><\/figure>\n\n\n<h2>Alternatives to In-Memory Tables<\/h2>\n\n<p>Depending on your needs, consider these alternatives:<\/p>\n\n<ul>\n    <li><strong>Schema-Only Configuration:<\/strong> Use schema-only tables for non-persistent data, such as session state.<\/li>\n    <li><strong>Data Archival:<\/strong> Move older data to conventional tables, using in-memory OLTP tables for rapid data ingestion.<\/li>\n    <li><strong>Regular Tables:<\/strong> Use conventional tables to avoid interruptions during startup.<\/li>\n<\/ul>\n\n<h2>Conclusion<\/h2>\n\n<p>By carefully selecting the right configuration and employing strategies to minimize recovery time, you can optimize the performance and reliability of your SQL Server with Always On availability groups and in-memory tables. These technologies, when used together, provide a powerful solution for high-throughput transaction processing, efficient data ingestion, and effective session state management. With proper implementation, you can ensure your SQL Server environment is both high-performing and resilient, meeting the demands of modern applications.<\/p>\n\n\n\n","protected":false},"excerpt":{"rendered":"<p>In today\u2019s dynamic database management landscape, achieving high performance and reliability is paramount. SQL Server\u2019s Always On availability groups offer a robust framework for high availability and disaster recovery. When combined with the power of in-memory tables, the capabilities of your SQL Server deployment are significantly amplified. This blog explores the benefits of using in-memory tables with Always On availability groups and demonstrates how these technologies can work together to optimize performance and ensure reliability in your SQL Server environment.<\/p>\n","protected":false},"author":2,"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":""},"categories":[36,133,12,6,5],"tags":[137,4,7],"class_list":["post-584","post","type-post","status-publish","format-standard","hentry","category-availability-groups","category-in-memory-oltp","category-internals","category-memory","category-performance","tag-in-memory-oltp","tag-internals","tag-memory"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.1.1 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Enhancing SQL Server Performance with Always On Availability Groups and In-Memory Tables<\/title>\n<meta name=\"description\" content=\"Learn how to optimize SQL Server performance and reliability using Always On availability groups and in-memory tables. This detailed guide covers benefits, configurations, and strategies to minimize recovery time, ensuring high-throughput transaction processing and efficient data management.\" \/>\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.sqltabletalk.com\/?p=584\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Enhancing SQL Server Performance with Always On Availability Groups and In-Memory Tables\" \/>\n<meta property=\"og:description\" content=\"Learn how to optimize SQL Server performance and reliability using Always On availability groups and in-memory tables. This detailed guide covers benefits, configurations, and strategies to minimize recovery time, ensuring high-throughput transaction processing and efficient data management.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.sqltabletalk.com\/?p=584\" \/>\n<meta property=\"og:site_name\" content=\"SQL Table Talk\" \/>\n<meta property=\"article:published_time\" content=\"2024-05-28T13:00:00+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.sqltabletalk.com\/wp-content\/uploads\/2024\/05\/image-8.png\" \/>\n<meta name=\"author\" content=\"Yvonne Vanslageren\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Yvonne Vanslageren\" \/>\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.sqltabletalk.com\/?p=584#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.sqltabletalk.com\/?p=584\"},\"author\":{\"name\":\"Yvonne Vanslageren\",\"@id\":\"https:\/\/www.sqltabletalk.com\/#\/schema\/person\/68bb31b454bafe9e139183ed4f3e9082\"},\"headline\":\"Understanding In-Memory Tables with Always On in SQL Server\",\"datePublished\":\"2024-05-28T13:00:00+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.sqltabletalk.com\/?p=584\"},\"wordCount\":717,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/www.sqltabletalk.com\/#\/schema\/person\/1947e42a9438bccd91691d8b791888e0\"},\"image\":{\"@id\":\"https:\/\/www.sqltabletalk.com\/?p=584#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.sqltabletalk.com\/wp-content\/uploads\/2024\/05\/image-8.png\",\"keywords\":[\"In Memory OLTP\",\"Internals\",\"memory\"],\"articleSection\":[\"Availability Groups\",\"In-Memory OLTP\",\"Internals\",\"Memory\",\"Performance\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.sqltabletalk.com\/?p=584#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.sqltabletalk.com\/?p=584\",\"url\":\"https:\/\/www.sqltabletalk.com\/?p=584\",\"name\":\"Enhancing SQL Server Performance with Always On Availability Groups and In-Memory Tables\",\"isPartOf\":{\"@id\":\"https:\/\/www.sqltabletalk.com\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.sqltabletalk.com\/?p=584#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.sqltabletalk.com\/?p=584#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.sqltabletalk.com\/wp-content\/uploads\/2024\/05\/image-8.png\",\"datePublished\":\"2024-05-28T13:00:00+00:00\",\"description\":\"Learn how to optimize SQL Server performance and reliability using Always On availability groups and in-memory tables. This detailed guide covers benefits, configurations, and strategies to minimize recovery time, ensuring high-throughput transaction processing and efficient data management.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.sqltabletalk.com\/?p=584#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.sqltabletalk.com\/?p=584\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.sqltabletalk.com\/?p=584#primaryimage\",\"url\":\"https:\/\/www.sqltabletalk.com\/wp-content\/uploads\/2024\/05\/image-8.png\",\"contentUrl\":\"https:\/\/www.sqltabletalk.com\/wp-content\/uploads\/2024\/05\/image-8.png\",\"width\":741,\"height\":503},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.sqltabletalk.com\/?p=584#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.sqltabletalk.com\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Understanding In-Memory Tables with Always On in SQL Server\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.sqltabletalk.com\/#website\",\"url\":\"https:\/\/www.sqltabletalk.com\/\",\"name\":\"SQL Table Talk\",\"description\":\"Breaking Down SQL Server, One Post at a Time.\",\"publisher\":{\"@id\":\"https:\/\/www.sqltabletalk.com\/#\/schema\/person\/1947e42a9438bccd91691d8b791888e0\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.sqltabletalk.com\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\/\/www.sqltabletalk.com\/#\/schema\/person\/1947e42a9438bccd91691d8b791888e0\",\"name\":\"Stephen Planck\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.sqltabletalk.com\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/64181114edc3de3d99072c049bcec024f025c9536dc89fc8ff1bac58976ca81e?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/64181114edc3de3d99072c049bcec024f025c9536dc89fc8ff1bac58976ca81e?s=96&d=mm&r=g\",\"caption\":\"Stephen Planck\"},\"logo\":{\"@id\":\"https:\/\/www.sqltabletalk.com\/#\/schema\/person\/image\/\"},\"sameAs\":[\"https:\/\/dexterwiki.com\",\"https:\/\/www.linkedin.com\/in\/stephen-planck-4611b692?trk=people-guest_people_search-card&challengeId=AQErf8gbBmcVMwAAAYsyIsxO-0UvU8z7cHrBpZoo_n3xt9qEKpRN5B_jd_LmAMu-OfeArkQ7GDjobJ2uRoQQV35EQdh_rR6kxA&submissionId=09de7067-c335-8e17-40b8-8dc32b60ed6c&challengeSource=AgEcUCw35zpPmAAAAYsyI4vAWhJTV7Nt4vZYKc3V1qiDBpCkKgUvtlOBgYXcE84&challegeType=AgE_wZiTT09IAQAAAYsyI4vDmNvbZIYe6XHju5V2bXVvM3IVxnJslgY&memberId=AgESFTkUShzs_gAAAYsyI4vGYk0Gic1uc5kB6cKOABA26Gw&recognizeDevice=AgHdSZyUSI5CEwAAAYsyI4vKd_koF9JgpsCJShT8QfbK1QMiv8SI\",\"https:\/\/www.youtube.com\/linuxmate\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.sqltabletalk.com\/#\/schema\/person\/68bb31b454bafe9e139183ed4f3e9082\",\"name\":\"Yvonne Vanslageren\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.sqltabletalk.com\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/22c274a7a354b81a0a8dc5b23e8e0be9bdd81a6bc0541474cfb6b954d6bb2089?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/22c274a7a354b81a0a8dc5b23e8e0be9bdd81a6bc0541474cfb6b954d6bb2089?s=96&d=mm&r=g\",\"caption\":\"Yvonne Vanslageren\"},\"url\":\"https:\/\/www.sqltabletalk.com\/?author=2\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Enhancing SQL Server Performance with Always On Availability Groups and In-Memory Tables","description":"Learn how to optimize SQL Server performance and reliability using Always On availability groups and in-memory tables. This detailed guide covers benefits, configurations, and strategies to minimize recovery time, ensuring high-throughput transaction processing and efficient data management.","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.sqltabletalk.com\/?p=584","og_locale":"en_US","og_type":"article","og_title":"Enhancing SQL Server Performance with Always On Availability Groups and In-Memory Tables","og_description":"Learn how to optimize SQL Server performance and reliability using Always On availability groups and in-memory tables. This detailed guide covers benefits, configurations, and strategies to minimize recovery time, ensuring high-throughput transaction processing and efficient data management.","og_url":"https:\/\/www.sqltabletalk.com\/?p=584","og_site_name":"SQL Table Talk","article_published_time":"2024-05-28T13:00:00+00:00","og_image":[{"url":"https:\/\/www.sqltabletalk.com\/wp-content\/uploads\/2024\/05\/image-8.png","type":"","width":"","height":""}],"author":"Yvonne Vanslageren","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Yvonne Vanslageren","Est. reading time":"4 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.sqltabletalk.com\/?p=584#article","isPartOf":{"@id":"https:\/\/www.sqltabletalk.com\/?p=584"},"author":{"name":"Yvonne Vanslageren","@id":"https:\/\/www.sqltabletalk.com\/#\/schema\/person\/68bb31b454bafe9e139183ed4f3e9082"},"headline":"Understanding In-Memory Tables with Always On in SQL Server","datePublished":"2024-05-28T13:00:00+00:00","mainEntityOfPage":{"@id":"https:\/\/www.sqltabletalk.com\/?p=584"},"wordCount":717,"commentCount":0,"publisher":{"@id":"https:\/\/www.sqltabletalk.com\/#\/schema\/person\/1947e42a9438bccd91691d8b791888e0"},"image":{"@id":"https:\/\/www.sqltabletalk.com\/?p=584#primaryimage"},"thumbnailUrl":"https:\/\/www.sqltabletalk.com\/wp-content\/uploads\/2024\/05\/image-8.png","keywords":["In Memory OLTP","Internals","memory"],"articleSection":["Availability Groups","In-Memory OLTP","Internals","Memory","Performance"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.sqltabletalk.com\/?p=584#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.sqltabletalk.com\/?p=584","url":"https:\/\/www.sqltabletalk.com\/?p=584","name":"Enhancing SQL Server Performance with Always On Availability Groups and In-Memory Tables","isPartOf":{"@id":"https:\/\/www.sqltabletalk.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.sqltabletalk.com\/?p=584#primaryimage"},"image":{"@id":"https:\/\/www.sqltabletalk.com\/?p=584#primaryimage"},"thumbnailUrl":"https:\/\/www.sqltabletalk.com\/wp-content\/uploads\/2024\/05\/image-8.png","datePublished":"2024-05-28T13:00:00+00:00","description":"Learn how to optimize SQL Server performance and reliability using Always On availability groups and in-memory tables. This detailed guide covers benefits, configurations, and strategies to minimize recovery time, ensuring high-throughput transaction processing and efficient data management.","breadcrumb":{"@id":"https:\/\/www.sqltabletalk.com\/?p=584#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.sqltabletalk.com\/?p=584"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.sqltabletalk.com\/?p=584#primaryimage","url":"https:\/\/www.sqltabletalk.com\/wp-content\/uploads\/2024\/05\/image-8.png","contentUrl":"https:\/\/www.sqltabletalk.com\/wp-content\/uploads\/2024\/05\/image-8.png","width":741,"height":503},{"@type":"BreadcrumbList","@id":"https:\/\/www.sqltabletalk.com\/?p=584#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.sqltabletalk.com\/"},{"@type":"ListItem","position":2,"name":"Understanding In-Memory Tables with Always On in SQL Server"}]},{"@type":"WebSite","@id":"https:\/\/www.sqltabletalk.com\/#website","url":"https:\/\/www.sqltabletalk.com\/","name":"SQL Table Talk","description":"Breaking Down SQL Server, One Post at a Time.","publisher":{"@id":"https:\/\/www.sqltabletalk.com\/#\/schema\/person\/1947e42a9438bccd91691d8b791888e0"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.sqltabletalk.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":["Person","Organization"],"@id":"https:\/\/www.sqltabletalk.com\/#\/schema\/person\/1947e42a9438bccd91691d8b791888e0","name":"Stephen Planck","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.sqltabletalk.com\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/64181114edc3de3d99072c049bcec024f025c9536dc89fc8ff1bac58976ca81e?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/64181114edc3de3d99072c049bcec024f025c9536dc89fc8ff1bac58976ca81e?s=96&d=mm&r=g","caption":"Stephen Planck"},"logo":{"@id":"https:\/\/www.sqltabletalk.com\/#\/schema\/person\/image\/"},"sameAs":["https:\/\/dexterwiki.com","https:\/\/www.linkedin.com\/in\/stephen-planck-4611b692?trk=people-guest_people_search-card&challengeId=AQErf8gbBmcVMwAAAYsyIsxO-0UvU8z7cHrBpZoo_n3xt9qEKpRN5B_jd_LmAMu-OfeArkQ7GDjobJ2uRoQQV35EQdh_rR6kxA&submissionId=09de7067-c335-8e17-40b8-8dc32b60ed6c&challengeSource=AgEcUCw35zpPmAAAAYsyI4vAWhJTV7Nt4vZYKc3V1qiDBpCkKgUvtlOBgYXcE84&challegeType=AgE_wZiTT09IAQAAAYsyI4vDmNvbZIYe6XHju5V2bXVvM3IVxnJslgY&memberId=AgESFTkUShzs_gAAAYsyI4vGYk0Gic1uc5kB6cKOABA26Gw&recognizeDevice=AgHdSZyUSI5CEwAAAYsyI4vKd_koF9JgpsCJShT8QfbK1QMiv8SI","https:\/\/www.youtube.com\/linuxmate"]},{"@type":"Person","@id":"https:\/\/www.sqltabletalk.com\/#\/schema\/person\/68bb31b454bafe9e139183ed4f3e9082","name":"Yvonne Vanslageren","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.sqltabletalk.com\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/22c274a7a354b81a0a8dc5b23e8e0be9bdd81a6bc0541474cfb6b954d6bb2089?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/22c274a7a354b81a0a8dc5b23e8e0be9bdd81a6bc0541474cfb6b954d6bb2089?s=96&d=mm&r=g","caption":"Yvonne Vanslageren"},"url":"https:\/\/www.sqltabletalk.com\/?author=2"}]}},"jetpack_featured_media_url":"","jetpack-related-posts":[],"jetpack_sharing_enabled":true,"jetpack_likes_enabled":true,"_links":{"self":[{"href":"https:\/\/www.sqltabletalk.com\/index.php?rest_route=\/wp\/v2\/posts\/584","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.sqltabletalk.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.sqltabletalk.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.sqltabletalk.com\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.sqltabletalk.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=584"}],"version-history":[{"count":3,"href":"https:\/\/www.sqltabletalk.com\/index.php?rest_route=\/wp\/v2\/posts\/584\/revisions"}],"predecessor-version":[{"id":598,"href":"https:\/\/www.sqltabletalk.com\/index.php?rest_route=\/wp\/v2\/posts\/584\/revisions\/598"}],"wp:attachment":[{"href":"https:\/\/www.sqltabletalk.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=584"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.sqltabletalk.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=584"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.sqltabletalk.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=584"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}