{"id":32396,"date":"2025-04-15T10:24:17","date_gmt":"2025-04-15T08:24:17","guid":{"rendered":"https:\/\/www.codemotion.com\/magazine\/?p=32396"},"modified":"2025-04-15T10:24:20","modified_gmt":"2025-04-15T08:24:20","slug":"indices-nonclustered-indices-parte-4","status":"publish","type":"post","link":"https:\/\/www.codemotion.com\/magazine\/es\/backend-es\/indices-nonclustered-indices-parte-4\/","title":{"rendered":"\u00cdndices Nonclustered (\u00cdndices parte 4)"},"content":{"rendered":"\n<p><span style=\"font-weight: 400\">Continuamos nuestra serie de \u00cdndices en SQL Server. Despu\u00e9s de una <\/span><a href=\"https:\/\/www.soydba.es\/introduccion-a-los-indices-en-sql-server-parte-1\/\"><span style=\"font-weight: 400\">introducci\u00f3n<\/span><\/a><span style=\"font-weight: 400\"> y de profundizar en las tablas HEAP y los \u00edndices clustered ha llegado el turno de los <\/span><b>\u00edndices nonclustered<\/b><span style=\"font-weight: 400\">. Durante este blog vamos a profundizar en su funcionamiento, cu\u00e1l es la mejor estrategia para crearlos y responderemos a la pregunta de si son buenos o malos para el rendimiento.<\/span><\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-estructura-de-un-indice-nonclustered\"><span style=\"font-weight: 400\">Estructura de un \u00edndice nonclustered<\/span><\/h2>\n\n\n\n<p><span style=\"font-weight: 400\">En la introducci\u00f3n de esta serie comentamos que los \u00edndices nonclustered son como una copia de la tabla que solo incluye las columnas que hemos elegido. Profundicemos en esto, un \u00edndice nonclustered se crea sobre las mismas p\u00e1ginas de 8Kb que el resto de objetos en SQL Server. En ellas se almacenan las columnas que hemos a\u00f1adido al \u00edndice ordenadas ascendente o descendentemente seg\u00fan elijamos y un puntero hacia la ubicaci\u00f3n f\u00edsica del resto de columnas de esas filas. Al igual que pasaba con los \u00edndices clustered sobre estas columnas se crea una estructura de \u00e1rbol B o \u00e1rbol invertido desde un nivel ra\u00edz hasta los datos. Podemos verlo en esta imagen sacada de la <\/span><a href=\"https:\/\/learn.microsoft.com\/en-us\/previous-versions\/sql\/sql-server-2008-r2\/ms177484(v=sql.105)?redirectedfrom=MSDN\" target=\"_blank\" rel=\"noreferrer noopener\"><span style=\"font-weight: 400\">documentaci\u00f3n oficial de Microsoft<\/span><\/a><span style=\"font-weight: 400\">:<\/span><\/p>\n\n\n<div class=\"wp-block-image\">\n<figure data-wp-context=\"{&quot;imageId&quot;:&quot;69f27603e2d73&quot;}\" data-wp-interactive=\"core\/image\" class=\"aligncenter size-medium wp-lightbox-container\"><img decoding=\"async\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on-async--click=\"actions.showLightbox\" data-wp-on-async--load=\"callbacks.setButtonStyles\" data-wp-on-async-window--resize=\"callbacks.setButtonStyles\" src=\"https:\/\/www.soydba.es\/wp-content\/uploads\/2023\/12\/ms177484.bokind1en-ussql.105-300x274.gif\" alt=\"\u00cdndices Nonclustered\" class=\"wp-image-253\" \/><button\n\t\t\tclass=\"lightbox-trigger\"\n\t\t\ttype=\"button\"\n\t\t\taria-haspopup=\"dialog\"\n\t\t\taria-label=\"Enlarge\"\n\t\t\tdata-wp-init=\"callbacks.initTriggerButton\"\n\t\t\tdata-wp-on-async--click=\"actions.showLightbox\"\n\t\t\tdata-wp-style--right=\"state.imageButtonRight\"\n\t\t\tdata-wp-style--top=\"state.imageButtonTop\"\n\t\t>\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewBox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\" \/>\n\t\t\t<\/svg>\n\t\t<\/button><\/figure><\/div>\n\n\n<p><span style=\"font-weight: 400\">Cuando se crea un \u00edndice nonclustered sobre una tabla HEAP o una vista que no tenga un \u00edndice clustered (m\u00e1s sobre vistas indexadas <a href=\"https:\/\/www.soydba.es\/vistas-indexadas-de-sql-server\/\">aqu\u00ed<\/a>) el nivel de hoja contendr\u00e1 el RID (identificador de fila) de las filas adem\u00e1s de las columnas incluidas en el \u00edndice. Si por el contrario se crea sobre una tabla con un \u00edndice clustered, el nivel hoja incluir\u00e1 las columnas del \u00edndice clustered. Adicionalmente, solo si el \u00edndice clustered no es \u00fanico, se incluir\u00e1 tambi\u00e9n un identificador de fila.<\/span><\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-filtrar-por-un-indice-nonclustered\"><span style=\"font-weight: 400\">Filtrar por un \u00edndice nonclustered<\/span><\/h2>\n\n\n\n<p><span style=\"font-weight: 400\">Cuando filtras por una columna incluida en un \u00edndice nonclustered SQL Server buscar\u00e1 en ese \u00edndice los valores deseados. Independientemente de lo que pase despu\u00e9s esto es mucho m\u00e1s r\u00e1pido que leer la tabla completa en busca de un valor y se reduce en gran medida el consumo de recursos de E\/S. Sin embargo aqu\u00ed pueden pasar dos cosas, puede que nuestro \u00edndice incluya todas las columnas que deseamos recuperar en cuyo caso no habr\u00e1 que leer m\u00e1s o puede que necesitemos m\u00e1s informaci\u00f3n de la que contiene el \u00edndice. En este caso, usar\u00e1 el puntero para saltar directamente a la ubicaci\u00f3n de esos datos sin hacer lecturas innecesarias. Cuando un \u00edndice incluye todos los campos que requiere la consulta se dice que el \u00edndice cubre la consulta y es lo m\u00e1s \u00f3ptimo en cuanto a rendimiento de lecturas.<\/span><\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-buenas-practicas-nbsp\"><span style=\"font-weight: 400\">Buenas pr\u00e1cticas&nbsp;<\/span><\/h2>\n\n\n\n<p><span style=\"font-weight: 400\">Acabamos de ver que lo mejor para nuestras lecturas ser\u00e1 que nuestro \u00edndice nonclustered cubra completamente nuestras consultas, sin embargo, todo tiene un pero. A mi me gusta comparar los \u00edndices nonclustered con la t\u00edpica mantita que todos tenemos en el sof\u00e1, esa que si te tapas hasta arriba te deja los pies fuera y si te tapas los pies no te arropa hasta arriba. Igual que la mantita, nuestros \u00edndices tienen sus cosas malas y para arreglar una cosa empeoran otra. Como hemos comentado, los \u00edndices nonclustered son objetos separados de la tabla por lo que cada vez que escribamos (o modifiquemos) un dato en la tabla se tiene que modificar en todos los \u00edndices que contengan esa columna. Esto degrada el rendimiento de las escrituras.<\/span><\/p>\n\n\n\n<p><span style=\"font-weight: 400\">Tenemos que tener esto muy en mente a la hora de dise\u00f1ar los \u00edndices nonclustered ya que no nos podemos pasar creando \u00edndices nonclustered. Tampoco debemos crear \u00edndices nonclustered en columnas que tengan pocas lecturas por cada escritura o incluso m\u00e1s escrituras que lecturas.<\/span><\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-columnas-clave-o-columnas-incluidas\"><span style=\"font-weight: 400\">Columnas clave o columnas incluidas<\/span><\/h3>\n\n\n\n<p><span style=\"font-weight: 400\">Si despu\u00e9s de analizar todo esto a\u00fan nos cuadra el \u00edndice nonclustered, tenemos que tener en cuenta la limitaci\u00f3n de 16 claves por \u00edndice. Tranquilos si no hab\u00e9is entendido esto, he metido un concepto nuevo que ahora os explico.<\/span><\/p>\n\n\n\n<p><span style=\"font-weight: 400\">Las columnas que forman parte de un \u00edndice nonclustered pueden ser claves o incluidas. Llamamos columnas clave a las columnas que forman parte del \u00edndice y por las que vamos a poder filtrar. Sin embargo para poder cubrir m\u00e1s consultas en ocasiones nos interesar\u00e1 a\u00f1adir otras columnas al \u00edndice por las que no se va a filtrar pero si vamos a querer recuperar. Para esto tenemos la opci\u00f3n de incluir columnas. Es importante que no vayamos a filtrar por las columnas incluidas ya que estas no se van a escribir en los niveles ra\u00edz e intermedios de nuestro \u00edndice nonclustered y solo van a estar en el nivel hoja. Si antes dec\u00edamos que un \u00edndice nonclustered solo puede tener 16 columnas clave, como columnas incluidas podemos tener hasta 1023.&nbsp;<\/span><\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-que-columnas-anado-a-mi-indice\"><span style=\"font-weight: 400\">\u00bfQu\u00e9 columnas a\u00f1ado a mi \u00edndice?<\/span><\/h3>\n\n\n\n<p><span style=\"font-weight: 400\">A estas alturas ya sabemos las implicaciones para el rendimiento de los \u00edndices y la teor\u00eda, llega el momento de ponernos a crearlo. Hemos visto que no es recomendable crear \u00edndices con claves muy largas as\u00ed que, crearemos las columnas clave que normalmente se usan para filtrar o agrupar los datos (en el where, join, group by o having de nuestras consultas). Si necesitamos agregar alguna consulta m\u00e1s para cubrir completamente las consultas lo haremos dentro de la cl\u00e1usula INCLUDE.<\/span><\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-conclusion\"><span style=\"font-weight: 400\">Conclusi\u00f3n<\/span><\/h2>\n\n\n\n<p><span style=\"font-weight: 400\">Hemos visto c\u00f3mo funcionan los \u00edndices nonclustered y como son un arma de doble filo para el rendimiento de nuestra base de datos. Sin haberlo comentado hasta ahora, pero interiorizando los conceptos que hemos aprendido tambi\u00e9n vamos a ser capaces de entender por qu\u00e9 no es una buena idea a\u00f1adir todas las columnas de nuestra tabla en un \u00edndice nonclustered. Otra ense\u00f1anza que nos llevamos es el hecho de qu\u00e9 si un \u00edndice nonclustered puede cubrir completamente las consultas hacer select * es una pr\u00e1ctica a evitar si queremos mejorar el rendimiento.&nbsp;<\/span><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Continuamos nuestra serie de \u00cdndices en SQL Server. Despu\u00e9s de una introducci\u00f3n y de profundizar en las tablas HEAP y los \u00edndices clustered ha llegado el turno de los \u00edndices nonclustered. Durante este blog vamos a profundizar en su funcionamiento, cu\u00e1l es la mejor estrategia para crearlos y responderemos a la pregunta de si son&#8230; <a class=\"more-link\" href=\"https:\/\/www.codemotion.com\/magazine\/es\/backend-es\/indices-nonclustered-indices-parte-4\/\">Read more<\/a><\/p>\n","protected":false},"author":321,"featured_media":32707,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_editorskit_title_hidden":false,"_editorskit_reading_time":0,"_editorskit_is_block_options_detached":false,"_editorskit_block_options_position":"{}","_uag_custom_page_level_css":"","_genesis_hide_title":false,"_genesis_hide_breadcrumbs":false,"_genesis_hide_singular_image":false,"_genesis_hide_footer_widgets":false,"_genesis_custom_body_class":"","_genesis_custom_post_class":"","_genesis_layout":"","footnotes":""},"categories":[10606],"tags":[],"collections":[13134,13126,13130,13132,13139,13136,13128],"class_list":{"0":"post-32396","1":"post","2":"type-post","3":"status-publish","4":"format-standard","5":"has-post-thumbnail","7":"category-backend-es","8":"collections-bases-de-datos","9":"collections-databases","10":"collections-indexes","11":"collections-indices","12":"collections-rendimiento","13":"collections-sql","14":"collections-sql-server","15":"entry"},"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v26.9 (Yoast SEO v26.9) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>\u00cdndices Nonclustered (\u00cdndices parte 4) - Codemotion Magazine<\/title>\n<meta name=\"description\" content=\"Cuarta entrega de la serie de \u00edndices en SQL Server. Aprende todo sobre los \u00edndices nonclustered. \u00bfSon buenos para el rendimiento?\" \/>\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.codemotion.com\/magazine\/es\/backend-es\/indices-nonclustered-indices-parte-4\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"\u00cdndices Nonclustered (\u00cdndices parte 4)\" \/>\n<meta property=\"og:description\" content=\"Cuarta entrega de la serie de \u00edndices en SQL Server. Aprende todo sobre los \u00edndices nonclustered. \u00bfSon buenos para el rendimiento?\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.codemotion.com\/magazine\/es\/backend-es\/indices-nonclustered-indices-parte-4\/\" \/>\n<meta property=\"og:site_name\" content=\"Codemotion Magazine\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/Codemotion.Italy\/\" \/>\n<meta property=\"article:published_time\" content=\"2025-04-15T08:24:17+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-04-15T08:24:20+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2025\/03\/556-scaled.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"2560\" \/>\n\t<meta property=\"og:image:height\" content=\"1920\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Roberto Carrancio\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@soy_dba\" \/>\n<meta name=\"twitter:site\" content=\"@CodemotionIT\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Roberto Carrancio\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"5 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.codemotion.com\/magazine\/es\/backend-es\/indices-nonclustered-indices-parte-4\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.codemotion.com\/magazine\/es\/backend-es\/indices-nonclustered-indices-parte-4\/\"},\"author\":{\"name\":\"Roberto Carrancio\",\"@id\":\"https:\/\/www.codemotion.com\/magazine\/#\/schema\/person\/97a034bd0d0536df0240ef899434fa19\"},\"headline\":\"\u00cdndices Nonclustered (\u00cdndices parte 4)\",\"datePublished\":\"2025-04-15T08:24:17+00:00\",\"dateModified\":\"2025-04-15T08:24:20+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.codemotion.com\/magazine\/es\/backend-es\/indices-nonclustered-indices-parte-4\/\"},\"wordCount\":986,\"publisher\":{\"@id\":\"https:\/\/www.codemotion.com\/magazine\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.codemotion.com\/magazine\/es\/backend-es\/indices-nonclustered-indices-parte-4\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2025\/03\/556-scaled.jpg\",\"articleSection\":[\"Backend\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.codemotion.com\/magazine\/es\/backend-es\/indices-nonclustered-indices-parte-4\/\",\"url\":\"https:\/\/www.codemotion.com\/magazine\/es\/backend-es\/indices-nonclustered-indices-parte-4\/\",\"name\":\"\u00cdndices Nonclustered (\u00cdndices parte 4) - Codemotion Magazine\",\"isPartOf\":{\"@id\":\"https:\/\/www.codemotion.com\/magazine\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.codemotion.com\/magazine\/es\/backend-es\/indices-nonclustered-indices-parte-4\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.codemotion.com\/magazine\/es\/backend-es\/indices-nonclustered-indices-parte-4\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2025\/03\/556-scaled.jpg\",\"datePublished\":\"2025-04-15T08:24:17+00:00\",\"dateModified\":\"2025-04-15T08:24:20+00:00\",\"description\":\"Cuarta entrega de la serie de \u00edndices en SQL Server. Aprende todo sobre los \u00edndices nonclustered. \u00bfSon buenos para el rendimiento?\",\"breadcrumb\":{\"@id\":\"https:\/\/www.codemotion.com\/magazine\/es\/backend-es\/indices-nonclustered-indices-parte-4\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.codemotion.com\/magazine\/es\/backend-es\/indices-nonclustered-indices-parte-4\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.codemotion.com\/magazine\/es\/backend-es\/indices-nonclustered-indices-parte-4\/#primaryimage\",\"url\":\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2025\/03\/556-scaled.jpg\",\"contentUrl\":\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2025\/03\/556-scaled.jpg\",\"width\":2560,\"height\":1920},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.codemotion.com\/magazine\/es\/backend-es\/indices-nonclustered-indices-parte-4\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.codemotion.com\/magazine\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Backend\",\"item\":\"https:\/\/www.codemotion.com\/magazine\/es\/backend-es\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"\u00cdndices Nonclustered (\u00cdndices parte 4)\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.codemotion.com\/magazine\/#website\",\"url\":\"https:\/\/www.codemotion.com\/magazine\/\",\"name\":\"Codemotion Magazine\",\"description\":\"We code the future. Together\",\"publisher\":{\"@id\":\"https:\/\/www.codemotion.com\/magazine\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.codemotion.com\/magazine\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.codemotion.com\/magazine\/#organization\",\"name\":\"Codemotion\",\"url\":\"https:\/\/www.codemotion.com\/magazine\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.codemotion.com\/magazine\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/11\/codemotionlogo.png\",\"contentUrl\":\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/11\/codemotionlogo.png\",\"width\":225,\"height\":225,\"caption\":\"Codemotion\"},\"image\":{\"@id\":\"https:\/\/www.codemotion.com\/magazine\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/Codemotion.Italy\/\",\"https:\/\/x.com\/CodemotionIT\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.codemotion.com\/magazine\/#\/schema\/person\/97a034bd0d0536df0240ef899434fa19\",\"name\":\"Roberto Carrancio\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.codemotion.com\/magazine\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2025\/06\/2-100x100.png\",\"contentUrl\":\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2025\/06\/2-100x100.png\",\"caption\":\"Roberto Carrancio\"},\"description\":\"Mi nombre es Roberto Carrancio y soy un DBA de SQL server con m\u00e1s de 12 a\u00f1os de experiencia en el sector. Recientemente he sido reconocido como Microsoft MVP en la categor\u00eda Data Platform en SQL Server y en Azure SQL. Durante mis a\u00f1os de experiencia he tenido oportunidad de lidiar con proyectos en compa\u00f1\u00edas de todos los tama\u00f1os y sectores, desde pymes hasta grandes multinacionales. Tambi\u00e9n soy el creador del blog soydba.es donde intento publicar varios art\u00edculos a la semana.\",\"sameAs\":[\"https:\/\/www.soydba.es\",\"https:\/\/www.linkedin.com\/in\/robertocarrancio\/\",\"https:\/\/x.com\/soy_dba\",\"https:\/\/www.youtube.com\/@SoyDBA\"],\"url\":\"https:\/\/www.codemotion.com\/magazine\/author\/rocarrancio\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"\u00cdndices Nonclustered (\u00cdndices parte 4) - Codemotion Magazine","description":"Cuarta entrega de la serie de \u00edndices en SQL Server. Aprende todo sobre los \u00edndices nonclustered. \u00bfSon buenos para el rendimiento?","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.codemotion.com\/magazine\/es\/backend-es\/indices-nonclustered-indices-parte-4\/","og_locale":"en_US","og_type":"article","og_title":"\u00cdndices Nonclustered (\u00cdndices parte 4)","og_description":"Cuarta entrega de la serie de \u00edndices en SQL Server. Aprende todo sobre los \u00edndices nonclustered. \u00bfSon buenos para el rendimiento?","og_url":"https:\/\/www.codemotion.com\/magazine\/es\/backend-es\/indices-nonclustered-indices-parte-4\/","og_site_name":"Codemotion Magazine","article_publisher":"https:\/\/www.facebook.com\/Codemotion.Italy\/","article_published_time":"2025-04-15T08:24:17+00:00","article_modified_time":"2025-04-15T08:24:20+00:00","og_image":[{"width":2560,"height":1920,"url":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2025\/03\/556-scaled.jpg","type":"image\/jpeg"}],"author":"Roberto Carrancio","twitter_card":"summary_large_image","twitter_creator":"@soy_dba","twitter_site":"@CodemotionIT","twitter_misc":{"Written by":"Roberto Carrancio","Est. reading time":"5 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.codemotion.com\/magazine\/es\/backend-es\/indices-nonclustered-indices-parte-4\/#article","isPartOf":{"@id":"https:\/\/www.codemotion.com\/magazine\/es\/backend-es\/indices-nonclustered-indices-parte-4\/"},"author":{"name":"Roberto Carrancio","@id":"https:\/\/www.codemotion.com\/magazine\/#\/schema\/person\/97a034bd0d0536df0240ef899434fa19"},"headline":"\u00cdndices Nonclustered (\u00cdndices parte 4)","datePublished":"2025-04-15T08:24:17+00:00","dateModified":"2025-04-15T08:24:20+00:00","mainEntityOfPage":{"@id":"https:\/\/www.codemotion.com\/magazine\/es\/backend-es\/indices-nonclustered-indices-parte-4\/"},"wordCount":986,"publisher":{"@id":"https:\/\/www.codemotion.com\/magazine\/#organization"},"image":{"@id":"https:\/\/www.codemotion.com\/magazine\/es\/backend-es\/indices-nonclustered-indices-parte-4\/#primaryimage"},"thumbnailUrl":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2025\/03\/556-scaled.jpg","articleSection":["Backend"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/www.codemotion.com\/magazine\/es\/backend-es\/indices-nonclustered-indices-parte-4\/","url":"https:\/\/www.codemotion.com\/magazine\/es\/backend-es\/indices-nonclustered-indices-parte-4\/","name":"\u00cdndices Nonclustered (\u00cdndices parte 4) - Codemotion Magazine","isPartOf":{"@id":"https:\/\/www.codemotion.com\/magazine\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.codemotion.com\/magazine\/es\/backend-es\/indices-nonclustered-indices-parte-4\/#primaryimage"},"image":{"@id":"https:\/\/www.codemotion.com\/magazine\/es\/backend-es\/indices-nonclustered-indices-parte-4\/#primaryimage"},"thumbnailUrl":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2025\/03\/556-scaled.jpg","datePublished":"2025-04-15T08:24:17+00:00","dateModified":"2025-04-15T08:24:20+00:00","description":"Cuarta entrega de la serie de \u00edndices en SQL Server. Aprende todo sobre los \u00edndices nonclustered. \u00bfSon buenos para el rendimiento?","breadcrumb":{"@id":"https:\/\/www.codemotion.com\/magazine\/es\/backend-es\/indices-nonclustered-indices-parte-4\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.codemotion.com\/magazine\/es\/backend-es\/indices-nonclustered-indices-parte-4\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.codemotion.com\/magazine\/es\/backend-es\/indices-nonclustered-indices-parte-4\/#primaryimage","url":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2025\/03\/556-scaled.jpg","contentUrl":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2025\/03\/556-scaled.jpg","width":2560,"height":1920},{"@type":"BreadcrumbList","@id":"https:\/\/www.codemotion.com\/magazine\/es\/backend-es\/indices-nonclustered-indices-parte-4\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.codemotion.com\/magazine\/"},{"@type":"ListItem","position":2,"name":"Backend","item":"https:\/\/www.codemotion.com\/magazine\/es\/backend-es\/"},{"@type":"ListItem","position":3,"name":"\u00cdndices Nonclustered (\u00cdndices parte 4)"}]},{"@type":"WebSite","@id":"https:\/\/www.codemotion.com\/magazine\/#website","url":"https:\/\/www.codemotion.com\/magazine\/","name":"Codemotion Magazine","description":"We code the future. Together","publisher":{"@id":"https:\/\/www.codemotion.com\/magazine\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.codemotion.com\/magazine\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.codemotion.com\/magazine\/#organization","name":"Codemotion","url":"https:\/\/www.codemotion.com\/magazine\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.codemotion.com\/magazine\/#\/schema\/logo\/image\/","url":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/11\/codemotionlogo.png","contentUrl":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/11\/codemotionlogo.png","width":225,"height":225,"caption":"Codemotion"},"image":{"@id":"https:\/\/www.codemotion.com\/magazine\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/Codemotion.Italy\/","https:\/\/x.com\/CodemotionIT"]},{"@type":"Person","@id":"https:\/\/www.codemotion.com\/magazine\/#\/schema\/person\/97a034bd0d0536df0240ef899434fa19","name":"Roberto Carrancio","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.codemotion.com\/magazine\/#\/schema\/person\/image\/","url":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2025\/06\/2-100x100.png","contentUrl":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2025\/06\/2-100x100.png","caption":"Roberto Carrancio"},"description":"Mi nombre es Roberto Carrancio y soy un DBA de SQL server con m\u00e1s de 12 a\u00f1os de experiencia en el sector. Recientemente he sido reconocido como Microsoft MVP en la categor\u00eda Data Platform en SQL Server y en Azure SQL. Durante mis a\u00f1os de experiencia he tenido oportunidad de lidiar con proyectos en compa\u00f1\u00edas de todos los tama\u00f1os y sectores, desde pymes hasta grandes multinacionales. Tambi\u00e9n soy el creador del blog soydba.es donde intento publicar varios art\u00edculos a la semana.","sameAs":["https:\/\/www.soydba.es","https:\/\/www.linkedin.com\/in\/robertocarrancio\/","https:\/\/x.com\/soy_dba","https:\/\/www.youtube.com\/@SoyDBA"],"url":"https:\/\/www.codemotion.com\/magazine\/author\/rocarrancio\/"}]}},"featured_image_src":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2025\/03\/556-scaled.jpg","featured_image_src_square":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2025\/03\/556-scaled.jpg","author_info":{"display_name":"Roberto Carrancio","author_link":"https:\/\/www.codemotion.com\/magazine\/author\/rocarrancio\/"},"uagb_featured_image_src":{"full":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2025\/03\/556-scaled.jpg",2560,1920,false],"thumbnail":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2025\/03\/556-150x150.jpg",150,150,true],"medium":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2025\/03\/556-300x225.jpg",300,225,true],"medium_large":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2025\/03\/556-768x576.jpg",768,576,true],"large":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2025\/03\/556-1024x768.jpg",1024,768,true],"1536x1536":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2025\/03\/556-1536x1152.jpg",1536,1152,true],"2048x2048":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2025\/03\/556-scaled.jpg",2048,1536,false],"small-home-featured":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2025\/03\/556-scaled.jpg",100,75,false],"sidebar-featured":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2025\/03\/556-scaled.jpg",171,128,false],"genesis-singular-images":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2025\/03\/556-scaled.jpg",672,504,false],"archive-featured":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2025\/03\/556-scaled.jpg",300,225,false],"gb-block-post-grid-landscape":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2025\/03\/556-scaled.jpg",533,400,false],"gb-block-post-grid-square":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2025\/03\/556-scaled.jpg",600,450,false]},"uagb_author_info":{"display_name":"Roberto Carrancio","author_link":"https:\/\/www.codemotion.com\/magazine\/author\/rocarrancio\/"},"uagb_comment_info":0,"uagb_excerpt":"Continuamos nuestra serie de \u00cdndices en SQL Server. Despu\u00e9s de una introducci\u00f3n y de profundizar en las tablas HEAP y los \u00edndices clustered ha llegado el turno de los \u00edndices nonclustered. Durante este blog vamos a profundizar en su funcionamiento, cu\u00e1l es la mejor estrategia para crearlos y responderemos a la pregunta de si son&#8230;&hellip;","lang":"es","_links":{"self":[{"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/posts\/32396","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/users\/321"}],"replies":[{"embeddable":true,"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/comments?post=32396"}],"version-history":[{"count":1,"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/posts\/32396\/revisions"}],"predecessor-version":[{"id":32397,"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/posts\/32396\/revisions\/32397"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/media\/32707"}],"wp:attachment":[{"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/media?parent=32396"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/categories?post=32396"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/tags?post=32396"},{"taxonomy":"collections","embeddable":true,"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/collections?post=32396"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}