{"id":9219,"date":"2016-11-04T16:23:20","date_gmt":"2016-11-04T15:23:20","guid":{"rendered":"https:\/\/www.dbi-services.com\/blog\/sql-server-alwayson-availability-groups-and-statistic-issues-on-secondaries\/"},"modified":"2023-07-18T07:42:55","modified_gmt":"2023-07-18T05:42:55","slug":"sql-server-alwayson-availability-groups-and-statistic-issues-on-secondaries","status":"publish","type":"post","link":"https:\/\/www.dbi-services.com\/blog\/sql-server-alwayson-availability-groups-and-statistic-issues-on-secondaries\/","title":{"rendered":"SQL Server AlwaysOn availability groups and statistic issues on secondaries"},"content":{"rendered":"<p>I would like to share with you an interesting issue you may face while using SQL Server AlwaysOn availability groups and secondary read-only replicas. For those who use secondary read-only replicas as reporting servers, keep reading this blog post because it is about update statistics behavior on the secondary replicas and as you may know cardinality estimation accuracy is an important part of the queries performance in this case.<\/p>\n<p>So a couple of days ago, I had an interesting discussion with one of my MVP French friend about an availability group issue he faced at a customer shop and related to the above topic. Without going into details now, he was surprised to see a difference between the primary replica and one secondary about last update statistic dates\u00a0as well as rows sampled value for specific statistics. The concerned environment runs with SQL Server 2014 SP2.<\/p>\n<p>First of all, let\u2019s say that having different updated statistic dates between a primary and a secondary is part of a normal process. Indeed, changes related to statistic objects are replicated over the time from the primary to secondaries but\u00a0it is not uncommon to encounter situation where data from the primary is updated until reaching the update statistic threshold value and to notice auto update statistics triggered by SQL Server on the secondary replica from Reporting queries. But what is more surprising is that this behavior noticed by my friend was exacerbated in his specific context with large tables.<\/p>\n<p>Let\u2019s demonstrate with an example. I was able to easily reproduce the issue on my environment but I was also interested in testing behaviors from different versions of SQL Server in response to this specific issue. In fact, I tried to figure out if the problem concerned only a specific build of SQL Server &#8211; SQL Server 2014 SP2 in this case &#8211; or if the problem concerns all the SQL Server versions.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-12486 size-full\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/blog-108-0-demo-archi-e1478275699850.jpg\" alt=\"blog 108 - 0 - demo archi\" width=\"400\" height=\"315\" \/><\/p>\n<p>Let\u2019s use the <em>AdventureWorks2012<\/em> database with the<em> bigTransactionHistory <\/em>table that contains roughly 34 million of rows (343910073 rows).<\/p>\n<p>Let\u2019s say statistic information you will see later in this blog post came from each secondary that runs on a specific SQL Server version (respectively 2012, 2014 and 2016) by using the following T-SQL script on each secondary replica.<\/p>\n<pre class=\"brush: sql; gutter: true; first-line: 1\">use AdventureWorks2012;\n\nselect \n\tobject_name(s.object_id) as table_name,\n\ts.name as stat_name,\n\ts.is_temporary,\n\tds.last_updated,\n\tds.modification_counter,\n\tds.rows,\n\tds.rows_sampled,\n\tCAST(ds.modification_counter * 100. \/ ds.rows AS DECIMAL(5,2)) AS modif_ratio,\n\tds.steps\nfrom sys.stats as s (nolock)\ncross apply sys.dm_db_stats_properties(s.object_id, s.stats_id) as ds\nwhere s.object_id = object_id('dbo.bigTransactionHistory');\ngo<\/pre>\n<p>Let\u2019s begin with the starting scenario where I inserted approximatively 20% of the initial data in the <em>bigTransactionHistory<\/em> table as you may notice below. During the test we will focus only on the <em>idx_cl_big_TransactionHistoryTransactionDate <\/em>statistic related to the clustered index on the <em>bigTransactionHistory<\/em> table.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-12487\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/blog-108-1-stats-after-modif-and-before-update-fullscan-e1478275788418.jpg\" alt=\"blog 108 - 1 - stats after modif and before update fullscan\" width=\"800\" height=\"175\" \/><\/p>\n<p>Let\u2019s update then the <em>idx_cl_big_TransactionHistoryTransactionDate statistic<\/em> with FULLSCAN from the primary replica. This operation may be part of a maintenance plan on daily \/ monthly basis depending on your scenario. Here a picture of statistic information from each secondary:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-12488\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/blog-108-2-stats-after-modif-and-after-update-fullscan-e1478275837518.jpg\" alt=\"blog 108 - 2 - stats after modif and after update fullscan\" width=\"800\" height=\"175\" \/><\/p>\n<p>Regarding this first output, we may notice that the modification counter from the<em>sys.dm_db_stats_properties<\/em> DMF did not drop to zero. To be honest I expected a value equal to 0 here. In addition, executing a Reporting query from each secondary did not have effect in this case. The reporting query is as follows and it is designed to use specifically the <em>idx_cl_big_TransactionHistoryTransactionDate<\/em> statistic.<\/p>\n<pre class=\"brush: sql; gutter: true; first-line: 1\">use AdventureWorks2012;\n\n\nselect count(*)\nfrom dbo.bigTransactionHistory\nwhere TransactionDate between '20060101' and '20080101';\ngo<\/pre>\n<p><span style=\"color: #000000; font-family: Calibri;\">Keep going and let\u2019s continue by inserting a new bunch of data (approximatively 10% more). After running a new update statistics operation with FULLSCAN from the primary (let\u2019s say we are again in the situation where a maintenance plan comes into play) here the corresponding statistic information output from each secondary:<\/span><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-12489\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/blog-108-3-stats-after-insert-data-and-after-update-fullscan-e1478275929417.jpg\" alt=\"blog 108 - 3 - stats after insert data and after update fullscan\" width=\"800\" height=\"175\" \/><\/p>\n<p>As expected, the modification of the rows counter value increased up to 24% but once again we may only notice that running update statistics with FULLSCAN on the primary doesn\u2019t reset correctly the modification rows counter on the secondary regardless the SQL Server version. Let\u2019s run the Reporting query from each secondary and let\u2019s have a look at the statistic information output<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-12490\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/blog-108-4-stats-after-insert-data-and-after-update-fullscan-and-read-data-from-secondary-e1478275984999.jpg\" alt=\"blog 108 - 4 - stats after insert data and after update fullscan and read data from secondary\" width=\"800\" height=\"194\" \/><\/p>\n<p>Well, it seems that some update statistics stuff came into play but surprisingly we get different results between versions. Let\u2019s focus first on SQL Server 2012 (first line) where an auto update statistics operation was triggered by SQL Server. Thus the <em>last_updated<\/em> column value was updated, the concerned statistic is now defined as temporary on the concerned secondary replica and the rows sampled value is different from the previous step (423928 vs 45774517). This is because SQL Server used a default sampling algorithm in this case which does not correspond to that using in the previous step with FULLSCAN method.<\/p>\n<p>Then if we move quickly to the last two lines (respectively SQL Server 2014 and 2016), we may notice only one change that concerns the <em>is_temporary<\/em> column and no changes concerning either the last update statistic date, the modification counter value or sampled rows. At this point, I\u2019m not sure to understand the reason. Is it a metadata issue? Is it a normal behavior? Well, I will go back there to update this section if I get further information.<\/p>\n<p><span style=\"color: #000000; font-family: Calibri;\">Let\u2019s continue by performing the same previous tasks (insert a bunch of data and then update statistics with FULLSCAN from the primary). The statistic output from each secondary is as follows:<\/span><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-12494\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/blog-108-7-stats-after-update-fullscan-and-2-insert-e1478276099150.jpg\" alt=\"blog 108 - 7 - stats after update fullscan and 2 insert\" width=\"800\" height=\"176\" \/><\/p>\n<p>I&#8217;m sure you are beginning to understand what\u2019s happening here. The update statistic with FULLSCAN from the primary replica seems to never reset the modification counter on each secondary. This is a big problem here because if we execute the Reporting query on each secondary we have now good chance to invalidate quickly what has been done by the update statistics operation with FULLSCAN from the primary. In our context, the main concern is the sampled rows value that can lead to inaccurate cardinality estimations. Let\u2019s run again the Reporting query from each secondary and let\u2019s have a look at the corresponding statistics information output<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-12495\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/blog-108-8-stats-after-update-fullscan-and-2-insert-and-read-data-from-secondary-e1478276150870.jpg\" alt=\"blog 108 - 8 - stats after update fullscan and 2 insert and read data from secondary\" width=\"800\" height=\"176\" \/><\/p>\n<p>Got it! This time, each concerned statistic switched to temporary and the modification counter was reset to 0. Note also that a default sampling was used in this case in contrast to previous picture that concerned update statistic with FULLSCAN. And if I continue ever and ever in this way I will face every time the same behavior for all versions of SQL Server since 2012.<\/p>\n<p>Let\u2019s summarize the situation: in common scenarios, we would probably not pay attention to this specific issue because cardinality estimation will not be affected and statistics concerned by Reporting queries on the secondaries are fewer in order of magnitude. But my friend encountered a specific scenario with large tables where the issue is magnified.<\/p>\n<p>As workaround, you may consider to exclude the concerned statistic(s) from the auto update statistics algorithm (NORECOMPUTE option). You may also vote for the following <a href=\"https:\/\/connect.microsoft.com\/SQLServer\/feedback\/details\/3109781\" target=\"_blank\" rel=\"noopener noreferrer\">connect item<\/a>\u00a0opened by my friend if it makes sense for you!<\/p>\n<p><strong>Update 22.02.2018 <\/strong>(thanks Balmukund):\u00a0Issue is fixed (cf. <a href=\"https:\/\/support.microsoft.com\/en-us\/help\/4013236\" target=\"_blank\" rel=\"noopener noreferrer\">KB4013236<\/a>)<\/p>\n<p><span style=\"color: #000000; font-family: Calibri;\">Hope it helps! <\/span><\/p>\n<p>By David Barbarin<\/p>\n","protected":false},"excerpt":{"rendered":"<p>I would like to share with you an interesting issue you may face while using SQL Server AlwaysOn availability groups and secondary read-only replicas. For those who use secondary read-only replicas as reporting servers, keep reading this blog post because it is about update statistics behavior on the secondary replicas and as you may know [&hellip;]<\/p>\n","protected":false},"author":26,"featured_media":9227,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[229],"tags":[297,84,67,975,51,54,52,566,255],"type_dbi":[],"class_list":["post-9219","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-database-administration-monitoring","tag-availability-groups","tag-high-availability","tag-performance","tag-read-only-replicas","tag-sql-server","tag-sql-server-2012","tag-sql-server-2014","tag-sql-server-2016","tag-statistics"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v27.2 (Yoast SEO v27.2) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>SQL Server AlwaysOn availability groups and statistic issues on secondaries<\/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-alwayson-availability-groups-and-statistic-issues-on-secondaries\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"SQL Server AlwaysOn availability groups and statistic issues on secondaries\" \/>\n<meta property=\"og:description\" content=\"I would like to share with you an interesting issue you may face while using SQL Server AlwaysOn availability groups and secondary read-only replicas. For those who use secondary read-only replicas as reporting servers, keep reading this blog post because it is about update statistics behavior on the secondary replicas and as you may know [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.dbi-services.com\/blog\/sql-server-alwayson-availability-groups-and-statistic-issues-on-secondaries\/\" \/>\n<meta property=\"og:site_name\" content=\"dbi Blog\" \/>\n<meta property=\"article:published_time\" content=\"2016-11-04T15:23:20+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2023-07-18T05:42:55+00:00\" \/>\n<meta property=\"og:image\" content=\"http:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/blog-108-0-demo-archi-e1478275699850-1.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"400\" \/>\n\t<meta property=\"og:image:height\" content=\"315\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\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=\"7 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-alwayson-availability-groups-and-statistic-issues-on-secondaries\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/sql-server-alwayson-availability-groups-and-statistic-issues-on-secondaries\/\"},\"author\":{\"name\":\"Microsoft Team\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/bfab48333280d616e1170e7369df90a4\"},\"headline\":\"SQL Server AlwaysOn availability groups and statistic issues on secondaries\",\"datePublished\":\"2016-11-04T15:23:20+00:00\",\"dateModified\":\"2023-07-18T05:42:55+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/sql-server-alwayson-availability-groups-and-statistic-issues-on-secondaries\/\"},\"wordCount\":1146,\"commentCount\":0,\"image\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/sql-server-alwayson-availability-groups-and-statistic-issues-on-secondaries\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/blog-108-0-demo-archi-e1478275699850-1.jpg\",\"keywords\":[\"Availability groups\",\"High availability\",\"Performance\",\"read-only replicas\",\"SQL Server\",\"SQL Server 2012\",\"SQL Server 2014\",\"SQL Server 2016\",\"Statistics\"],\"articleSection\":[\"Database Administration &amp; Monitoring\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.dbi-services.com\/blog\/sql-server-alwayson-availability-groups-and-statistic-issues-on-secondaries\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/sql-server-alwayson-availability-groups-and-statistic-issues-on-secondaries\/\",\"url\":\"https:\/\/www.dbi-services.com\/blog\/sql-server-alwayson-availability-groups-and-statistic-issues-on-secondaries\/\",\"name\":\"SQL Server AlwaysOn availability groups and statistic issues on secondaries\",\"isPartOf\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/sql-server-alwayson-availability-groups-and-statistic-issues-on-secondaries\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/sql-server-alwayson-availability-groups-and-statistic-issues-on-secondaries\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/blog-108-0-demo-archi-e1478275699850-1.jpg\",\"datePublished\":\"2016-11-04T15:23:20+00:00\",\"dateModified\":\"2023-07-18T05:42:55+00:00\",\"author\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/bfab48333280d616e1170e7369df90a4\"},\"breadcrumb\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/sql-server-alwayson-availability-groups-and-statistic-issues-on-secondaries\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.dbi-services.com\/blog\/sql-server-alwayson-availability-groups-and-statistic-issues-on-secondaries\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/sql-server-alwayson-availability-groups-and-statistic-issues-on-secondaries\/#primaryimage\",\"url\":\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/blog-108-0-demo-archi-e1478275699850-1.jpg\",\"contentUrl\":\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/blog-108-0-demo-archi-e1478275699850-1.jpg\",\"width\":400,\"height\":315},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/sql-server-alwayson-availability-groups-and-statistic-issues-on-secondaries\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Accueil\",\"item\":\"https:\/\/www.dbi-services.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"SQL Server AlwaysOn availability groups and statistic issues on secondaries\"}]},{\"@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 AlwaysOn availability groups and statistic issues on secondaries","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-alwayson-availability-groups-and-statistic-issues-on-secondaries\/","og_locale":"en_US","og_type":"article","og_title":"SQL Server AlwaysOn availability groups and statistic issues on secondaries","og_description":"I would like to share with you an interesting issue you may face while using SQL Server AlwaysOn availability groups and secondary read-only replicas. For those who use secondary read-only replicas as reporting servers, keep reading this blog post because it is about update statistics behavior on the secondary replicas and as you may know [&hellip;]","og_url":"https:\/\/www.dbi-services.com\/blog\/sql-server-alwayson-availability-groups-and-statistic-issues-on-secondaries\/","og_site_name":"dbi Blog","article_published_time":"2016-11-04T15:23:20+00:00","article_modified_time":"2023-07-18T05:42:55+00:00","og_image":[{"width":400,"height":315,"url":"http:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/blog-108-0-demo-archi-e1478275699850-1.jpg","type":"image\/jpeg"}],"author":"Microsoft Team","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Microsoft Team","Est. reading time":"7 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.dbi-services.com\/blog\/sql-server-alwayson-availability-groups-and-statistic-issues-on-secondaries\/#article","isPartOf":{"@id":"https:\/\/www.dbi-services.com\/blog\/sql-server-alwayson-availability-groups-and-statistic-issues-on-secondaries\/"},"author":{"name":"Microsoft Team","@id":"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/bfab48333280d616e1170e7369df90a4"},"headline":"SQL Server AlwaysOn availability groups and statistic issues on secondaries","datePublished":"2016-11-04T15:23:20+00:00","dateModified":"2023-07-18T05:42:55+00:00","mainEntityOfPage":{"@id":"https:\/\/www.dbi-services.com\/blog\/sql-server-alwayson-availability-groups-and-statistic-issues-on-secondaries\/"},"wordCount":1146,"commentCount":0,"image":{"@id":"https:\/\/www.dbi-services.com\/blog\/sql-server-alwayson-availability-groups-and-statistic-issues-on-secondaries\/#primaryimage"},"thumbnailUrl":"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/blog-108-0-demo-archi-e1478275699850-1.jpg","keywords":["Availability groups","High availability","Performance","read-only replicas","SQL Server","SQL Server 2012","SQL Server 2014","SQL Server 2016","Statistics"],"articleSection":["Database Administration &amp; Monitoring"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.dbi-services.com\/blog\/sql-server-alwayson-availability-groups-and-statistic-issues-on-secondaries\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.dbi-services.com\/blog\/sql-server-alwayson-availability-groups-and-statistic-issues-on-secondaries\/","url":"https:\/\/www.dbi-services.com\/blog\/sql-server-alwayson-availability-groups-and-statistic-issues-on-secondaries\/","name":"SQL Server AlwaysOn availability groups and statistic issues on secondaries","isPartOf":{"@id":"https:\/\/www.dbi-services.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.dbi-services.com\/blog\/sql-server-alwayson-availability-groups-and-statistic-issues-on-secondaries\/#primaryimage"},"image":{"@id":"https:\/\/www.dbi-services.com\/blog\/sql-server-alwayson-availability-groups-and-statistic-issues-on-secondaries\/#primaryimage"},"thumbnailUrl":"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/blog-108-0-demo-archi-e1478275699850-1.jpg","datePublished":"2016-11-04T15:23:20+00:00","dateModified":"2023-07-18T05:42:55+00:00","author":{"@id":"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/bfab48333280d616e1170e7369df90a4"},"breadcrumb":{"@id":"https:\/\/www.dbi-services.com\/blog\/sql-server-alwayson-availability-groups-and-statistic-issues-on-secondaries\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.dbi-services.com\/blog\/sql-server-alwayson-availability-groups-and-statistic-issues-on-secondaries\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.dbi-services.com\/blog\/sql-server-alwayson-availability-groups-and-statistic-issues-on-secondaries\/#primaryimage","url":"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/blog-108-0-demo-archi-e1478275699850-1.jpg","contentUrl":"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/blog-108-0-demo-archi-e1478275699850-1.jpg","width":400,"height":315},{"@type":"BreadcrumbList","@id":"https:\/\/www.dbi-services.com\/blog\/sql-server-alwayson-availability-groups-and-statistic-issues-on-secondaries\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Accueil","item":"https:\/\/www.dbi-services.com\/blog\/"},{"@type":"ListItem","position":2,"name":"SQL Server AlwaysOn availability groups and statistic issues on secondaries"}]},{"@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\/9219","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=9219"}],"version-history":[{"count":1,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/posts\/9219\/revisions"}],"predecessor-version":[{"id":26806,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/posts\/9219\/revisions\/26806"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/media\/9227"}],"wp:attachment":[{"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/media?parent=9219"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/categories?post=9219"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/tags?post=9219"},{"taxonomy":"type","embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/type_dbi?post=9219"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}