{"id":32402,"date":"2025-05-26T16:05:29","date_gmt":"2025-05-26T14:05:29","guid":{"rendered":"https:\/\/www.codemotion.com\/magazine\/?p=32402"},"modified":"2025-05-26T16:07:27","modified_gmt":"2025-05-26T14:07:27","slug":"uso-llenado-y-mantenimiento-de-indices-en-sql-server","status":"publish","type":"post","link":"https:\/\/www.codemotion.com\/magazine\/es\/backend-es\/uso-llenado-y-mantenimiento-de-indices-en-sql-server\/","title":{"rendered":"Uso, llenado y mantenimiento de \u00edndices en SQL Server"},"content":{"rendered":"\n<p><span style=\"font-weight: 400\">A lo largo de las pasadas 6 entradas hemos repasado todos los distintos tipos de \u00edndices en SQL Server. Sin embargo, hay aspectos que, aunque comentamos por encima en la introducci\u00f3n, no hab\u00edamos vuelto a profundizar y son lo<\/span>s<span style=\"font-weight: 400\"> que vamos a ver. Durante estas l\u00edneas vamos a hablar sobre cu\u00e1ndo y c\u00f3mo SQL Server hace uso de los \u00edndices. Adem\u00e1s, veremos c\u00f3mo se van llenando las p\u00e1ginas y c\u00f3mo podemos influir nosotros en ello, un aspecto que afectar\u00e1 a la fragmentaci\u00f3n.&nbsp;<\/span>Por \u00faltimo aprenderemos c\u00f3mo crear un plan de mantenimiento que solucione este problema.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-uso-de-indices-y-estadisticas\"><span style=\"font-weight: 400\">Uso de \u00edndices y estad\u00edsticas<\/span><\/h2>\n\n\n\n<p><span style=\"font-weight: 400\">Sea cual sea el \u00edndice que creemos, SQL Server generar\u00e1 una estad\u00edstica sobre \u00e9l. De esta manera, podr\u00e1 decidir si es recomendable buscar los registros a trav\u00e9s de los niveles del&nbsp; \u00e1rbol B, leer directamente el nivel de hoja en busca de los registros o recorrer enteramente la tabla y no usar el \u00edndice.&nbsp;<\/span><\/p>\n\n\n\n<p><span style=\"font-weight: 400\">Cuando ejecutamos una consulta, SQL Server calcular\u00e1 distintos planes de ejecuci\u00f3n con todas las opciones de recuperar los datos. En una tabla peque\u00f1a de menos de 10.000 p\u00e1ginas es f\u00e1cil, se va a leer la tabla y no se usar\u00e1n los \u00edndices nonclustered. Cuando tiene m\u00e1s, se usar\u00e1n las estad\u00edsticas de los \u00edndices nonclustered para calcular el porcentaje de registros que se van a recuperar. En funci\u00f3n de esos datos asignar\u00e1 un coste a cada uno de los planes de ejecuci\u00f3n. Con todos los costes calculados se elegir\u00e1 la mejor opci\u00f3n.<\/span><\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-llenado-de-indices-y-tablas\"><span style=\"font-weight: 400\">Llenado de \u00edndices y tablas<\/span><\/h2>\n\n\n\n<p><span style=\"font-weight: 400\">Hemos comentado en varias ocasiones que los datos en SQL se escriben en p\u00e1ginas.<\/span> V<span style=\"font-weight: 400\">imos que en las tablas HEAP que los datos se escriben en el primer hueco libre disponible y, a la hora de editar, si el nuevo valor no cabe se mueve al final.<\/span> Esto<span style=\"font-weight: 400\"> genera<\/span>ba<span style=\"font-weight: 400\"> punteros de reenv\u00edo y fragmentaci\u00f3n.<\/span><\/p>\n\n\n\n<p><span style=\"font-weight: 400\">En el caso de los \u00edndices clustered y nonclustered los datos se escriben en p\u00e1ginas igualmente. SQL Server intentar\u00e1 escribir el datos en su sitio pero, solo lo har\u00e1 si hay sitio libre.<\/span> S<span style=\"font-weight: 400\">i no lo hay, lo escribir\u00e1 en el espacio libre m\u00e1s pr\u00f3ximo.&nbsp;<\/span><\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-fill-factor\"><span style=\"font-weight: 400\">Fill Factor<\/span><\/h3>\n\n\n\n<p><span style=\"font-weight: 400\">Dado este comportamiento, para reducir al m\u00e1ximo la fragmentaci\u00f3n y aprovechar el espacio de manera \u00f3ptima podemos definir en los \u00edndices un nivel de llenado o Fill Factor. Este Fill Factor es un porcentaje que indicar\u00e1 al SQL cu\u00e1nto espacio de las p\u00e1ginas de los \u00edndices se va a llenar de datos (no aplica para tablas HEAP). Por tanto, podremos controlar cu\u00e1nto espacio se va a dejar libre al final de las p\u00e1ginas. <\/span><br><span style=\"font-weight: 400\">Podremos definir un nivel gen\u00e9rico en las propiedades de la instancia adem\u00e1s de uno particular para cada \u00edndice si no queremos que use el gen\u00e9rico.<\/span> <span style=\"font-weight: 400\">Si no definimos otra cosa el fill factor ser\u00e1 del 100%, es decir SQL tratar\u00e1 de llenar completamente las p\u00e1ginas. Esto puede ser una buena idea para \u00edndices en campos incrementales que nunca se editan. Sin embargo, si este no es el caso, llenar completamente las p\u00e1ginas nos generar\u00e1 tener que mover los datos o no escribirlos donde toca. En resumen, un mayor consumo de E\/S y por tanto peor rendimiento.<\/span><\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-mantenimiento-de-indices\"><span style=\"font-weight: 400\">Mantenimiento de \u00edndices<\/span><\/h2>\n\n\n\n<p><span style=\"font-weight: 400\">Acabamos de ver que muy probablemente nuestros \u00edndices se van a fragmentar con el uso, as\u00ed que, como DBAs, es imprescindible que tengamos una buena pol\u00edtica de mantenimiento que garantice que se encuentren en \u00f3ptimas condiciones. Para ello tenemos varias alternativas, reorganizarlos o reconstruirlos. El m\u00e9todo elegido depender\u00e1 en gran medida de la fragmentaci\u00f3n que tenga el \u00edndice al momento de optimizarlo<\/span>. C<span style=\"font-weight: 400\">omo norma general, reorganizaremos los \u00edndices con menos de un 30% de fragmentaci\u00f3n y reconstruiremos los m\u00e1s fragmentados. <\/span><br><span style=\"font-weight: 400\">Adem\u00e1s, tendremos que implementar tambi\u00e9n un mantenimiento de las estad\u00edsticas, como hemos visto son claves para que el motor de bases de datos calcule los costes de los planes de ejecuci\u00f3n y decida por cu\u00e1l de ellos decantarse. La reconstrucci\u00f3n de \u00edndices conlleva el mantenimiento de estad\u00edsticas, pero la reorganizaci\u00f3n no, por lo que tendremos que hacerlo por separado. Como os coment\u00e9 en el art\u00edculo de las <\/span><a href=\"https:\/\/www.soydba.es\/tareas-diarias-de-un-dba-sql-server\/\"><span style=\"font-weight: 400\">tareas diarias de un DBA<\/span><\/a><span style=\"font-weight: 400\">, yo me decanto por la soluci\u00f3n de <\/span><a href=\"https:\/\/ola.hallengren.com\/sql-server-index-and-statistics-maintenance.html\" target=\"_blank\" rel=\"noreferrer noopener\"><span style=\"font-weight: 400\">olla hallengren<\/span><\/a><span style=\"font-weight: 400\">.&nbsp;<\/span><\/p>\n\n\n\n<p><span style=\"font-weight: 400\">Aunque un mantenimiento de las estad\u00edsticas es clave para el rendimiento de nuestra base de datos no tenemos que caer en el error de ejecutarlo con demasiada frecuencia.Cada vez que se actualizan estad\u00edsticas, todos los planes de ejecuci\u00f3n que tenemos en la cach\u00e9 de SQL Server y que usan esas tablas se van a desechar. Esto provocar\u00e1 que la pr\u00f3xima ejecuci\u00f3n de la consulta necesite recompilar el plan, calcular todas las opciones y elegir el de menos coste. Para esto, la soluci\u00f3n de ola, tiene un par\u00e1metro para solo actualizar las estad\u00edsticas que hayan sufrido modificaciones desde la \u00faltima actualizaci\u00f3n, lo que liberar\u00e1 a SQL Server de carga de trabajo innecesaria.&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\">Dado que con este art\u00edculo cerramos la serie de \u00edndices, permitidme que por una vez me extienda un poco m\u00e1s en la conclusi\u00f3n y recapitulemos todo lo visto. Primero de todo quiero daros las gracias a vosotros, hab\u00e9is llevado las p\u00e1ginas de esta serie a las primeras posiciones de las estad\u00edsticas de visitas del blog en muy pocos d\u00edas.&nbsp;<\/span><\/p>\n\n\n\n<p><span style=\"font-weight: 400\">Ahora ya s\u00ed, entremos en materia. Empezamos esta serie con una introducci\u00f3n donde vimos las estructura de las tablas en SQL Server y descubrimos la importancia de los \u00edndices.<\/span><\/p>\n\n\n\n<p><span style=\"font-weight: 400\">Despu\u00e9s analizamos los distintos tipos de \u00edndices que podemos usar en SQL Server, desde la ausencia de ellos en una tabla HEAP, \u00edndices clustered, nonclustered, columnares y, hasta los \u00edndices especiales (\u00fanicos, filtrados, espaciales, XML, hash y de texto completo). De todos ellos vimos c\u00f3mo funcionan, para qu\u00e9 se usan y cu\u00e1ndo son recomendables.Todo este conocimiento adquirido durante los \u00faltimos d\u00edas nos ha tra\u00eddo hasta esta \u00faltima entrada donde hemos entendido mejor la fragmentaci\u00f3n de los \u00edndices y c\u00f3mo combatirla. Adem\u00e1s hemos podido comprender la importancia de las estad\u00edsticas y su papel clave en el rendimiento de nuestro SQL Server.&nbsp;<\/span><\/p>\n\n\n\n<p><span style=\"font-weight: 400\">Seguro que los m\u00e1s expertos echar\u00e9is en falta alg\u00fan que otro aspecto relacionado con los \u00edndices o que entremos m\u00e1s en detalle sobre alguno de los temas tratados, os prometo que habr\u00e1 m\u00e1s art\u00edculos sobre \u00edndices en un futuro aunque sea ya fuera de esta serie.\u00a0<\/span><br><span style=\"font-weight: 400\">\u00a1Espero que os haya gustado esta serie y hay\u00e1is aprendido cosas nuevas!<\/span><\/p>\n","protected":false},"excerpt":{"rendered":"<p>A lo largo de las pasadas 6 entradas hemos repasado todos los distintos tipos de \u00edndices en SQL Server. Sin embargo, hay aspectos que, aunque comentamos por encima en la introducci\u00f3n, no hab\u00edamos vuelto a profundizar y son los que vamos a ver. Durante estas l\u00edneas vamos a hablar sobre cu\u00e1ndo y c\u00f3mo SQL Server&#8230; <a class=\"more-link\" href=\"https:\/\/www.codemotion.com\/magazine\/es\/backend-es\/uso-llenado-y-mantenimiento-de-indices-en-sql-server\/\">Read more<\/a><\/p>\n","protected":false},"author":321,"featured_media":33195,"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-32402","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>Uso, llenado y mantenimiento de \u00edndices en SQL Server - Codemotion Magazine<\/title>\n<meta name=\"description\" content=\"En este art\u00edculo profundizamos en c\u00f3mo y cu\u00e1ndo se utilizan, c\u00f3mo se llenan las p\u00e1ginas y c\u00f3mo influir en ello para evitar la fragmentaci\u00f3n.\" \/>\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\/uso-llenado-y-mantenimiento-de-indices-en-sql-server\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Uso, llenado y mantenimiento de \u00edndices en SQL Server\" \/>\n<meta property=\"og:description\" content=\"En este art\u00edculo profundizamos en c\u00f3mo y cu\u00e1ndo se utilizan, c\u00f3mo se llenan las p\u00e1ginas y c\u00f3mo influir en ello para evitar la fragmentaci\u00f3n.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.codemotion.com\/magazine\/es\/backend-es\/uso-llenado-y-mantenimiento-de-indices-en-sql-server\/\" \/>\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-26T14:05:29+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-05-26T14:07:27+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2025\/03\/20945233-scaled.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"2560\" \/>\n\t<meta property=\"og:image:height\" content=\"1707\" \/>\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\/uso-llenado-y-mantenimiento-de-indices-en-sql-server\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.codemotion.com\/magazine\/es\/backend-es\/uso-llenado-y-mantenimiento-de-indices-en-sql-server\/\"},\"author\":{\"name\":\"Roberto Carrancio\",\"@id\":\"https:\/\/www.codemotion.com\/magazine\/#\/schema\/person\/97a034bd0d0536df0240ef899434fa19\"},\"headline\":\"Uso, llenado y mantenimiento de \u00edndices en SQL Server\",\"datePublished\":\"2025-05-26T14:05:29+00:00\",\"dateModified\":\"2025-05-26T14:07:27+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.codemotion.com\/magazine\/es\/backend-es\/uso-llenado-y-mantenimiento-de-indices-en-sql-server\/\"},\"wordCount\":1149,\"publisher\":{\"@id\":\"https:\/\/www.codemotion.com\/magazine\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.codemotion.com\/magazine\/es\/backend-es\/uso-llenado-y-mantenimiento-de-indices-en-sql-server\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2025\/03\/20945233-scaled.jpg\",\"articleSection\":[\"Backend\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.codemotion.com\/magazine\/es\/backend-es\/uso-llenado-y-mantenimiento-de-indices-en-sql-server\/\",\"url\":\"https:\/\/www.codemotion.com\/magazine\/es\/backend-es\/uso-llenado-y-mantenimiento-de-indices-en-sql-server\/\",\"name\":\"Uso, llenado y mantenimiento de \u00edndices en SQL Server - Codemotion Magazine\",\"isPartOf\":{\"@id\":\"https:\/\/www.codemotion.com\/magazine\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.codemotion.com\/magazine\/es\/backend-es\/uso-llenado-y-mantenimiento-de-indices-en-sql-server\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.codemotion.com\/magazine\/es\/backend-es\/uso-llenado-y-mantenimiento-de-indices-en-sql-server\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2025\/03\/20945233-scaled.jpg\",\"datePublished\":\"2025-05-26T14:05:29+00:00\",\"dateModified\":\"2025-05-26T14:07:27+00:00\",\"description\":\"En este art\u00edculo profundizamos en c\u00f3mo y cu\u00e1ndo se utilizan, c\u00f3mo se llenan las p\u00e1ginas y c\u00f3mo influir en ello para evitar la fragmentaci\u00f3n.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.codemotion.com\/magazine\/es\/backend-es\/uso-llenado-y-mantenimiento-de-indices-en-sql-server\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.codemotion.com\/magazine\/es\/backend-es\/uso-llenado-y-mantenimiento-de-indices-en-sql-server\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.codemotion.com\/magazine\/es\/backend-es\/uso-llenado-y-mantenimiento-de-indices-en-sql-server\/#primaryimage\",\"url\":\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2025\/03\/20945233-scaled.jpg\",\"contentUrl\":\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2025\/03\/20945233-scaled.jpg\",\"width\":2560,\"height\":1707,\"caption\":\"Users with laptops working with database. Data storage and organization, information access and management, big data protection concept. Vector isolated illustration.\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.codemotion.com\/magazine\/es\/backend-es\/uso-llenado-y-mantenimiento-de-indices-en-sql-server\/#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\":\"Uso, llenado y mantenimiento de \u00edndices en SQL Server\"}]},{\"@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":"Uso, llenado y mantenimiento de \u00edndices en SQL Server - Codemotion Magazine","description":"En este art\u00edculo profundizamos en c\u00f3mo y cu\u00e1ndo se utilizan, c\u00f3mo se llenan las p\u00e1ginas y c\u00f3mo influir en ello para evitar la fragmentaci\u00f3n.","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\/uso-llenado-y-mantenimiento-de-indices-en-sql-server\/","og_locale":"en_US","og_type":"article","og_title":"Uso, llenado y mantenimiento de \u00edndices en SQL Server","og_description":"En este art\u00edculo profundizamos en c\u00f3mo y cu\u00e1ndo se utilizan, c\u00f3mo se llenan las p\u00e1ginas y c\u00f3mo influir en ello para evitar la fragmentaci\u00f3n.","og_url":"https:\/\/www.codemotion.com\/magazine\/es\/backend-es\/uso-llenado-y-mantenimiento-de-indices-en-sql-server\/","og_site_name":"Codemotion Magazine","article_publisher":"https:\/\/www.facebook.com\/Codemotion.Italy\/","article_published_time":"2025-05-26T14:05:29+00:00","article_modified_time":"2025-05-26T14:07:27+00:00","og_image":[{"width":2560,"height":1707,"url":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2025\/03\/20945233-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\/uso-llenado-y-mantenimiento-de-indices-en-sql-server\/#article","isPartOf":{"@id":"https:\/\/www.codemotion.com\/magazine\/es\/backend-es\/uso-llenado-y-mantenimiento-de-indices-en-sql-server\/"},"author":{"name":"Roberto Carrancio","@id":"https:\/\/www.codemotion.com\/magazine\/#\/schema\/person\/97a034bd0d0536df0240ef899434fa19"},"headline":"Uso, llenado y mantenimiento de \u00edndices en SQL Server","datePublished":"2025-05-26T14:05:29+00:00","dateModified":"2025-05-26T14:07:27+00:00","mainEntityOfPage":{"@id":"https:\/\/www.codemotion.com\/magazine\/es\/backend-es\/uso-llenado-y-mantenimiento-de-indices-en-sql-server\/"},"wordCount":1149,"publisher":{"@id":"https:\/\/www.codemotion.com\/magazine\/#organization"},"image":{"@id":"https:\/\/www.codemotion.com\/magazine\/es\/backend-es\/uso-llenado-y-mantenimiento-de-indices-en-sql-server\/#primaryimage"},"thumbnailUrl":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2025\/03\/20945233-scaled.jpg","articleSection":["Backend"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/www.codemotion.com\/magazine\/es\/backend-es\/uso-llenado-y-mantenimiento-de-indices-en-sql-server\/","url":"https:\/\/www.codemotion.com\/magazine\/es\/backend-es\/uso-llenado-y-mantenimiento-de-indices-en-sql-server\/","name":"Uso, llenado y mantenimiento de \u00edndices en SQL Server - Codemotion Magazine","isPartOf":{"@id":"https:\/\/www.codemotion.com\/magazine\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.codemotion.com\/magazine\/es\/backend-es\/uso-llenado-y-mantenimiento-de-indices-en-sql-server\/#primaryimage"},"image":{"@id":"https:\/\/www.codemotion.com\/magazine\/es\/backend-es\/uso-llenado-y-mantenimiento-de-indices-en-sql-server\/#primaryimage"},"thumbnailUrl":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2025\/03\/20945233-scaled.jpg","datePublished":"2025-05-26T14:05:29+00:00","dateModified":"2025-05-26T14:07:27+00:00","description":"En este art\u00edculo profundizamos en c\u00f3mo y cu\u00e1ndo se utilizan, c\u00f3mo se llenan las p\u00e1ginas y c\u00f3mo influir en ello para evitar la fragmentaci\u00f3n.","breadcrumb":{"@id":"https:\/\/www.codemotion.com\/magazine\/es\/backend-es\/uso-llenado-y-mantenimiento-de-indices-en-sql-server\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.codemotion.com\/magazine\/es\/backend-es\/uso-llenado-y-mantenimiento-de-indices-en-sql-server\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.codemotion.com\/magazine\/es\/backend-es\/uso-llenado-y-mantenimiento-de-indices-en-sql-server\/#primaryimage","url":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2025\/03\/20945233-scaled.jpg","contentUrl":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2025\/03\/20945233-scaled.jpg","width":2560,"height":1707,"caption":"Users with laptops working with database. Data storage and organization, information access and management, big data protection concept. Vector isolated illustration."},{"@type":"BreadcrumbList","@id":"https:\/\/www.codemotion.com\/magazine\/es\/backend-es\/uso-llenado-y-mantenimiento-de-indices-en-sql-server\/#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":"Uso, llenado y mantenimiento de \u00edndices en SQL Server"}]},{"@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\/20945233-600x400.jpg","featured_image_src_square":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2025\/03\/20945233-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\/20945233-scaled.jpg",2560,1707,false],"thumbnail":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2025\/03\/20945233-150x150.jpg",150,150,true],"medium":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2025\/03\/20945233-300x200.jpg",300,200,true],"medium_large":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2025\/03\/20945233-768x512.jpg",768,512,true],"large":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2025\/03\/20945233-1024x683.jpg",1024,683,true],"1536x1536":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2025\/03\/20945233-1536x1024.jpg",1536,1024,true],"2048x2048":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2025\/03\/20945233-2048x1366.jpg",2048,1366,true],"small-home-featured":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2025\/03\/20945233-100x100.jpg",100,100,true],"sidebar-featured":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2025\/03\/20945233-180x128.jpg",180,128,true],"genesis-singular-images":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2025\/03\/20945233-896x504.jpg",896,504,true],"archive-featured":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2025\/03\/20945233-400x225.jpg",400,225,true],"gb-block-post-grid-landscape":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2025\/03\/20945233-600x400.jpg",600,400,true],"gb-block-post-grid-square":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2025\/03\/20945233-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":"A lo largo de las pasadas 6 entradas hemos repasado todos los distintos tipos de \u00edndices en SQL Server. Sin embargo, hay aspectos que, aunque comentamos por encima en la introducci\u00f3n, no hab\u00edamos vuelto a profundizar y son los que vamos a ver. Durante estas l\u00edneas vamos a hablar sobre cu\u00e1ndo y c\u00f3mo SQL Server&#8230;&hellip;","lang":"es","_links":{"self":[{"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/posts\/32402","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=32402"}],"version-history":[{"count":3,"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/posts\/32402\/revisions"}],"predecessor-version":[{"id":33197,"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/posts\/32402\/revisions\/33197"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/media\/33195"}],"wp:attachment":[{"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/media?parent=32402"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/categories?post=32402"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/tags?post=32402"},{"taxonomy":"collections","embeddable":true,"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/collections?post=32402"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}