{"id":32398,"date":"2025-05-26T15:34:19","date_gmt":"2025-05-26T13:34:19","guid":{"rendered":"https:\/\/www.codemotion.com\/magazine\/?p=32398"},"modified":"2025-05-26T15:34:21","modified_gmt":"2025-05-26T13:34:21","slug":"indices-columnares-en-sql-server-parte-5","status":"publish","type":"post","link":"https:\/\/www.codemotion.com\/magazine\/es\/backend-es\/indices-columnares-en-sql-server-parte-5\/","title":{"rendered":"\u00cdndices Columnares en SQL Server  (parte 5)"},"content":{"rendered":"\n<p><span style=\"font-weight: 400\">Quinta entrega de nuestra serie de \u00edndices y a\u00fan nos queda mucho que ordenar. Despu\u00e9s de haber visto los tipos de \u00edndices m\u00e1s comunes, hoy nos vamos a adentrar en los \u00edndices columnares, un tipo de \u00edndice no tan conocido pero muy usado en entornos OLAP y datawarehouse. Esto no es casualidad, veremos que, por sus caracter\u00edsticas, son ideales para almacenar la informaci\u00f3n de las tablas de hechos en entornos donde se ejecutan gran cantidad de consultas complejas.&nbsp;<\/span><\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-estructura-de-los-indices-columnares\"><span style=\"font-weight: 400\">Estructura de los \u00edndices columnares<\/span><\/h2>\n\n\n\n<p><span style=\"font-weight: 400\">Como hemos estado viendo hasta ahora los datos en SQL se almacenan en p\u00e1ginas de 8Kb donde vamos a guardar la informaci\u00f3n fila a fila de nuestra tabla. Cada p\u00e1gina contiene N filas completas, es decir todas sus columnas (excepto las grandes que se almacenan en p\u00e1ginas LOB o ROW_OVERFLOW). Con los \u00edndices columnares vamos a dejar este paradigma y vamos a ver que, gracias a la tecnolog\u00eda de compresi\u00f3n VertiPaq, la informaci\u00f3n se almacena por columnas y no por filas. Tampoco vamos a hablar de p\u00e1ginas sino de segmentos. Una columna tendr\u00e1 uno o m\u00e1s segmentos de datos. Aunque cambiemos el t\u00e9rmino ten\u00e9is que saber que un segmento es una p\u00e1gina que almacena datos de una \u00fanica columna.<\/span><br><span style=\"font-weight: 400\">Esto nos va a permitir reducir la E\/S en gran medida al leer solo algunas columnas de la tabla ya que no vamos a tener que recuperar las filas completas de datos para luego mostrar unas cuantas columnas. Otra de las ventajas que tiene es que permite comprimir los datos<\/span>. N<span style=\"font-weight: 400\">ormalmente los datos de una columna suelen repetirse y los \u00edndices columnares se aprovechan de eso escribiendo el dato solo una vez y a\u00f1adiendo punteros a ese valor el resto de las veces. Esto se traduce en unas 10 veces menos consumo de disco y unas 10 veces mejor rendimiento en consultas pesadas.<\/span><\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-tipos-de-indices-columnares\"><span style=\"font-weight: 400\">Tipos de \u00edndices columnares<\/span><\/h2>\n\n\n\n<p><span style=\"font-weight: 400\">Al igual que en los \u00edndices de \u00e1rbol B vamos a tener \u00edndices columnares clustered y nonclustered. Cada uno de ellos ser\u00e1 ideal para un escenario concreto como vamos a ver a continuaci\u00f3n.&nbsp;<\/span><\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-indice-columnar-clustered\"><span style=\"font-weight: 400\">\u00cdndice columnar clustered<\/span><\/h3>\n\n\n\n<p><span style=\"font-weight: 400\">Al igual que con los \u00edndices de almacenamiento de filas (o de \u00e1rbol B) este \u00edndice columnar clustered convierte toda nuestra tabla a almacenamiento de columnas. Sin embargo, no todos nuestros datos se almacenan en formato columnar, hasta que no tengamos aproximadamente un mill\u00f3n de filas los datos se almacenar\u00e1n en un grupo de filas delta.&nbsp;<\/span><\/p>\n\n\n<div class=\"wp-block-image\">\n<figure data-wp-context=\"{&quot;imageId&quot;:&quot;69e4dece7f1a5&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\/CCI-300x232.gif\" alt=\"\u00cdndices Columnares\" class=\"wp-image-260\" \/><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\">Los grupos de filas delta (almac\u00e9n delta) son estructuras de \u00e1rbol B especialmente dise\u00f1adas para trabajar con almac\u00e9n de columnas.&nbsp;Cuando un grupo de filas delta llega a 1.048.576 filas pasa de estado OPEN a CLOSED. En ese momento, un proceso en segundo plano llamado <\/span><b>motor de tupla<\/b><span style=\"font-weight: 400\"> comprime el contenido y lo copia al almac\u00e9n columnar. El grupo de filas en el almac\u00e9n columnar pasa a estado COMPRESSED y el grupo del almac\u00e9n delta se marca para borrar, estado TOMBSTONE (muy po\u00e9tico todo).<\/span><\/p>\n\n\n\n<p>Hay una excepci\u00f3n a todo esto que hemos visto y son las cargas masivas o bulk insert. Cuando se produce una carga masiva sobre una tabla con un \u00edndice columnar clustered las filas van directamente al almac\u00e9n de columnas. Se van guardando en grupos CLOSED de un mill\u00f3n de filas. Al finalizar, si el \u00faltimo grupo de filas<span style=\"font-weight: 400\"> tiene menos del m\u00ednimo de filas permitido (102.400) e<\/span>l grupo <span style=\"font-weight: 400\">se mover\u00e1 a un almac\u00e9n delta. <\/span><br><span style=\"font-weight: 400\">Si la carga <\/span>masiva directamente<span style=\"font-weight: 400\"> es inferior a ese valor m\u00ednimo se cargar\u00e1 directamente en un almac\u00e9n delta.&nbsp;<\/span><\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-indice-columnar-nonclustered\"><span style=\"font-weight: 400\">\u00cdndice columnar nonclustered<\/span><\/h3>\n\n\n\n<p><span style=\"font-weight: 400\">No nos vamos a extender mucho, un \u00edndice columnar nonclustered funciona igual que un \u00edndice columnar clustered. La diferencia es que se almacena separado de la tabla y puede contener desde solo una columna hasta todas las de la tabla.&nbsp;<\/span><\/p>\n\n\n\n<p><span style=\"font-weight: 400\">Podemos crear un \u00edndice columnar nonclustered sobre tablas de \u00e1rbol B (almacenamiento cl\u00e1sico de filas) lo que nos permite aprovecharnos de las ventajas de estos \u00edndices sin sus inconvenientes.<\/span><\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-cuando-elegir-un-indice-columnar\"><span style=\"font-weight: 400\">Cu\u00e1ndo elegir un \u00edndice columnar<\/span><\/h2>\n\n\n\n<p><span style=\"font-weight: 400\">Acabo de deciros que los \u00edndices columnares tienen inconvenientes, pero \u00bfcu\u00e1les son? Hasta ahora hemos visto que un \u00edndice columnar reduce el consumo de disco y mejora el rendimiento en consultas pesadas. Gracias a su estructura est\u00e1n especialmente dise\u00f1ados para funciones de agregaci\u00f3n como sumas, c\u00e1lculos de valores promedio y en general cualquier operaci\u00f3n que implique trabajar con datos de una sola columna. Sin embargo, esto <\/span>que<span style=\"font-weight: 400\"> los hace buenos en entornos OLAP los hace especialmente malos en b\u00fasquedas de un valor concreto t\u00edpicas de un entorno transaccional (OLTP).&nbsp;<\/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 aprendido qu\u00e9 son y c\u00f3mo se organizan los \u00edndices columnares. Tambi\u00e9n podemos entender cu\u00e1ndo debemos usarlos. Para las tablas de hechos de nuestro datawarehouse lo mejor s<\/span>on <span style=\"font-weight: 400\">los \u00edndices columnares clustered mientras que para la mayor\u00eda de entornos transaccionales no nos ser\u00e1n de ayuda. Sin embargo, en la vida real es com\u00fan que los departamentos de an\u00e1lisis, adem\u00e1s de trabajar sobre sus entornos OLAP, realicen consultas en caliente sobre entornos OLTP y es donde m\u00e1s partido podremos sacar de los \u00edndices columnares nonclustered. Tambi\u00e9n para informes de las propias aplicaciones, no tenemos por qu\u00e9 irnos a informes de departamentos espec\u00edficos.<\/span><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Quinta entrega de nuestra serie de \u00edndices y a\u00fan nos queda mucho que ordenar. Despu\u00e9s de haber visto los tipos de \u00edndices m\u00e1s comunes, hoy nos vamos a adentrar en los \u00edndices columnares, un tipo de \u00edndice no tan conocido pero muy usado en entornos OLAP y datawarehouse. Esto no es casualidad, veremos que, por&#8230; <a class=\"more-link\" href=\"https:\/\/www.codemotion.com\/magazine\/es\/backend-es\/indices-columnares-en-sql-server-parte-5\/\">Read more<\/a><\/p>\n","protected":false},"author":321,"featured_media":33189,"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-32398","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 Columnares en SQL Server (parte 5) - Codemotion Magazine<\/title>\n<meta name=\"description\" content=\"Quinta entrega de nuestra serie sobre \u00edndices en SQL Server. Aprende hoy qu\u00e9 son los \u00edndices columnares y c\u00f3mo y cu\u00e1ndo usarlos.\" \/>\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-columnares-en-sql-server-parte-5\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"\u00cdndices Columnares en SQL Server (parte 5)\" \/>\n<meta property=\"og:description\" content=\"Quinta entrega de nuestra serie sobre \u00edndices en SQL Server. Aprende hoy qu\u00e9 son los \u00edndices columnares y c\u00f3mo y cu\u00e1ndo usarlos.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.codemotion.com\/magazine\/es\/backend-es\/indices-columnares-en-sql-server-parte-5\/\" \/>\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-05-26T13:34:19+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-05-26T13:34:21+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2025\/03\/6500351-scaled.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"2560\" \/>\n\t<meta property=\"og:image:height\" content=\"1969\" \/>\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-columnares-en-sql-server-parte-5\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.codemotion.com\/magazine\/es\/backend-es\/indices-columnares-en-sql-server-parte-5\/\"},\"author\":{\"name\":\"Roberto Carrancio\",\"@id\":\"https:\/\/www.codemotion.com\/magazine\/#\/schema\/person\/97a034bd0d0536df0240ef899434fa19\"},\"headline\":\"\u00cdndices Columnares en SQL Server (parte 5)\",\"datePublished\":\"2025-05-26T13:34:19+00:00\",\"dateModified\":\"2025-05-26T13:34:21+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.codemotion.com\/magazine\/es\/backend-es\/indices-columnares-en-sql-server-parte-5\/\"},\"wordCount\":913,\"publisher\":{\"@id\":\"https:\/\/www.codemotion.com\/magazine\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.codemotion.com\/magazine\/es\/backend-es\/indices-columnares-en-sql-server-parte-5\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2025\/03\/6500351-scaled.jpg\",\"articleSection\":[\"Backend\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.codemotion.com\/magazine\/es\/backend-es\/indices-columnares-en-sql-server-parte-5\/\",\"url\":\"https:\/\/www.codemotion.com\/magazine\/es\/backend-es\/indices-columnares-en-sql-server-parte-5\/\",\"name\":\"\u00cdndices Columnares en SQL Server (parte 5) - Codemotion Magazine\",\"isPartOf\":{\"@id\":\"https:\/\/www.codemotion.com\/magazine\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.codemotion.com\/magazine\/es\/backend-es\/indices-columnares-en-sql-server-parte-5\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.codemotion.com\/magazine\/es\/backend-es\/indices-columnares-en-sql-server-parte-5\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2025\/03\/6500351-scaled.jpg\",\"datePublished\":\"2025-05-26T13:34:19+00:00\",\"dateModified\":\"2025-05-26T13:34:21+00:00\",\"description\":\"Quinta entrega de nuestra serie sobre \u00edndices en SQL Server. Aprende hoy qu\u00e9 son los \u00edndices columnares y c\u00f3mo y cu\u00e1ndo usarlos.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.codemotion.com\/magazine\/es\/backend-es\/indices-columnares-en-sql-server-parte-5\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.codemotion.com\/magazine\/es\/backend-es\/indices-columnares-en-sql-server-parte-5\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.codemotion.com\/magazine\/es\/backend-es\/indices-columnares-en-sql-server-parte-5\/#primaryimage\",\"url\":\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2025\/03\/6500351-scaled.jpg\",\"contentUrl\":\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2025\/03\/6500351-scaled.jpg\",\"width\":2560,\"height\":1969,\"caption\":\"ia en SQL server actualizacion y busqueda semantica imagen\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.codemotion.com\/magazine\/es\/backend-es\/indices-columnares-en-sql-server-parte-5\/#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 Columnares en SQL Server (parte 5)\"}]},{\"@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 Columnares en SQL Server (parte 5) - Codemotion Magazine","description":"Quinta entrega de nuestra serie sobre \u00edndices en SQL Server. Aprende hoy qu\u00e9 son los \u00edndices columnares y c\u00f3mo y cu\u00e1ndo usarlos.","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-columnares-en-sql-server-parte-5\/","og_locale":"en_US","og_type":"article","og_title":"\u00cdndices Columnares en SQL Server (parte 5)","og_description":"Quinta entrega de nuestra serie sobre \u00edndices en SQL Server. Aprende hoy qu\u00e9 son los \u00edndices columnares y c\u00f3mo y cu\u00e1ndo usarlos.","og_url":"https:\/\/www.codemotion.com\/magazine\/es\/backend-es\/indices-columnares-en-sql-server-parte-5\/","og_site_name":"Codemotion Magazine","article_publisher":"https:\/\/www.facebook.com\/Codemotion.Italy\/","article_published_time":"2025-05-26T13:34:19+00:00","article_modified_time":"2025-05-26T13:34:21+00:00","og_image":[{"width":2560,"height":1969,"url":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2025\/03\/6500351-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-columnares-en-sql-server-parte-5\/#article","isPartOf":{"@id":"https:\/\/www.codemotion.com\/magazine\/es\/backend-es\/indices-columnares-en-sql-server-parte-5\/"},"author":{"name":"Roberto Carrancio","@id":"https:\/\/www.codemotion.com\/magazine\/#\/schema\/person\/97a034bd0d0536df0240ef899434fa19"},"headline":"\u00cdndices Columnares en SQL Server (parte 5)","datePublished":"2025-05-26T13:34:19+00:00","dateModified":"2025-05-26T13:34:21+00:00","mainEntityOfPage":{"@id":"https:\/\/www.codemotion.com\/magazine\/es\/backend-es\/indices-columnares-en-sql-server-parte-5\/"},"wordCount":913,"publisher":{"@id":"https:\/\/www.codemotion.com\/magazine\/#organization"},"image":{"@id":"https:\/\/www.codemotion.com\/magazine\/es\/backend-es\/indices-columnares-en-sql-server-parte-5\/#primaryimage"},"thumbnailUrl":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2025\/03\/6500351-scaled.jpg","articleSection":["Backend"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/www.codemotion.com\/magazine\/es\/backend-es\/indices-columnares-en-sql-server-parte-5\/","url":"https:\/\/www.codemotion.com\/magazine\/es\/backend-es\/indices-columnares-en-sql-server-parte-5\/","name":"\u00cdndices Columnares en SQL Server (parte 5) - Codemotion Magazine","isPartOf":{"@id":"https:\/\/www.codemotion.com\/magazine\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.codemotion.com\/magazine\/es\/backend-es\/indices-columnares-en-sql-server-parte-5\/#primaryimage"},"image":{"@id":"https:\/\/www.codemotion.com\/magazine\/es\/backend-es\/indices-columnares-en-sql-server-parte-5\/#primaryimage"},"thumbnailUrl":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2025\/03\/6500351-scaled.jpg","datePublished":"2025-05-26T13:34:19+00:00","dateModified":"2025-05-26T13:34:21+00:00","description":"Quinta entrega de nuestra serie sobre \u00edndices en SQL Server. Aprende hoy qu\u00e9 son los \u00edndices columnares y c\u00f3mo y cu\u00e1ndo usarlos.","breadcrumb":{"@id":"https:\/\/www.codemotion.com\/magazine\/es\/backend-es\/indices-columnares-en-sql-server-parte-5\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.codemotion.com\/magazine\/es\/backend-es\/indices-columnares-en-sql-server-parte-5\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.codemotion.com\/magazine\/es\/backend-es\/indices-columnares-en-sql-server-parte-5\/#primaryimage","url":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2025\/03\/6500351-scaled.jpg","contentUrl":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2025\/03\/6500351-scaled.jpg","width":2560,"height":1969,"caption":"ia en SQL server actualizacion y busqueda semantica imagen"},{"@type":"BreadcrumbList","@id":"https:\/\/www.codemotion.com\/magazine\/es\/backend-es\/indices-columnares-en-sql-server-parte-5\/#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 Columnares en SQL Server (parte 5)"}]},{"@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\/6500351-600x400.jpg","featured_image_src_square":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2025\/03\/6500351-600x600.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\/6500351-scaled.jpg",2560,1969,false],"thumbnail":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2025\/03\/6500351-150x150.jpg",150,150,true],"medium":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2025\/03\/6500351-300x231.jpg",300,231,true],"medium_large":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2025\/03\/6500351-768x591.jpg",768,591,true],"large":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2025\/03\/6500351-1024x788.jpg",1024,788,true],"1536x1536":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2025\/03\/6500351-1536x1182.jpg",1536,1182,true],"2048x2048":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2025\/03\/6500351-2048x1575.jpg",2048,1575,true],"small-home-featured":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2025\/03\/6500351-100x100.jpg",100,100,true],"sidebar-featured":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2025\/03\/6500351-180x128.jpg",180,128,true],"genesis-singular-images":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2025\/03\/6500351-896x504.jpg",896,504,true],"archive-featured":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2025\/03\/6500351-400x225.jpg",400,225,true],"gb-block-post-grid-landscape":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2025\/03\/6500351-600x400.jpg",600,400,true],"gb-block-post-grid-square":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2025\/03\/6500351-600x600.jpg",600,600,true]},"uagb_author_info":{"display_name":"Roberto Carrancio","author_link":"https:\/\/www.codemotion.com\/magazine\/author\/rocarrancio\/"},"uagb_comment_info":0,"uagb_excerpt":"Quinta entrega de nuestra serie de \u00edndices y a\u00fan nos queda mucho que ordenar. Despu\u00e9s de haber visto los tipos de \u00edndices m\u00e1s comunes, hoy nos vamos a adentrar en los \u00edndices columnares, un tipo de \u00edndice no tan conocido pero muy usado en entornos OLAP y datawarehouse. Esto no es casualidad, veremos que, por&#8230;&hellip;","lang":"es","_links":{"self":[{"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/posts\/32398","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=32398"}],"version-history":[{"count":2,"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/posts\/32398\/revisions"}],"predecessor-version":[{"id":33190,"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/posts\/32398\/revisions\/33190"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/media\/33189"}],"wp:attachment":[{"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/media?parent=32398"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/categories?post=32398"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/tags?post=32398"},{"taxonomy":"collections","embeddable":true,"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/collections?post=32398"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}