{"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\/es\/index-advisor-service-for-n1ql-march-refresh\/","title":{"rendered":"Servicio de Asesor de \u00cdndices para N1QL (actualizaci\u00f3n de marzo)"},"content":{"rendered":"<p>Esta es nuestra entrega de marzo para <a href=\"https:\/\/index-advisor.couchbase.com\/\">Servicio Index Advisor<\/a> para N1QL despu\u00e9s de solucionar algunos de los errores que se encontraron tras nuestra \u00faltima actualizaci\u00f3n en febrero. Tenemos previsto seguir improvisando el servicio Index Advisor(<a href=\"https:\/\/www.couchbase.com\/blog\/es\/index-advisor-service\/\">\u00bfDe qu\u00e9 se trata?<\/a>). Las correcciones en Index Advisor que normalmente ver\u00eda en la pr\u00f3xima versi\u00f3n de mantenimiento ahora estar\u00e1n disponibles para usted cada mes.<\/p>\n<h4>\u00bfPara qui\u00e9n es? y \u00bfCu\u00e1ndo utilizarlo?<\/h4>\n<p><a href=\"https:\/\/index-advisor.couchbase.com\/\">https:\/\/index-advisor.couchbase.com\/<\/a><\/p>\n<p>A costa de repetirme,<\/p>\n<p>Este servicio proporcionar\u00e1 recomendaciones sobre \u00edndices para ayudar a los administradores de bases de datos, desarrolladores y arquitectos a optimizar el rendimiento de las consultas y cumplir los acuerdos de nivel de servicio.<\/p>\n<p>Este servicio le resultar\u00e1 \u00fatil si<\/p>\n<ol>\n<li>Quiere evitar leer el <a href=\"https:\/\/docs.couchbase.com\/server\/current\/n1ql\/n1ql-language-reference\/createindex.html\">creaci\u00f3n de \u00edndices<\/a>\u00a0<a href=\"https:\/\/www.couchbase.com\/blog\/es\/create-right-index-get-right-performance\/\">normas<\/a>Compr\u00e9ndalos y apl\u00edquelos para encontrar los \u00edndices adecuados para su consulta\/consultas\/carga de trabajo.<\/li>\n<li>\u00a0A\u00fan no desea descargar la \u00faltima versi\u00f3n del servidor Couchbase 6.5.<\/li>\n<li>\u00a0\u00bfEst\u00e1 utilizando un\u00a0<strong>versi\u00f3n anterior de Couchbase (versi\u00f3n 5.5,6.0)<\/strong>\u00a0y necesitas ayuda para crear los \u00edndices adecuados para tus consultas.<\/li>\n<li>Desea generar consejos para los \u00edndices\u00a0<strong>sin crear un cubo<\/strong> o cargar el esquema o los datos.<\/li>\n<\/ol>\n<h4>\u00bfQu\u00e9 hay de nuevo?<\/h4>\n<p>Incluso si usted tiene el servidor Couchbase Server 6.5 descargado y puede utilizar Index Advisor desde Query Workbench, este Index Advisor es una versi\u00f3n m\u00e1s reciente (sin un gran aspecto de interfaz de usuario), pero con los siguientes defectos corregidos.<\/p>\n<p><span style=\"color: #00ccff\">1.<\/span><span class=\"s1\" style=\"color: #00ccff\">Index Advisor para soportar TTL (meta().expiration &amp; meta.cas)<\/span><\/p>\n<p>Con esta mejora, una 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 sol\u00eda 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>ahora da<\/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>o<\/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 sol\u00eda 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>ahora da<\/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. Aconsejamos ajustar el orden de las claves de \u00edndice para los predicados funcionales y de matriz<\/span><\/p>\n<p>Este defecto ha modificado ligeramente las normas que ten\u00edamos antes:<\/p>\n<ol>\n<li>Eliminar la regla de claves de \u00edndice funcionales.<\/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>Las claves de \u00edndice de los predicados funcionales siguen el orden EQ\/in\/LE\/LT<\/li>\n<\/ol>\n<p>Una 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>utilizado 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>ahora da<\/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 el orden de las claves de \u00edndice de la matriz en su condici\u00f3n SATISFIES<\/span><\/p>\n<ol>\n<li>Ponga los predicados del array en el orden de la condici\u00f3n SATISFIES.<\/li>\n<li>Para la disyunci\u00f3n en SATISFIES: obtenga los t\u00e9rminos comunes -&gt; elija el de menor prioridad -&gt; (EQ&lt;IN&lt;LE&lt;LT&lt;IS NOT NULL&lt; LIKE)<\/li>\n<li>Para la conjunci\u00f3n en SATISFIES: elija la menos prioritaria.<\/li>\n<\/ol>\n<p>Las nuevas normas despu\u00e9s de fix#2 y #3:<\/p>\n<p>1: \u00edndice principal del array para unnest,<br \/>\n2: igualdad\/nulo\/falta,<br \/>\n3: en,<br \/>\n4: no menor que\/entre\/no mayor que,<br \/>\n5: menor que\/mayor que,<br \/>\n6: filtro join derivado como clave principal,<br \/>\n7: no null\/no missing\/valued,<br \/>\n8: como,<br \/>\n9: predicado de uni\u00f3n no est\u00e1tico,<br \/>\n10:flavor para el \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>utilizado 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\">ahora da:<\/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>Pru\u00e9balo y cualquier problema que veas con los \u00edndices recomendados por Index Advisor Service, puedes a\u00f1adirlo como comentario a este blog<\/p>\n<h4>M\u00e1s informaci\u00f3n sobre la funci\u00f3n Index Advisor:<\/h4>\n<p><a href=\"https:\/\/www.couchbase.com\/blog\/es\/index-advisor-service\/\">https:\/\/www.couchbase.com\/blog\/index-advisor-service\/<\/a><\/p>\n<p><a href=\"https:\/\/www.couchbase.com\/blog\/es\/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\/es\/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\/es\/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 v26.2 (Yoast SEO v26.2) - 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\/es\/index-advisor-service-for-n1ql-march-refresh\/\" \/>\n<meta property=\"og:locale\" content=\"es_MX\" \/>\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\/es\/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\":\"es\",\"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\":\"es\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.couchbase.com\/blog\/index-advisor-service-for-n1ql-march-refresh\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@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\":\"es\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#organization\",\"name\":\"The Couchbase Blog\",\"url\":\"https:\/\/www.couchbase.com\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@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\":\"es\",\"@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\/es\/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\/es\/index-advisor-service-for-n1ql-march-refresh\/","og_locale":"es_MX","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\/es\/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":"es","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":"es","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.couchbase.com\/blog\/index-advisor-service-for-n1ql-march-refresh\/"]}]},{"@type":"ImageObject","inLanguage":"es","@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":"El blog de Couchbase","description":"Couchbase, la base de datos 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":"es"},{"@type":"Organization","@id":"https:\/\/www.couchbase.com\/blog\/#organization","name":"El blog de Couchbase","url":"https:\/\/www.couchbase.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"es","@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":"es","@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 es Gerente Senior de Ingenier\u00eda para el Equipo de Consultas en Couchbase R&amp;D. Antes de Couchbase, Kamini estuvo 7 a\u00f1os en Futurewei como Arquitecto\/Gerente de Kernel y 13 a\u00f1os en IBM Informix como Ingeniero de Software. Kamini es licenciada en Inform\u00e1tica e Ingenier\u00eda por la Universidad de Bombay (India) y posee 5 patentes estadounidenses.","url":"https:\/\/www.couchbase.com\/blog\/es\/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 es Gerente Senior de Ingenier\u00eda para el Equipo de Consultas en Couchbase R&amp;D. Antes de Couchbase, Kamini estuvo 7 a\u00f1os en Futurewei como Arquitecto\/Gerente de Kernel y 13 a\u00f1os en IBM Informix como Ingeniero de Software. Kamini es licenciada en Inform\u00e1tica e Ingenier\u00eda por la Universidad de Bombay (India) y posee 5 patentes estadounidenses."}],"_links":{"self":[{"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/posts\/8376","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/users\/50908"}],"replies":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/comments?post=8376"}],"version-history":[{"count":0,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/posts\/8376\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/media\/2560"}],"wp:attachment":[{"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/media?parent=8376"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/categories?post=8376"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/tags?post=8376"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/ppma_author?post=8376"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}