{"id":8790,"date":"2020-06-15T11:10:36","date_gmt":"2020-06-15T18:10:36","guid":{"rendered":"https:\/\/www.couchbase.com\/blog\/?p=8790"},"modified":"2025-06-13T23:42:36","modified_gmt":"2025-06-14T06:42:36","slug":"index-advisor-service-for-n1ql-june-refresh","status":"publish","type":"post","link":"https:\/\/www.couchbase.com\/blog\/es\/index-advisor-service-for-n1ql-june-refresh\/","title":{"rendered":"Servicio de Asesor de \u00cdndices para N1QL (actualizaci\u00f3n de junio)"},"content":{"rendered":"<p>Esta es nuestra entrega de junio 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 mayo. 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 siguiente versi\u00f3n de mantenimiento est\u00e1n ahora a su disposici\u00f3n 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 ofrece 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>\u00a0Desea seguir utilizando Couchbase Community Edition.<\/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. Advise no proporciona el \u00edndice de cobertura para la operaci\u00f3n de uni\u00f3n.<\/span><\/p>\n<p>Con esta mejora, una consulta como<\/p>\n<pre class=\"lang:java decode:true\">ADVISE SELECT t_1.int_field1 , t_1.decimal_field1 , t_1.primary_key_id , t_1.bool_field1\r\nFROM bucket_01 t_1 INNER JOIN bucket_04 t_4\r\nON ( t_1.primary_key_id = t_4.primary_key_id )\r\nINNER JOIN bucket_04 t_5 ON ( t_1.primary_key_id = t_5.primary_key_id );<\/pre>\n<p>que sol\u00eda dar<\/p>\n<pre class=\"theme:twilight lang:java decode:true\">{\r\n  \"resultados\": [\r\n    {\r\n      \"#operador\": \"Advise\",\r\n      \"consejo\": {\r\n        \"#operator\": \"IndexAdvice\",\r\n        \"adviseinfo\": {\r\n          \"\u00edndices_recomendados\": {\r\n            \"covering_indexes\": [\r\n              {\r\n                \"index_statement\": \"CREATE INDEX adv_primary_key_id ON `bucket_04`(`primary_key_id`)\",\r\n                \"keyspace_alias\": \"bucket_04_t_4\"\r\n              },\r\n              {\r\n                \"index_statement\": \"CREATE INDEX adv_primary_key_id ON `bucket_04`()\",\r\n                \"keyspace_alias\": \"bucket_04_t_5\"\r\n              }\r\n            ],\r\n            \"indexes\": [\r\n              {\r\n                \"index_statement\": \"CREATE INDEX adv_primary_key_id ON `bucket_04`(`primary_key_id`)\",\r\n                \"keyspace_alias\": \"bucket_04_t_4\",\r\n                \"recommendeding_rule\": \"Las claves de \u00edndice siguen el orden de los tipos de predicado: 9. predicado join no est\u00e1tico\".\r\n              },\r\n              {\r\n                \"index_statement\": \"CREATE INDEX adv_primary_key_id ON `bucket_01`(`primary_key_id`)\",\r\n                \"keyspace_alias\": \"bucket_01_t_1\",\r\n                \"recommendeding_rule\": \"Las claves de \u00edndice siguen el orden de los tipos de predicado: 6. filtro join derivado como clave principal\".\r\n              }\r\n            ]\r\n          }\r\n        }\r\n      },\r\n      \"query\": \"SELECT t_1.int_field1 , t_1.decimal_field1 , t_1.primary_key_id , t_1.bool_field1\\nFROM bucket_01 t_1\\nINNER JOIN bucket_04 t_4\\nON ( t_1.primary_key_id = t_4.primary_key_id )\\nINNER JOIN bucket_04 t_5\\nON ( t_1.primary_key_id = t_5.primary_key_id );\"\r\n    }\r\n  ]\r\n}<\/pre>\n<p>Esta consulta no pudo dar una recomendaci\u00f3n de \u00edndice de cobertura para bucket_01.<\/p>\n<p>ahora da<\/p>\n<pre class=\"theme:son-of-obsidian lang:java decode:true\">{\r\n  \"resultados\": [\r\n    {\r\n      \"#operador\": \"Advise\",\r\n      \"consejo\": {\r\n        \"#operator\": \"IndexAdvice\",\r\n        \"adviseinfo\": {\r\n          \"\u00edndices_recomendados\": {\r\n            \"covering_indexes\": [\r\n              {\r\n                \"index_statement\": \"CREATE INDEX adv_primary_key_id_int_field1_bool_field1_decimal_field1 ON `bucket_01`(`primary_key_id`,`int_field1`,`bool_field1`,`decimal_field1`)\",\r\n                \"keyspace_alias\": \"bucket_01_t_1\"\r\n              },\r\n              {\r\n                \"index_statement\": \"CREATE INDEX adv_primary_key_id ON `bucket_04`(`primary_key_id`)\",\r\n                \"keyspace_alias\": \"bucket_04_t_4;bucket_04_t_5\"\r\n              }\r\n            ],\r\n            \"indexes\": [\r\n              {\r\n                \"index_statement\": \"CREATE INDEX adv_primary_key_id ON `bucket_01`(`primary_key_id`)\",\r\n                \"keyspace_alias\": \"bucket_01_t_1\",\r\n                \"recommendeding_rule\": \"Las claves de \u00edndice siguen el orden de los tipos de predicado: 6. filtro join derivado como clave principal\".\r\n              },\r\n              {\r\n                \"index_statement\": \"CREATE INDEX adv_primary_key_id ON `bucket_04`(`primary_key_id`)\",\r\n                \"keyspace_alias\": \"bucket_04_t_4;bucket_04_t_5\",\r\n                \"recomendando_regla\": {\r\n                  \"bucket_04_t_4\": \"Las claves de \u00edndice siguen el orden de los tipos de predicado: 9. predicado join no est\u00e1tico\",\r\n                  \"bucket_04_t_5\": \"Las claves de \u00edndice siguen el orden de los tipos de predicado: 9. predicado join no est\u00e1tico\".\r\n                }\r\n              }\r\n            ]\r\n          }\r\n        }\r\n      },\r\n      \"query\": \"SELECT t_1.int_field1 , t_1.decimal_field1 , t_1.primary_key_id , t_1.bool_field1 FROM bucket_01 t_1 INNER JOIN bucket_04 t_4 ON ( t_1.primary_key_id = t_4.primary_key_id ) INNER JOIN bucket_04 t_5 ON ( t_1.primary_key_id = t_5.primary_key_id );\"\r\n    }\r\n  ]\r\n}<\/pre>\n<p>&nbsp;<\/p>\n<p><span style=\"color: #00ccff\">2. Advise devuelve a veces una recomendaci\u00f3n de \u00edndice vac\u00eda<\/span><\/p>\n<p>Una consulta como:<\/p>\n<pre class=\"lang:java decode:true\">ADVISE SELECT t_1.int_field1 , t_1.decimal_field1 , t_1.primary_key_id , t_1.bool_field1 FROM bucket_01 t_1\r\n LEFT JOIN bucket_05 t_1SiRAdlidCB ON ( t_1.primary_key_id = t_1SiRAdlidCB.primary_key_id )\r\nLEFT JOIN bucket_010 t_1fLjtGGSnKf ON ( t_1.primary_key_id = t_1fLjtGGSnKf.primary_key_id )\r\nINNER JOIN bucket_04 t_1GHMwUzdukS ON ( t_1.primary_key_id = t_1GHMwUzdukS.primary_key_id )\r\nINNER JOIN bucket_04 t_1LjVrlSNfDc ON ( t_1.primary_key_id = t_1LjVrlSNfDc.primary_key_id )\r\nWHERE ((t_1.primary_key_id IS NOT NULL AND t_1.int_field1 IS NULL)) O\r\n ((t_1.int_field1 &gt;= 47635891 OR t_1.varchar_field1 IS NOT NULL));<\/pre>\n<p>&nbsp;<\/p>\n<p>utilizado para dar<\/p>\n<pre class=\"theme:twilight lang:java decode:true\">{\r\n  \"resultados\": [\r\n    {\r\n      \"#operador\": \"Advise\",\r\n      \"consejo\": {\r\n        \"#operator\": \"IndexAdvice\",\r\n        \"adviseinfo\": {\r\n          \"\u00edndices_recomendados\": {\r\n            \"covering_indexes\": [\r\n              {\r\n                \"index_statement\": \"CREATE INDEX adv_primary_key_id ON `bucket_05`(`primary_key_id`)\",\r\n                \"keyspace_alias\": \"bucket_05_t_1SiRAdlidCB\"\r\n              },\r\n              {\r\n                \"index_statement\": \"CREATE INDEX adv_primary_key_id ON `bucket_010`(`primary_key_id`)\",\r\n                \"keyspace_alias\": \"bucket_010_t_1fLjtGGSnKf\"\r\n              },\r\n              {\r\n                \"index_statement\": \"CREATE INDEX adv_primary_key_id ON `bucket_04`(`primary_key_id`)\",\r\n                \"keyspace_alias\": \"bucket_04_t_1GHMwUzdukS\"\r\n              },\r\n              {\r\n                \"index_statement\": \"CREATE INDEX adv_primary_key_id ON `bucket_04`()\",\r\n                \"keyspace_alias\": \"bucket_04_t_1LjVrlSNfDc\"\r\n              }\r\n            ],\r\n            \"indexes\": [\r\n              {\r\n                \"index_statement\": \"CREATE INDEX adv_int_field1_primary_key_id ON `bucket_01`(`int_field1`,`primary_key_id`)\",\r\n                \"keyspace_alias\": \"bucket_01_t_1\",\r\n                \"recommendeding_rule\": \"Las claves de \u00edndice siguen el orden de los tipos de predicado: 1. Clave principal com\u00fan para la disyunci\u00f3n (2. igualdad\/nulo\/falta), 7. no nulo\/falta\/valor.\"\r\n              },\r\n              {\r\n                \"declaraci\u00f3n_\u00edndice\": \"CREATE INDEX adv_varchar_field1 ON `bucket_01`(`varchar_field1`)\",\r\n                \"keyspace_alias\": \"bucket_01_t_1\",\r\n                \"recommendeding_rule\": \"Las claves de \u00edndice siguen el orden de los tipos de predicado: 7. not null\/not missing\/valued.\"\r\n              },\r\n              {\r\n                \"index_statement\": \"CREATE INDEX adv_primary_key_id ON `bucket_05`(`primary_key_id`)\",\r\n                \"keyspace_alias\": \"bucket_05_t_1SiRAdlidCB\",\r\n                \"recommending_rule\": \"Las claves de \u00edndice siguen el orden de los tipos de predicado: 9. predicado join no est\u00e1tico\".\r\n              },\r\n              {\r\n                \"index_statement\": \"CREATE INDEX adv_primary_key_id ON `bucket_010`(`primary_key_id`)\",\r\n                \"keyspace_alias\": \"bucket_010_t_1fLjtGGSnKf\",\r\n                \"recommending_rule\": \"Las claves de \u00edndice siguen el orden de los tipos de predicado: 9. predicado join no est\u00e1tico\".\r\n              },\r\n              {\r\n                \"declaraci\u00f3n_\u00edndice\": \"CREATE INDEX adv_primary_key_id ON `bucket_04`(`primary_key_id`)\",\r\n                \"keyspace_alias\": \"bucket_04_t_1GHMwUzdukS\",\r\n                \"recommending_rule\": \"Las claves de \u00edndice siguen el orden de los tipos de predicado: 9. predicado join no est\u00e1tico\".\r\n              }\r\n            ]\r\n          }\r\n        }\r\n      },\r\n      \"query\": \"SELECT t_1.int_field1 , t_1.decimal_field1 , t_1.primary_key_id , t_1.bool_field1 FROM bucket_01 t_1 LEFT JOIN bucket_05 t_1SiRAdlidCB ON ( t_1.primary_key_id = t_1SiRAdlidCB.primary_key_id ) LEFT JOIN bucket_010 t_1fLjtGGSnKf ON ( t_1.primary_key_id = t_1fLjtGGSnKf.primary_key_id ) INNER JOIN bucket_04 t_1GHMwUzdukS ON ( t_1.primary_key_id = t_1GHMwUzdukS.primary_key_id ) INNER JOIN bucket_04 t_1LjVrlSNfDc ON ( t_1.primary_key_id = t_1LjVrlSNfDc.primary_key_id ) WHERE ((t_1.primary_key_id IS NOT NULL AND t_1.int_field1 IS NULL)) OR ((t_1.int_field1 &gt;= 47635891 OR t_1.varchar_field1 IS NOT NULL));\"\r\n    }\r\n  ]\r\n}<\/pre>\n<p>Hay un \u00edndice en blanco que se recomienda, adem\u00e1s dice que esos \u00edndices est\u00e1n cubriendo pero no incluyen campos del predicado.<\/p>\n<p>ahora da<\/p>\n<pre class=\"theme:son-of-obsidian lang:java decode:true\">{\r\n  \"resultados\": [\r\n    {\r\n      \"#operador\": \"Advise\",\r\n      \"consejo\": {\r\n        \"#operator\": \"IndexAdvice\",\r\n        \"adviseinfo\": {\r\n          \"\u00edndices_recomendados\": {\r\n            \"covering_indexes\": [\r\n              {\r\n                \"index_statement\": \"CREATE INDEX adv_primary_key_id ON `bucket_05`(`primary_key_id`)\",\r\n                \"keyspace_alias\": \"bucket_05_t_1SiRAdlidCB\"\r\n              },\r\n              {\r\n                \"index_statement\": \"CREATE INDEX adv_primary_key_id ON `bucket_010`(`primary_key_id`)\",\r\n                \"keyspace_alias\": \"bucket_010_t_1fLjtGGSnKf\"\r\n              },\r\n              {\r\n                \"index_statement\": \"CREATE INDEX adv_primary_key_id ON `bucket_04`(`primary_key_id`)\",\r\n                \"keyspace_alias\": \"bucket_04_t_1GHMwUzdukS;bucket_04_t_1LjVrlSNfDc\"\r\n              }\r\n            ],\r\n            \"\u00edndices\": [\r\n              {\r\n                \"index_statement\": \"CREATE INDEX adv_primary_key_id ON `bucket_010`(`primary_key_id`)\",\r\n                \"keyspace_alias\": \"bucket_010_t_1fLjtGGSnKf\",\r\n                \"recommending_rule\": \"Las claves de \u00edndice siguen el orden de los tipos de predicado: 9. predicado join no est\u00e1tico\".\r\n              },\r\n              {\r\n                \"declaraci\u00f3n_\u00edndice\": \"CREATE INDEX adv_primary_key_id ON `bucket_04`(`primary_key_id`)\",\r\n                \"keyspace_alias\": \"bucket_04_t_1GHMwUzdukS;bucket_04_t_1LjVrlSNfDc\",\r\n                \"recomendando_regla\": {\r\n                  \"bucket_04_t_1GHMwUzdukS\": \"Las claves de \u00edndice siguen el orden de los tipos de predicado: 9. predicado join no est\u00e1tico\",\r\n                  \"bucket_04_t_1LjVrlSNfDc\": \"Las claves de \u00edndice siguen el orden de los tipos de predicado: 9. predicado join no est\u00e1tico\".\r\n                }\r\n              },\r\n              {\r\n                \"index_statement\": \"CREATE INDEX adv_int_field1_primary_key_id ON `bucket_01`(`int_field1`,`primary_key_id`)\",\r\n                \"keyspace_alias\": \"bucket_01_t_1\",\r\n                \"recommendeding_rule\": \"Las claves de \u00edndice siguen el orden de los tipos de predicado: 1. Clave principal com\u00fan para disyunci\u00f3n (2. igualdad\/nulo\/falta), 7. no nulo\/falta\/valor.\"\r\n              },\r\n              {\r\n                \"declaraci\u00f3n_\u00edndice\": \"CREATE INDEX adv_varchar_field1 ON `bucket_01`(`varchar_field1`)\",\r\n                \"keyspace_alias\": \"bucket_01_t_1\",\r\n                \"recommendeding_rule\": \"Las claves de \u00edndice siguen el orden de los tipos de predicado: 7. not null\/not missing\/valued.\"\r\n              },\r\n              {\r\n                \"index_statement\": \"CREATE INDEX adv_primary_key_id ON `bucket_05`(`primary_key_id`)\",\r\n                \"keyspace_alias\": \"bucket_05_t_1SiRAdlidCB\",\r\n                \"recommending_rule\": \"Las claves de \u00edndice siguen el orden de los tipos de predicado: 9. predicado join no est\u00e1tico\".\r\n              }\r\n            ]\r\n          }\r\n        }\r\n      },\r\n      \"query\": \"SELECT t_1.int_field1 , t_1.decimal_field1 , t_1.primary_key_id , t_1.bool_field1 FROM bucket_01 t_1 LEFT JOIN bucket_05 t_1SiRAdlidCB ON ( t_1.primary_key_id = t_1SiRAdlidCB.primary_key_id ) LEFT JOIN bucket_010 t_1fLjtGGSnKf ON ( t_1.primary_key_id = t_1fLjtGGSnKf.primary_key_id ) INNER JOIN bucket_04 t_1GHMwUzdukS ON ( t_1.primary_key_id = t_1GHMwUzdukS.primary_key_id ) INNER JOIN bucket_04 t_1LjVrlSNfDc ON ( t_1.primary_key_id = t_1LjVrlSNfDc.primary_key_id ) WHERE ((t_1.primary_key_id IS NOT NULL AND t_1.int_field1 IS NULL)) OR ((t_1.int_field1 &gt;= 47635891 OR t_1.varchar_field1 IS NOT NULL));\"\r\n    }\r\n  ]\r\n}<\/pre>\n<p><span style=\"color: #00ccff\">3. Debe dar una recomendaci\u00f3n con un tipo de descripci\u00f3n en el campo<\/span><\/p>\n<p>Una consulta del tipo<\/p>\n<pre class=\"lang:java decode:true\">ADVISE select country from `default` where pro_account=true and country = \"USA\" order by country DESC<\/pre>\n<p>utilizado para dar<\/p>\n<pre class=\"theme:twilight lang:java decode:true\">{\r\n  &quot;resultados&quot;: [\r\n    {\r\n      &quot;#operador&quot;: &quot;Advise&quot;,\r\n      &quot;consejo&quot;: {\r\n        &quot;#operator&quot;: &quot;IndexAdvice&quot;,\r\n        &quot;adviseinfo&quot;: {\r\n          &quot;&iacute;ndices_recomendados&quot;: {\r\n            &quot;covering_indexes&quot;: [\r\n              {\r\n                &quot;&lt;span style=&quot;color: #ff0000;&quot; data-mce-style=&quot;color: #ff0000;&quot;&gt;index_statement&quot;: &quot;CREATE INDEX adv_pro_account_country ON `default`(`pro_account`,`country`)&quot;,&lt;\/span&gt;\r\n                &quot;keyspace_alias&quot;: &quot;default&quot;\r\n              }\r\n            ],\r\n            &quot;indexes&quot;: [\r\n              {\r\n                &quot;index_statement&quot;: &quot;CREATE INDEX adv_pro_account_country ON `default`(`pro_account`,`country`)&quot;,\r\n                &quot;keyspace_alias&quot;: &quot;default&quot;,\r\n                &quot;recommending_rule&quot;: &quot;Las claves del &iacute;ndice siguen el orden de los tipos de predicado: 2. igualdad\/nulo\/falta&quot;.\r\n              }\r\n            ]\r\n          }\r\n        }\r\n      },\r\n      &quot;query&quot;: &quot;select country from default where pro_account=true and country = \\&quot;USA\\&quot; order by country DESC&quot;\r\n    }\r\n  ]\r\n}<\/pre>\n<p>&nbsp;<\/p>\n<p><span style=\"color: #000000\">ahora da:<\/span><\/p>\n<pre class=\"theme:son-of-obsidian lang:java decode:true\">{\r\n  &quot;resultados&quot;: [\r\n    {\r\n      &quot;#operador&quot;: &quot;Advise&quot;,\r\n      &quot;consejo&quot;: {\r\n        &quot;#operator&quot;: &quot;IndexAdvice&quot;,\r\n        &quot;adviseinfo&quot;: {\r\n          &quot;&iacute;ndices_recomendados&quot;: {\r\n            &quot;covering_indexes&quot;: [\r\n              {\r\n                &quot;index_statement&quot;: &quot;CREATE INDEX adv_countryDESC_pro_account ON `default`(`country` DESC,`pro_account`)&quot;,&lt;\/span&gt;\r\n                &quot;keyspace_alias&quot;: &quot;default&quot;\r\n              }\r\n            ],\r\n            &quot;indexes&quot;: [\r\n              {\r\n                &quot;index_statement&quot;: &quot;CREATE INDEX adv_country_pro_account ON `default`(`country`,`pro_account`)&quot;,\r\n                &quot;keyspace_alias&quot;: &quot;default&quot;,\r\n                &quot;recommending_rule&quot;: &quot;Las claves del &iacute;ndice siguen el orden de los tipos de predicado: 2. igualdad\/nulo\/falta&quot;.\r\n              }\r\n            ]\r\n          }\r\n        }\r\n      },\r\n      &quot;query&quot;: &quot;select country from default where pro_account=true and country = \\&quot;USA\\&quot; order by country DESC&quot;\r\n    }\r\n  ]\r\n}<\/pre>\n<p><span style=\"color: #00ccff\">4. Asesor de \u00edndices para combinar informaci\u00f3n para la definici\u00f3n de \u00edndices duplicados<\/span><\/p>\n<p>Eliminamos la definici\u00f3n duplicada del \u00edndice para una consulta.<br \/>\nPero hay algunos casos en los que el \u00edndice duplicado puede aplicarse a diferentes keyspace_alias con diferentes reglas de recomendaci\u00f3n.<\/p>\n<p>Una consulta como:<\/p>\n<pre class=\"lang:java decode:true\">ADVISE SELECT *\r\nFROM bucket_01 t_1\r\nLEFT JOIN bucket_05 t_2 ON ( t_1.primary_key_id = t_2.primary_key_id )\r\nLEFT JOIN bucket_010 t_3 ON ( t_1.primary_key_id = t_3.primary_key_id )\r\nINNER JOIN bucket_04 t_4 ON ( t_1.primary_key_id = t_4.primary_key_id )\r\nINNER JOIN bucket_04 t_5 ON ( t_1.primary_key_id = t_5.primary_key_id )\r\nWHERE ((t_1.primary_key_id IS NOT NULL AND t_1.int_field1 IS NULL)) OR ((t_1.int_field1 &gt;= 47635891 OR t_1.varchar_field1 IS NOT NULL));<\/pre>\n<p>utilizado para dar<\/p>\n<pre class=\"theme:twilight lang:java decode:true\">{\r\n  \"resultados\": [\r\n    {\r\n      \"#operador\": \"Advise\",\r\n      \"consejo\": {\r\n        \"#operator\": \"IndexAdvice\",\r\n        \"adviseinfo\": {\r\n          \"\u00edndices_recomendados\": {\r\n            \"\u00edndices\": [\r\n              {\r\n                \"declaraci\u00f3n_\u00edndice\": \"CREATE INDEX adv_primary_key_id ON `bucket_010`(`primary_key_id`)\",\r\n                \"keyspace_alias\": \"bucket_010_t_3\",\r\n                \"recommendeding_rule\": \"Las claves de \u00edndice siguen el orden de los tipos de predicado: 9. predicado join no est\u00e1tico\".\r\n              },\r\n              {\r\n                \"index_statement\": \"CREATE INDEX adv_primary_key_id ON `bucket_04`(`primary_key_id`)\",\r\n                \"keyspace_alias\": \"bucket_04_t_4\",\r\n                \"recommendeding_rule\": \"Las claves de \u00edndice siguen el orden de los tipos de predicado: 9. predicado join no est\u00e1tico\".\r\n              },\r\n              {\r\n                \"index_statement\": \"CREATE INDEX adv_int_field1_primary_key_id ON `bucket_01`(`int_field1`,`primary_key_id`)\",\r\n                \"keyspace_alias\": \"bucket_01_t_1\",\r\n                \"recommending_rule\": \"Las claves de \u00edndice siguen el orden de los tipos de predicado: 1. Clave principal com\u00fan para la disyunci\u00f3n (2. igualdad\/nulo\/falta), 7. no nulo\/falta\/valor.\"\r\n              },\r\n              {\r\n                \"declaraci\u00f3n_\u00edndice\": \"CREATE INDEX adv_varchar_field1 ON `bucket_01`(`varchar_field1`)\",\r\n                \"keyspace_alias\": \"bucket_01_t_1\",\r\n                \"recommendeding_rule\": \"Las claves de \u00edndice siguen el orden de los tipos de predicado: 7. not null\/not missing\/valued.\"\r\n              },\r\n              {\r\n                \"index_statement\": \"CREATE INDEX adv_primary_key_id ON `bucket_05`(`primary_key_id`)\",\r\n                \"keyspace_alias\": \"bucket_05_t_2\",\r\n                \"recommendeding_rule\": \"Las claves de \u00edndice siguen el orden de los tipos de predicado: 9. predicado join no est\u00e1tico\".\r\n              }\r\n            ]\r\n          }\r\n        }\r\n      },\r\n      \"query\": \"SELECT * FROM bucket_01 t_1 LEFT JOIN bucket_05 t_2 ON ( t_1.primary_key_id = t_2.primary_key_id ) LEFT JOIN bucket_010 t_3 ON ( t_1.primary_key_id = t_3.primary_key_id ) INNER JOIN bucket_04 t_4 ON ( t_1.primary_key_id = t_4.primary_key_id ) INNER JOIN bucket_04 t_5 ON ( t_1.primary_key_id = t_5.primary_key_id ) WHERE ((t_1.primary_key_id IS NOT NULL AND t_1.int_field1 IS NULL)) OR ((t_1.int_field1 &gt;= 47635891 OR t_1.varchar_field1 IS NOT NULL));\"\r\n    }\r\n  ]\r\n}<\/pre>\n<p>ahora da:<\/p>\n<pre class=\"theme:son-of-obsidian lang:java decode:true\">{\r\n  &quot;resultados&quot;: [\r\n    {\r\n      &quot;#operador&quot;: &quot;Advise&quot;,\r\n      &quot;consejo&quot;: {\r\n        &quot;#operator&quot;: &quot;IndexAdvice&quot;,\r\n        &quot;adviseinfo&quot;: {\r\n          &quot;&iacute;ndices_recomendados&quot;: {\r\n            &quot;&iacute;ndices&quot;: [\r\n              {\r\n                &quot;declaraci&oacute;n_&iacute;ndice&quot;: &quot;CREATE INDEX adv_int_field1_primary_key_id ON `bucket_01`(`int_field1`,`primary_key_id`)&quot;,\r\n                &quot;keyspace_alias&quot;: &quot;bucket_01_t_1&quot;,\r\n                &quot;recommendeding_rule&quot;: &quot;Las claves de &iacute;ndice siguen el orden de los tipos de predicado: 1. Clave principal com&uacute;n para disyunci&oacute;n (2. igualdad\/nulo\/falta), 7. no nulo\/falta\/valor.&quot;\r\n              },\r\n              {\r\n                &quot;declaraci&oacute;n_&iacute;ndice&quot;: &quot;CREATE INDEX adv_varchar_field1 ON `bucket_01`(`varchar_field1`)&quot;,\r\n                &quot;keyspace_alias&quot;: &quot;bucket_01_t_1&quot;,\r\n                &quot;recommendeding_rule&quot;: &quot;Las claves de &iacute;ndice siguen el orden de los tipos de predicado: 7. not null\/not missing\/valued.&quot;\r\n              },\r\n              {\r\n                &quot;index_statement&quot;: &quot;CREATE INDEX adv_primary_key_id ON `bucket_05`(`primary_key_id`)&quot;,\r\n                &quot;keyspace_alias&quot;: &quot;bucket_05_t_2&quot;,\r\n                &quot;recommendeding_rule&quot;: &quot;Las claves de &iacute;ndice siguen el orden de los tipos de predicado: 9. predicado join no est&aacute;tico&quot;.\r\n              },\r\n              {\r\n                &quot;index_statement&quot;: &quot;CREATE INDEX adv_primary_key_id ON `bucket_010`(`primary_key_id`)&quot;,\r\n                &quot;keyspace_alias&quot;: &quot;bucket_010_t_3&quot;,\r\n                &quot;recommendeding_rule&quot;: &quot;Las claves de &iacute;ndice siguen el orden de los tipos de predicado: 9. predicado join no est&aacute;tico&quot;.\r\n              },\r\n              {\r\n                &quot;index_statement&quot;: &quot;CREATE INDEX adv_primary_key_id ON `bucket_04`(`primary_key_id`)&quot;,\r\n                &quot;keyspace_alias&quot;: &lt;span style=&quot;color: #0000ff;&quot; data-mce-style=&quot;color: #0000ff;&quot;&gt;&quot;bucket_04_t_4;bucket_04_t_5&quot;&lt;\/span&gt;,\r\n                &quot;recomendando_regla&quot;: {\r\n                  &quot;bucket_04_t_4&quot;: &quot;Las claves de &iacute;ndice siguen el orden de los tipos de predicado: 9. predicado join no est&aacute;tico&quot;,\r\n                  &quot;bucket_04_t_5&quot;: &quot;Las claves de &iacute;ndice siguen el orden de los tipos de predicado: 9. predicado join no est&aacute;tico&quot;.\r\n                }\r\n              }\r\n            ]\r\n          }\r\n        }\r\n      },\r\n      &quot;query&quot;: &quot;SELECT * FROM bucket_01 t_1 \\nLEFT JOIN bucket_05 t_2 ON ( t_1.primary_key_id = t_2.primary_key_id ) \\nLEFT JOIN bucket_010 t_3 ON ( t_1.primary_key_id = t_3.primary_key_id ) \\nINNER JOIN bucket_04 t_4 ON ( t_1.primary_key_id = t_4.primary_key_id ) \\nINNER JOIN bucket_04 t_5 ON ( t_1.primary_key_id = t_5.primary_key_id ) \\nWHERE ((t_1.primary_key_id IS NOT NULL AND t_1.int_field1 IS NULL)) OR ((t_1.int_field1 &amp;gt;= 47635891 OR t_1.varchar_field1 IS NOT NULL));&quot;\r\n    }\r\n  ]\r\n}<\/pre>\n<p><span style=\"color: #00ccff\">5. El asesor de \u00edndices devuelve una recomendaci\u00f3n de \u00edndice err\u00f3nea en una consulta no declarada<\/span><\/p>\n<p>Una consulta como:<\/p>\n<pre class=\"lang:java decode:true\">advise SELECT meta(t).id _id,t.type,branch.branchId FROM test AS t UNNEST t.branches AS branch\r\nWHERE t.type is valued AND branch.branchId &gt; (t.currentBranch-2)\r\nordenado por branch.lastUpdateOn<\/pre>\n<p>sol\u00eda dar:<\/p>\n<pre class=\"theme:twilight lang:java decode:true\">{\r\n  &quot;resultados&quot;: [\r\n    {\r\n      &quot;#operador&quot;: &quot;Advise&quot;,\r\n      &quot;consejo&quot;: {\r\n        &quot;#operator&quot;: &quot;IndexAdvice&quot;,\r\n        &quot;adviseinfo&quot;: {\r\n          &quot;&iacute;ndices_recomendados&quot;: {\r\n            &quot;&iacute;ndices&quot;: [\r\n              {\r\n                &quot;declaraci&oacute;n_&iacute;ndice&quot;: &quot;CREATE INDEX adv_ALL_branches_type_2 ON `test`(&lt;span style=&quot;color: #ff0000;&quot; data-mce-style=&quot;color: #ff0000;&quot;&gt;ALL `ramas`,`tipo`,2&lt;\/span&gt;)&quot;,\r\n                &quot;keyspace_alias&quot;: &quot;test_t&quot;,\r\n                &quot;recommending_rule&quot;: &quot;Las claves de &iacute;ndice siguen el orden de los tipos de predicado: 1. &iacute;ndice de array principal para unnest, 7. not null\/not missing\/valued, 9. predicado join no est&aacute;tico.&quot;\r\n              }\r\n            ]\r\n          }\r\n        }\r\n      },\r\n      &quot;query&quot;: &quot;SELECT meta(t).id _id,t.type,branch.branchId FROM test AS t UNNEST t.branches AS branch WHERE t.type is valued AND branch.branchId &amp;gt; (t.currentBranch-2) order by branch.lastUpdateOn&quot;\r\n    }\r\n  ]\r\n}<\/pre>\n<p>&nbsp;<\/p>\n<p>ahora da<\/p>\n<pre class=\"theme:son-of-obsidian lang:java decode:true\">{\r\n  &quot;resultados&quot;: [\r\n    {\r\n      &quot;#operador&quot;: &quot;Advise&quot;,\r\n      &quot;consejo&quot;: {\r\n        &quot;#operator&quot;: &quot;IndexAdvice&quot;,\r\n        &quot;adviseinfo&quot;: {\r\n          &quot;&iacute;ndices_recomendados&quot;: {\r\n            &quot;&iacute;ndices&quot;: [\r\n              {\r\n                &quot;declaraci&oacute;n_&iacute;ndice&quot;: &quot;CREATE INDEX adv_ALL_branches_branchId_type ON `test`(&lt;span style=&quot;color: #0000ff;&quot; data-mce-style=&quot;color: #0000ff;&quot;&gt;ALL ARRAY `branch`.`branchId` FOR branch IN `branches` END,`type&lt;\/span&gt;)&quot;,\r\n                &quot;keyspace_alias&quot;: &quot;test_t&quot;,\r\n                &quot;recommending_rule&quot;: &quot;Las claves de &iacute;ndice siguen el orden de los tipos de predicado: 1. &iacute;ndice de matriz principal para unnest, 7. not null\/not missing\/valued.&quot;\r\n              }\r\n            ]\r\n          }\r\n        }\r\n      },\r\n      &quot;query&quot;: &quot;SELECT meta(t).id _id,t.type,branch.branchId\\nFROM test AS t\\nUNNNEST t.branches AS branch\\nWHERE t.type is valued AND branch.branchId &amp;gt; (t.currentBranch-2) order by branch.lastUpdateOn&quot;\r\n    }\r\n  ]\r\n}<\/pre>\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\/index-advisor-service-for-n1ql-march-refresh\/\">https:\/\/www.couchbase.com\/blog\/index-advisor-service-for-n1ql-march-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 June drop for Index Advisor service for N1QL after fixing some of the bugs that were found after our last refresh in May. We plan to keep improvising the Index Advisor service(What is it?). The fixes in [&hellip;]<\/p>","protected":false},"author":50908,"featured_media":7971,"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":[1245,1695,2439,2445],"ppma_author":[9099],"class_list":["post-8790","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-cloud","category-couchbase-server","category-global-secondary-index","category-n1ql-query","tag-cloud","tag-gsi","tag-index-advisor","tag-query-optimization"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v26.0 (Yoast SEO v26.0) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Index Advisor Service for N1QL (June 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-june-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 (June refresh)\" \/>\n<meta property=\"og:description\" content=\"This is our June drop for Index Advisor service for N1QL after fixing some of the bugs that were found after our last refresh in May. 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-june-refresh\/\" \/>\n<meta property=\"og:site_name\" content=\"The Couchbase Blog\" \/>\n<meta property=\"article:published_time\" content=\"2020-06-15T18:10:36+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-06-14T06:42:36+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/12\/ZgEfnw1X_400x400.png\" \/>\n\t<meta property=\"og:image:width\" content=\"400\" \/>\n\t<meta property=\"og:image:height\" content=\"400\" \/>\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=\"9 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-june-refresh\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/index-advisor-service-for-n1ql-june-refresh\/\"},\"author\":{\"name\":\"Kamini Jagtiani\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/f99c5767a877147f9cf658230bc2473b\"},\"headline\":\"Index Advisor Service for N1QL (June refresh)\",\"datePublished\":\"2020-06-15T18:10:36+00:00\",\"dateModified\":\"2025-06-14T06:42:36+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/index-advisor-service-for-n1ql-june-refresh\/\"},\"wordCount\":479,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/index-advisor-service-for-n1ql-june-refresh\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/12\/ZgEfnw1X_400x400.png\",\"keywords\":[\"cloud\",\"GSI\",\"Index Advisor\",\"Query optimization\"],\"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-june-refresh\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/index-advisor-service-for-n1ql-june-refresh\/\",\"url\":\"https:\/\/www.couchbase.com\/blog\/index-advisor-service-for-n1ql-june-refresh\/\",\"name\":\"Index Advisor Service for N1QL (June refresh) - The Couchbase Blog\",\"isPartOf\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/index-advisor-service-for-n1ql-june-refresh\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/index-advisor-service-for-n1ql-june-refresh\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/12\/ZgEfnw1X_400x400.png\",\"datePublished\":\"2020-06-15T18:10:36+00:00\",\"dateModified\":\"2025-06-14T06:42:36+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/index-advisor-service-for-n1ql-june-refresh\/#breadcrumb\"},\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.couchbase.com\/blog\/index-advisor-service-for-n1ql-june-refresh\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/index-advisor-service-for-n1ql-june-refresh\/#primaryimage\",\"url\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/12\/ZgEfnw1X_400x400.png\",\"contentUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/12\/ZgEfnw1X_400x400.png\",\"width\":400,\"height\":400},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/index-advisor-service-for-n1ql-june-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 (June 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 (June 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-june-refresh\/","og_locale":"es_MX","og_type":"article","og_title":"Index Advisor Service for N1QL (June refresh)","og_description":"This is our June drop for Index Advisor service for N1QL after fixing some of the bugs that were found after our last refresh in May. 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-june-refresh\/","og_site_name":"The Couchbase Blog","article_published_time":"2020-06-15T18:10:36+00:00","article_modified_time":"2025-06-14T06:42:36+00:00","og_image":[{"width":400,"height":400,"url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/12\/ZgEfnw1X_400x400.png","type":"image\/png"}],"author":"Kamini Jagtiani","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Kamini Jagtiani","Est. reading time":"9 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.couchbase.com\/blog\/index-advisor-service-for-n1ql-june-refresh\/#article","isPartOf":{"@id":"https:\/\/www.couchbase.com\/blog\/index-advisor-service-for-n1ql-june-refresh\/"},"author":{"name":"Kamini Jagtiani","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/f99c5767a877147f9cf658230bc2473b"},"headline":"Index Advisor Service for N1QL (June refresh)","datePublished":"2020-06-15T18:10:36+00:00","dateModified":"2025-06-14T06:42:36+00:00","mainEntityOfPage":{"@id":"https:\/\/www.couchbase.com\/blog\/index-advisor-service-for-n1ql-june-refresh\/"},"wordCount":479,"commentCount":0,"publisher":{"@id":"https:\/\/www.couchbase.com\/blog\/#organization"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/index-advisor-service-for-n1ql-june-refresh\/#primaryimage"},"thumbnailUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/12\/ZgEfnw1X_400x400.png","keywords":["cloud","GSI","Index Advisor","Query optimization"],"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-june-refresh\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.couchbase.com\/blog\/index-advisor-service-for-n1ql-june-refresh\/","url":"https:\/\/www.couchbase.com\/blog\/index-advisor-service-for-n1ql-june-refresh\/","name":"Index Advisor Service for N1QL (June refresh) - The Couchbase Blog","isPartOf":{"@id":"https:\/\/www.couchbase.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.couchbase.com\/blog\/index-advisor-service-for-n1ql-june-refresh\/#primaryimage"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/index-advisor-service-for-n1ql-june-refresh\/#primaryimage"},"thumbnailUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/12\/ZgEfnw1X_400x400.png","datePublished":"2020-06-15T18:10:36+00:00","dateModified":"2025-06-14T06:42:36+00:00","breadcrumb":{"@id":"https:\/\/www.couchbase.com\/blog\/index-advisor-service-for-n1ql-june-refresh\/#breadcrumb"},"inLanguage":"es","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.couchbase.com\/blog\/index-advisor-service-for-n1ql-june-refresh\/"]}]},{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/www.couchbase.com\/blog\/index-advisor-service-for-n1ql-june-refresh\/#primaryimage","url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/12\/ZgEfnw1X_400x400.png","contentUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/12\/ZgEfnw1X_400x400.png","width":400,"height":400},{"@type":"BreadcrumbList","@id":"https:\/\/www.couchbase.com\/blog\/index-advisor-service-for-n1ql-june-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 (June 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\/8790","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=8790"}],"version-history":[{"count":0,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/posts\/8790\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/media\/7971"}],"wp:attachment":[{"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/media?parent=8790"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/categories?post=8790"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/tags?post=8790"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/ppma_author?post=8790"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}