{"id":8376,"date":"2020-03-31T14:25:00","date_gmt":"2020-03-31T21:25:00","guid":{"rendered":"https:\/\/www.couchbase.com\/blog\/?p=8376"},"modified":"2025-06-13T17:21:46","modified_gmt":"2025-06-14T00:21:46","slug":"index-advisor-service-for-n1ql-march-refresh","status":"publish","type":"post","link":"https:\/\/www.couchbase.com\/blog\/pt\/index-advisor-service-for-n1ql-march-refresh\/","title":{"rendered":"Servi\u00e7o de consultoria de \u00edndices para N1QL (atualiza\u00e7\u00e3o de mar\u00e7o)"},"content":{"rendered":"<p>Esta \u00e9 a nossa entrega de mar\u00e7o para <a href=\"https:\/\/index-advisor.couchbase.com\/\">Servi\u00e7o de consultor de \u00edndices<\/a> para o N1QL depois de corrigir alguns bugs encontrados ap\u00f3s nossa \u00faltima atualiza\u00e7\u00e3o em fevereiro. Planejamos continuar melhorando o servi\u00e7o Index Advisor (<a href=\"https:\/\/www.couchbase.com\/blog\/pt\/index-advisor-service\/\">O que \u00e9 isso?<\/a>). As corre\u00e7\u00f5es no Index Advisor que voc\u00ea normalmente veria na pr\u00f3xima vers\u00e3o de manuten\u00e7\u00e3o agora estar\u00e3o dispon\u00edveis para voc\u00ea todos os meses.<\/p>\n<h4>Para quem ele serve? e Quando voc\u00ea deve us\u00e1-lo?<\/h4>\n<p><a href=\"https:\/\/index-advisor.couchbase.com\/\">https:\/\/index-advisor.couchbase.com\/<\/a><\/p>\n<p>Ao custo de me repetir,<\/p>\n<p>Esse servi\u00e7o fornecer\u00e1 recomenda\u00e7\u00f5es de \u00edndices para ajudar DBAs, desenvolvedores e arquitetos a otimizar o desempenho das consultas e atender aos SLAs.<\/p>\n<p>Esse servi\u00e7o ser\u00e1 \u00fatil se voc\u00ea:<\/p>\n<ol>\n<li>Deseja evitar a leitura do <a href=\"https:\/\/docs.couchbase.com\/server\/current\/n1ql\/n1ql-language-reference\/createindex.html\">cria\u00e7\u00e3o de \u00edndices<\/a>\u00a0<a href=\"https:\/\/www.couchbase.com\/blog\/pt\/create-right-index-get-right-performance\/\">regras<\/a>Compreend\u00ea-los e implement\u00e1-los para encontrar os \u00edndices apropriados para sua consulta\/consultas\/carga de trabalho.<\/li>\n<li>\u00a0Ainda n\u00e3o deseja fazer o download do servidor Couchbase 6.5 mais recente.<\/li>\n<li>\u00a0Est\u00e1 usando um\u00a0<strong>vers\u00e3o mais antiga do Couchbase (vers\u00e3o 5.5, 6.0)<\/strong>\u00a0e precisa de ajuda para criar os \u00edndices certos para suas consultas.<\/li>\n<li>Deseja gerar conselhos para \u00edndices\u00a0<strong>sem criar um bucket<\/strong> ou fazer upload do esquema ou dos dados.<\/li>\n<\/ol>\n<h4>O que h\u00e1 de novo?<\/h4>\n<p>Mesmo que voc\u00ea tenha feito o download do servidor Couchbase Server 6.5 e possa usar o Index Advisor do Query Workbench, esse Index Advisor \u00e9 uma vers\u00e3o mais recente (sem uma interface de usu\u00e1rio de \u00f3tima apar\u00eancia), mas com os seguintes defeitos corrigidos.<\/p>\n<p><span style=\"color: #00ccff\">1.<\/span><span class=\"s1\" style=\"color: #00ccff\">Index Advisor para suportar TTL (meta().expiration &amp; meta.cas)<\/span><\/p>\n<p>Com esse aprimoramento, uma consulta como<\/p>\n<pre class=\"lang:default decode:true\">ADVISE SELECT META().id, META().expiration\r\nFROM `travel-sample`\r\nWHERE META().expiration = 0\r\nORDER BY META().id\r\nLIMIT 2;<\/pre>\n<p>que costumava dar<\/p>\n<pre class=\"lang:default decode:true\"><span style=\"color: #ff0000\">{\r\n  \"results\": [\r\n    {\r\n      \"#operator\": \"Advise\",\r\n      \"advice\": {\r\n        \"#operator\": \"IndexAdvice\",\r\n        \"adviseinfo\": {\r\n          \"recommended_indexes\": \"No index recommendation at this time: no keyspace found.\"\r\n        }\r\n      },\r\n      \"query\": \"SELECT name, META().id\\nFROM `travel-sample`\\nWHERE META().id &gt; \\\"g\\\"\\nLIMIT 2;\"\r\n    }\r\n  ]\r\n}<\/span><\/pre>\n<p>agora d\u00e1<\/p>\n<pre class=\"lang:default decode:true\"><span style=\"color: #339966\">{\r\n  \"results\": [\r\n    {\r\n      \"#operator\": \"Advise\",\r\n      \"advice\": {\r\n        \"#operator\": \"IndexAdvice\",\r\n        \"adviseinfo\": {\r\n          \"recommended_indexes\": {\r\n            \"covering_indexes\": [\r\n              {\r\n                \"index_statement\": \"CREATE INDEX adv_meta_self_expiration ON `travel-sample`(meta(self).`expiration`)\",\r\n                \"keyspace_alias\": \"travel-sample\"\r\n              }\r\n            ],\r\n            \"indexes\": [\r\n              {\r\n                \"index_statement\": \"CREATE INDEX adv_meta_self_expiration ON `travel-sample`(meta(self).`expiration`)\",\r\n                \"keyspace_alias\": \"travel-sample\",\r\n                \"recommending_rule\": \"Index keys follow order of predicate types: 2. equality\/null\/missing.\"\r\n              }\r\n            ]\r\n          }\r\n        }\r\n      },\r\n      \"query\": \"SELECT META().id, META().expiration\\nFROM `travel-sample`\\nWHERE META().expiration = 0\\nORDER BY META().id\\nLIMIT 2;\"\r\n    }\r\n<\/span>  <span style=\"color: #339966\">]\r\n}<\/span><\/pre>\n<p>ou<\/p>\n<pre class=\"lang:default decode:true\">ADVISE SELECT name, META().cas\r\nFROM `travel-sample`\r\nWHERE type=\"hotel\"\r\nORDER BY META().cas DESC\r\nLIMIT 2;<\/pre>\n<p>que costumava dar:<\/p>\n<pre class=\"lang:default decode:true\"><span style=\"color: #ff0000\">{\r\n  \"results\": [\r\n    {\r\n      \"#operator\": \"Advise\",\r\n      \"advice\": {\r\n        \"#operator\": \"IndexAdvice\",\r\n        \"adviseinfo\": {\r\n          \"recommended_indexes\": {\r\n            \"indexes\": [\r\n              {\r\n                \"index_statement\": \"CREATE INDEX adv_type ON `travel-sample`(`type`)\",\r\n                \"keyspace_alias\": \"travel-sample\",\r\n                \"recommending_rule\": \"Index keys follow order of predicate types: 2. equality\/null\/missing.\"\r\n              }\r\n            ]\r\n          }\r\n        }\r\n      },\r\n      \"query\": \"SELECT name, META().cas FROM `travel-sample` WHERE type=\\\"hotel\\\" ORDER BY META().cas DESC LIMIT 2;\"\r\n    }\r\n  ]\r\n}<\/span><\/pre>\n<p>&nbsp;<\/p>\n<p>agora d\u00e1<\/p>\n<pre class=\"lang:default decode:true\"><span style=\"color: #339966\">{\r\n  \"results\": [\r\n    {\r\n      \"#operator\": \"Advise\",\r\n      \"advice\": {\r\n        \"#operator\": \"IndexAdvice\",\r\n        \"adviseinfo\": {\r\n          \"recommended_indexes\": {\r\n            \"covering_indexes\": [\r\n              {\r\n                \"index_property\": \"ORDER pushdown, LIMIT pushdown\",\r\n                \"index_statement\": \"CREATE INDEX adv_type_meta_self_casDESC_name ON `travel-sample`(`type`,meta(self).`cas` DESC,`name`)\",\r\n                \"keyspace_alias\": \"travel-sample\"\r\n              }\r\n            ],\r\n            \"indexes\": [\r\n              {\r\n                \"index_statement\": \"CREATE INDEX adv_type ON `travel-sample`(`type`)\",\r\n                \"keyspace_alias\": \"travel-sample\",\r\n                \"recommending_rule\": \"Index keys follow order of predicate types: 2. equality\/null\/missing.\"\r\n              }\r\n            ]\r\n          }\r\n        }\r\n      },\r\n      \"query\": \"SELECT name, META().cas\\nFROM `travel-sample`\\nWHERE type=\\\"hotel\\\"\\nORDER BY META().cas DESC\\nLIMIT 2;\"\r\n    }\r\n  ]\r\n}<\/span><\/pre>\n<p>&nbsp;<\/p>\n<p><span style=\"color: #00ccff\">2. Aconselhar o ajuste da ordem das chaves de \u00edndice para predicados funcionais e de matriz<\/span><\/p>\n<p>Esse defeito alterou ligeiramente as regras que t\u00ednhamos antes:<\/p>\n<ol>\n<li>Excluir a regra das chaves de \u00edndice funcional.<\/li>\n<li>Add rule &#8220;like&#8221; in the same position for scenario &#8221; a like &#8220;%adv%&#8221;.This rule is applicable only when the pattern is of the type &#8220;%x&#8221;.If it is of the type &#8220;x%&#8221; the rule does not apply.<\/li>\n<li>As chaves de \u00edndice dos predicados funcionais seguem a ordem de EQ\/in\/LE\/LT<\/li>\n<\/ol>\n<p>Uma consulta como:<\/p>\n<pre class=\"lang:default decode:true\">advise select * from  shellTest where length(a21) &lt;= 3 and c21 = 3 and c22 &gt; 30<\/pre>\n<p>usado para dar<\/p>\n<pre class=\"lang:default decode:true\"><span style=\"color: #ff0000\">\"results\": [\r\n      {\r\n        \"#operator\": \"Advise\",\r\n        \"advice\": {\r\n          \"#operator\": \"IndexAdvice\",\r\n          \"adviseinfo\": {\r\n            \"recommended_indexes\": {\r\n              \"indexes\": [\r\n                {\r\n                  \"index_statement\": \"CREATE INDEX adv_c21_c22_length_a21 ON `shellTest`(`c21`,`c22`,length((`a21`)))\",\r\n                  \"keyspace_alias\": \"shellTest\",\r\n                  \"recommending_rule\": \"Index keys follow order of predicate types: 2. equality\/null\/missing, 5. less than\/between\/greater than, 9. function index.\"\r\n                }\r\n              ]\r\n            }\r\n          }\r\n        },\r\n        \"query\": \"update shellTest set type=\\\"left\\\" where length(a21) &lt; 3 and c21 = 3 and c22 &gt; 30<\/span><\/pre>\n<p>agora d\u00e1<\/p>\n<pre class=\"lang:default decode:true\"><span style=\"color: #339966\">{ \r\n\"results\": [\r\n      {\r\n        \"#operator\": \"Advise\",\r\n        \"advice\": {\r\n          \"#operator\": \"IndexAdvice\",\r\n          \"adviseinfo\": {\r\n            \"recommended_indexes\": {\r\n              \"indexes\": [\r\n                {\r\n                  \"index_statement\": \"CREATE INDEX adv_c21_length_a21_c22 ON `shellTest`(`c21`,length((`a21`)),`c22`)\",\r\n                  \"keyspace_alias\": \"shellTest\",\r\n                  \"recommending_rule\": \"Index keys follow order of predicate types: 2. equality\/null\/missing, 4. not less than\/between\/not greater than, 5. less than\/between\/greater than.\"\r\n                }\r\n              ]\r\n            }<\/span>\r\n          <span style=\"color: #339966\">}\r\n        },\r\n        \"query\": \"update shellTest set type=\\\"left\\\" where length(a21) &lt;= 3 and c21 = 3 and c22 &gt; 30\"\r\n      }\r\n    ]\r\n  }\r\n]<\/span><\/pre>\n<p><span style=\"color: #00ccff\">3. Ajuste a ordem das chaves de \u00edndice do array em sua condi\u00e7\u00e3o SATISFIES<\/span><\/p>\n<ol>\n<li>Coloque os predicados da matriz na ordem da condi\u00e7\u00e3o SATISFIES.<\/li>\n<li>Para disjun\u00e7\u00e3o em SATISFIES: obtenha os termos comuns -&gt; escolha o de menor prioridade -&gt; (EQ&lt;IN&lt;LE&lt;LT&lt;IS NOT NULL&lt; LIKE)<\/li>\n<li>Para a conjun\u00e7\u00e3o em SATISFIES: escolha o de menor prioridade.<\/li>\n<\/ol>\n<p>As novas regras ap\u00f3s o fix#2 e o #3:<\/p>\n<p>1: \u00edndice de matriz principal para unnest,<br \/>\n2: igualdade\/nulo\/falta,<br \/>\n3: em,<br \/>\n4: n\u00e3o menor que\/entre\/n\u00e3o maior que,<br \/>\n5: menor que\/maior que,<br \/>\n6: filtro de jun\u00e7\u00e3o derivado como chave principal,<br \/>\n7: n\u00e3o nulo\/n\u00e3o ausente\/valorizado,<br \/>\n8: como,<br \/>\n9: predicado de uni\u00e3o n\u00e3o est\u00e1tico,<br \/>\n10:flavor para \u00edndice parcial,<\/p>\n<pre class=\"lang:default decode:true\">advise SELECT META(p).id, ARRAY_DISTINCT(IFMISSING(rooms[*].num,[])) \r\nFROM shellTest AS p \r\nWHERE (guestCode = IFNULL($guestCode, '') OR guestCode = '') \r\nAND checkinTime BETWEEN $startTime AND $endTime<\/pre>\n<p>usado para dar<\/p>\n<pre class=\"lang:default decode:true\"><span style=\"color: #ff0000\">\"results\": [\r\n      {\r\n        \"#operator\": \"Advise\",\r\n        \"advice\": {\r\n          \"#operator\": \"IndexAdvice\",\r\n          \"adviseinfo\": {\r\n            \"recommended_indexes\": {\r\n              \"covering_indexes\": [\r\n                {\r\n                  \"index_statement\": \"CREATE INDEX adv_guestCode_checkinTime_DISTINCT_rooms_level_size_num_array_di1747996179 ON `shellTest`(`guestCode`,`checkinTime`,DISTINCT ARRAY [`s`.`level`, `s`.`size`, `s`.`num`] FOR s in `rooms` END,array_distinct(ifmissing((array_star((`rooms`)).`num`), [])))\",\r\n                  \"keyspace_alias\": \"shellTest_p\"\r\n                }\r\n              ],\r\n              \"indexes\": [\r\n                {\r\n                  \"index_statement\": \"CREATE INDEX adv_guestCode_checkinTime_DISTINCT_rooms_level_size_num ON `shellTest`(`guestCode`,`checkinTime`,DISTINCT ARRAY [`s`.`level`, `s`.`size`, `s`.`num`] FOR s in `rooms` END)\",\r\n                  \"keyspace_alias\": \"shellTest_p\",\r\n                  \"recommending_rule\": \"Index keys follow order of predicate types: 1. Common leading key for disjunction (2. equality\/null\/missing, 4. not less than\/between\/not greater than, 6. array predicate).\"\r\n                }\r\n              ]\r\n            }\r\n          }\r\n        },\r\n        \"query\": \"SELECT META(p).id, ARRAY_DISTINCT(IFMISSING(rooms[*].num,[])) FROM shellTest AS p WHERE (guestCode = IFNULL($guestCode, '') OR guestCode = '') AND (checkinTime BETWEEN $startTime AND $endTime) AND (ANY s IN rooms SATISFIES [s.level,s.size, s.num] = [$level, $size, $num] END)\"\r\n<\/span><\/pre>\n<p><span style=\"color: #000000\">agora d\u00e1:<\/span><\/p>\n<pre class=\"lang:default decode:true\"><span style=\"color: #339966\">results\": [\r\n      {\r\n        \"#operator\": \"Advise\",\r\n        \"advice\": {\r\n          \"#operator\": \"IndexAdvice\",\r\n          \"adviseinfo\": {\r\n            \"recommended_indexes\": {\r\n              \"covering_indexes\": [\r\n                {\r\n                  \"index_statement\": \"CREATE INDEX adv_guestCode_checkinTime_array_distinct_ifmissing_array_star_rooms_num ON `shellTest`(`guestCode`,`checkinTime`,array_distinct(ifmissing((array_star((`rooms`)).`num`), [])))\",\r\n                  \"keyspace_alias\": \"shellTest_p\"\r\n                }\r\n              ],\r\n              \"indexes\": [\r\n                {\r\n                  \"index_statement\": \"CREATE INDEX adv_guestCode_checkinTime ON `shellTest`(`guestCode`,`checkinTime`)\",\r\n                  \"keyspace_alias\": \"shellTest_p\",\r\n                  \"recommending_rule\": \"Index keys follow order of predicate types: 1. Common leading key for disjunction (2. equality\/null\/missing, 4. not less than\/between\/not greater than).\"\r\n                }\r\n              ]\r\n            }\r\n          }\r\n        }<\/span><\/pre>\n<p>&nbsp;<\/p>\n<p>Experimente e, se tiver algum problema com os \u00edndices recomendados pelo Index Advisor Service, voc\u00ea pode adicion\u00e1-lo como um coment\u00e1rio a este blog<\/p>\n<h4>Mais informa\u00e7\u00f5es sobre o recurso Index Advisor:<\/h4>\n<p><a href=\"https:\/\/www.couchbase.com\/blog\/pt\/index-advisor-service\/\">https:\/\/www.couchbase.com\/blog\/index-advisor-service\/<\/a><\/p>\n<p><a href=\"https:\/\/www.couchbase.com\/blog\/pt\/index-advisor-service-for-couchbase-n1qlfeb-refresh\/\">https:\/\/www.couchbase.com\/blog\/index-advisor-service-for-couchbase-n1qlfeb-refresh\/<\/a><\/p>\n<p><a href=\"https:\/\/www.couchbase.com\/blog\/pt\/n1ql-index-advisor-improve-query-performance-and-productivity\/\">https:\/\/www.couchbase.com\/blog\/n1ql-index-advisor-improve-query-performance-and-productivity\/<\/a><\/p>\n<p><a href=\"https:\/\/www.couchbase.com\/blog\/pt\/index-advisor-for-query-workload\/\">https:\/\/www.couchbase.com\/blog\/index-advisor-for-query-workload\/<\/a><\/p>\n<p><a href=\"https:\/\/docs.couchbase.com\/server\/6.5\/n1ql\/n1ql-language-reference\/advise.html\">https:\/\/docs.couchbase.com\/server\/6.5\/n1ql\/n1ql-language-reference\/advise.html<\/a><\/p>\n<p><a href=\"https:\/\/docs.couchbase.com\/server\/6.5\/n1ql\/n1ql-language-reference\/advisor.html\">https:\/\/docs.couchbase.com\/server\/6.5\/n1ql\/n1ql-language-reference\/advisor.html<\/a><\/p>\n<p><a href=\"https:\/\/docs.couchbase.com\/server\/6.5\/tools\/query-workbench.html#index-advisor\">https:\/\/docs.couchbase.com\/server\/6.5\/tools\/query-workbench.html#index-advisor<\/a><\/p>\n<h4><\/h4>","protected":false},"excerpt":{"rendered":"<p>This is our March drop for Index Advisor service for N1QL after fixing some of the bugs that were found after our last refresh in Feb. We plan to keep improvising the Index Advisor service(What is it?). The fixes in [&hellip;]<\/p>","protected":false},"author":50908,"featured_media":2560,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"inline_featured_image":false,"footnotes":""},"categories":[2225,1816,2453,1812],"tags":[2439,2440,2445,2444],"ppma_author":[9099],"class_list":["post-8376","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-cloud","category-couchbase-server","category-global-secondary-index","category-n1ql-query","tag-index-advisor","tag-indexes","tag-query-optimization","tag-secondary-indexes"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v25.8 (Yoast SEO v25.8) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Index Advisor Service for N1QL (March refresh) - The Couchbase 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.couchbase.com\/blog\/pt\/index-advisor-service-for-n1ql-march-refresh\/\" \/>\n<meta property=\"og:locale\" content=\"pt_BR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Index Advisor Service for N1QL (March refresh)\" \/>\n<meta property=\"og:description\" content=\"This is our March drop for Index Advisor service for N1QL after fixing some of the bugs that were found after our last refresh in Feb. We plan to keep improvising the Index Advisor service(What is it?). The fixes in [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.couchbase.com\/blog\/pt\/index-advisor-service-for-n1ql-march-refresh\/\" \/>\n<meta property=\"og:site_name\" content=\"The Couchbase Blog\" \/>\n<meta property=\"article:published_time\" content=\"2020-03-31T21:25:00+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-06-14T00:21:46+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2017\/02\/n1ql.png\" \/>\n\t<meta property=\"og:image:width\" content=\"512\" \/>\n\t<meta property=\"og:image:height\" content=\"512\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Kamini Jagtiani\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Kamini Jagtiani\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"2 minutos\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/index-advisor-service-for-n1ql-march-refresh\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/index-advisor-service-for-n1ql-march-refresh\/\"},\"author\":{\"name\":\"Kamini Jagtiani\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/f99c5767a877147f9cf658230bc2473b\"},\"headline\":\"Index Advisor Service for N1QL (March refresh)\",\"datePublished\":\"2020-03-31T21:25:00+00:00\",\"dateModified\":\"2025-06-14T00:21:46+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/index-advisor-service-for-n1ql-march-refresh\/\"},\"wordCount\":538,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/index-advisor-service-for-n1ql-march-refresh\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2017\/02\/n1ql.png\",\"keywords\":[\"Index Advisor\",\"Indexes\",\"Query optimization\",\"Secondary indexes\"],\"articleSection\":[\"Couchbase Capella\",\"Couchbase Server\",\"Global Secondary Index\",\"SQL++ \/ N1QL Query\"],\"inLanguage\":\"pt-BR\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.couchbase.com\/blog\/index-advisor-service-for-n1ql-march-refresh\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/index-advisor-service-for-n1ql-march-refresh\/\",\"url\":\"https:\/\/www.couchbase.com\/blog\/index-advisor-service-for-n1ql-march-refresh\/\",\"name\":\"Index Advisor Service for N1QL (March refresh) - The Couchbase Blog\",\"isPartOf\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/index-advisor-service-for-n1ql-march-refresh\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/index-advisor-service-for-n1ql-march-refresh\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2017\/02\/n1ql.png\",\"datePublished\":\"2020-03-31T21:25:00+00:00\",\"dateModified\":\"2025-06-14T00:21:46+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/index-advisor-service-for-n1ql-march-refresh\/#breadcrumb\"},\"inLanguage\":\"pt-BR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.couchbase.com\/blog\/index-advisor-service-for-n1ql-march-refresh\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-BR\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/index-advisor-service-for-n1ql-march-refresh\/#primaryimage\",\"url\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2017\/02\/n1ql.png\",\"contentUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2017\/02\/n1ql.png\",\"width\":512,\"height\":512,\"caption\":\"N1QL\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/index-advisor-service-for-n1ql-march-refresh\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.couchbase.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Index Advisor Service for N1QL (March refresh)\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#website\",\"url\":\"https:\/\/www.couchbase.com\/blog\/\",\"name\":\"The Couchbase Blog\",\"description\":\"Couchbase, the NoSQL Database\",\"publisher\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.couchbase.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"pt-BR\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#organization\",\"name\":\"The Couchbase Blog\",\"url\":\"https:\/\/www.couchbase.com\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-BR\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2023\/04\/admin-logo.png\",\"contentUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2023\/04\/admin-logo.png\",\"width\":218,\"height\":34,\"caption\":\"The Couchbase Blog\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/logo\/image\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/f99c5767a877147f9cf658230bc2473b\",\"name\":\"Kamini Jagtiani\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-BR\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/image\/257695296726c224fc7f0e85b30c9129\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/546f9f69203064f77430f14922d59be33e3f0ea674078a793fc813dd40310c5c?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/546f9f69203064f77430f14922d59be33e3f0ea674078a793fc813dd40310c5c?s=96&d=mm&r=g\",\"caption\":\"Kamini Jagtiani\"},\"description\":\"Kamini Jagtiani is a Senior Engineering Manager for the Query Team at Couchbase R&amp;D. Before Couchbase, Kamini was 7 years at Futurewei as Kernel Architect\/Manager and 13 years at IBM Informix as Software Engineer. Kamini has a Bachelors's degree in Computer Science and Engineering from Bombay University, India and holds 5 US patents.\",\"url\":\"https:\/\/www.couchbase.com\/blog\/pt\/author\/kaminijagtiani\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Index Advisor Service for N1QL (March refresh) - The Couchbase 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.couchbase.com\/blog\/pt\/index-advisor-service-for-n1ql-march-refresh\/","og_locale":"pt_BR","og_type":"article","og_title":"Index Advisor Service for N1QL (March refresh)","og_description":"This is our March drop for Index Advisor service for N1QL after fixing some of the bugs that were found after our last refresh in Feb. We plan to keep improvising the Index Advisor service(What is it?). The fixes in [&hellip;]","og_url":"https:\/\/www.couchbase.com\/blog\/pt\/index-advisor-service-for-n1ql-march-refresh\/","og_site_name":"The Couchbase Blog","article_published_time":"2020-03-31T21:25:00+00:00","article_modified_time":"2025-06-14T00:21:46+00:00","og_image":[{"width":512,"height":512,"url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2017\/02\/n1ql.png","type":"image\/png"}],"author":"Kamini Jagtiani","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Kamini Jagtiani","Est. reading time":"2 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.couchbase.com\/blog\/index-advisor-service-for-n1ql-march-refresh\/#article","isPartOf":{"@id":"https:\/\/www.couchbase.com\/blog\/index-advisor-service-for-n1ql-march-refresh\/"},"author":{"name":"Kamini Jagtiani","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/f99c5767a877147f9cf658230bc2473b"},"headline":"Index Advisor Service for N1QL (March refresh)","datePublished":"2020-03-31T21:25:00+00:00","dateModified":"2025-06-14T00:21:46+00:00","mainEntityOfPage":{"@id":"https:\/\/www.couchbase.com\/blog\/index-advisor-service-for-n1ql-march-refresh\/"},"wordCount":538,"commentCount":0,"publisher":{"@id":"https:\/\/www.couchbase.com\/blog\/#organization"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/index-advisor-service-for-n1ql-march-refresh\/#primaryimage"},"thumbnailUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2017\/02\/n1ql.png","keywords":["Index Advisor","Indexes","Query optimization","Secondary indexes"],"articleSection":["Couchbase Capella","Couchbase Server","Global Secondary Index","SQL++ \/ N1QL Query"],"inLanguage":"pt-BR","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.couchbase.com\/blog\/index-advisor-service-for-n1ql-march-refresh\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.couchbase.com\/blog\/index-advisor-service-for-n1ql-march-refresh\/","url":"https:\/\/www.couchbase.com\/blog\/index-advisor-service-for-n1ql-march-refresh\/","name":"Index Advisor Service for N1QL (March refresh) - The Couchbase Blog","isPartOf":{"@id":"https:\/\/www.couchbase.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.couchbase.com\/blog\/index-advisor-service-for-n1ql-march-refresh\/#primaryimage"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/index-advisor-service-for-n1ql-march-refresh\/#primaryimage"},"thumbnailUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2017\/02\/n1ql.png","datePublished":"2020-03-31T21:25:00+00:00","dateModified":"2025-06-14T00:21:46+00:00","breadcrumb":{"@id":"https:\/\/www.couchbase.com\/blog\/index-advisor-service-for-n1ql-march-refresh\/#breadcrumb"},"inLanguage":"pt-BR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.couchbase.com\/blog\/index-advisor-service-for-n1ql-march-refresh\/"]}]},{"@type":"ImageObject","inLanguage":"pt-BR","@id":"https:\/\/www.couchbase.com\/blog\/index-advisor-service-for-n1ql-march-refresh\/#primaryimage","url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2017\/02\/n1ql.png","contentUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2017\/02\/n1ql.png","width":512,"height":512,"caption":"N1QL"},{"@type":"BreadcrumbList","@id":"https:\/\/www.couchbase.com\/blog\/index-advisor-service-for-n1ql-march-refresh\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.couchbase.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Index Advisor Service for N1QL (March refresh)"}]},{"@type":"WebSite","@id":"https:\/\/www.couchbase.com\/blog\/#website","url":"https:\/\/www.couchbase.com\/blog\/","name":"Blog do Couchbase","description":"Couchbase, o banco de dados NoSQL","publisher":{"@id":"https:\/\/www.couchbase.com\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.couchbase.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"pt-BR"},{"@type":"Organization","@id":"https:\/\/www.couchbase.com\/blog\/#organization","name":"Blog do Couchbase","url":"https:\/\/www.couchbase.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"pt-BR","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2023\/04\/admin-logo.png","contentUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2023\/04\/admin-logo.png","width":218,"height":34,"caption":"The Couchbase Blog"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/f99c5767a877147f9cf658230bc2473b","name":"Kamini Jagtiani","image":{"@type":"ImageObject","inLanguage":"pt-BR","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/image\/257695296726c224fc7f0e85b30c9129","url":"https:\/\/secure.gravatar.com\/avatar\/546f9f69203064f77430f14922d59be33e3f0ea674078a793fc813dd40310c5c?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/546f9f69203064f77430f14922d59be33e3f0ea674078a793fc813dd40310c5c?s=96&d=mm&r=g","caption":"Kamini Jagtiani"},"description":"Kamini Jagtiani \u00e9 gerente s\u00eanior de engenharia da equipe de consultas da Couchbase R&amp;D. Antes da Couchbase, Kamini trabalhou 7 anos na Futurewei como arquiteto\/gerente de kernel e 13 anos na IBM Informix como engenheiro de software. Kamini \u00e9 bacharel em Ci\u00eancia da Computa\u00e7\u00e3o e Engenharia pela Universidade de Bombay, na \u00cdndia, e possui 5 patentes nos EUA.","url":"https:\/\/www.couchbase.com\/blog\/pt\/author\/kaminijagtiani\/"}]}},"authors":[{"term_id":9099,"user_id":50908,"is_guest":0,"slug":"kaminijagtiani","display_name":"Kamini Jagtiani","avatar_url":"https:\/\/secure.gravatar.com\/avatar\/546f9f69203064f77430f14922d59be33e3f0ea674078a793fc813dd40310c5c?s=96&d=mm&r=g","author_category":"","last_name":"Jagtiani","first_name":"Kamini","job_title":"","user_url":"","description":"Kamini Jagtiani \u00e9 gerente s\u00eanior de engenharia da equipe de consultas da Couchbase R&amp;D. Antes da Couchbase, Kamini trabalhou 7 anos na Futurewei como arquiteto\/gerente de kernel e 13 anos na IBM Informix como engenheiro de software. Kamini \u00e9 bacharel em Ci\u00eancia da Computa\u00e7\u00e3o e Engenharia pela Universidade de Bombay, na \u00cdndia, e possui 5 patentes nos EUA."}],"_links":{"self":[{"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/posts\/8376","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/users\/50908"}],"replies":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/comments?post=8376"}],"version-history":[{"count":0,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/posts\/8376\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/media\/2560"}],"wp:attachment":[{"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/media?parent=8376"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/categories?post=8376"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/tags?post=8376"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/ppma_author?post=8376"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}