{"id":484,"date":"2011-02-26T19:56:57","date_gmt":"2011-02-26T21:56:57","guid":{"rendered":"http:\/\/fabriciolima.net\/blog\/?p=484"},"modified":"2016-07-23T22:49:55","modified_gmt":"2016-07-24T01:49:55","slug":"qual-o-valor-ideal-para-o-fillfactor-de-um-indice","status":"publish","type":"post","link":"https:\/\/fabriciolima.net\/blog\/2011\/02\/26\/qual-o-valor-ideal-para-o-fillfactor-de-um-indice\/","title":{"rendered":"Qual o valor ideal para o FILLFACTOR de um \u00cdndice?"},"content":{"rendered":"<p>Fala Pessoal,<\/p>\n<p>Voc\u00ea que \u00e9 um DBA, algum dia j\u00e1 deve ter feito essa pergunta para algu\u00e9m ou para o google. A resposta deve ter sido que n\u00e3o existe uma receita de bolo para definir o valor do fillfactor de um \u00edndice, seu valor depende do ambiente ser OLTP (Online Transaction Processing) ou OLAP (Online Analytical Processing), da quantidade de INSERT, UPDATE e DELETE do \u00edndice, do tipo de dados da coluna chave do \u00edndice, dentre outros fatores.<\/p>\n<p>Infelizmente tamb\u00e9m darei a mesma resposta, que n\u00e3o existe um valor de fillfactor ideal para todos os \u00edndices. Possuo \u00edndices que v\u00e3o desde 75% de fillfactor at\u00e9 \u00edndices com 97%. Entretanto, vou mostrar uma query que utilizo para tentar aproximar cada um dos meus principais \u00edndices dos seus valores ideais.<\/p>\n<p>No meu \u00faltimo post t\u00e9cnico mostrei <a title=\"Monitorando a Fragmenta\u00e7\u00e3o dos \u00cdndices\" href=\"https:\/\/www.fabriciolima.net\/blog\/2011\/02\/16\/monitorando-a-fragmentacao-dos-indices\/\" target=\"_blank\">como armazenar um hist\u00f3rico de fragmenta\u00e7\u00e3o dos \u00edndices <\/a>e \u00e9 com essa informa\u00e7\u00e3o que verifico o quanto cada \u00edndice se fragmenta individualmente para verificar se o fillfactor desse \u00edndice deve ser alterado para um valor diferente.<!--more--><\/p>\n<p>Para ilustrar essa situa\u00e7\u00e3o vou popular minha tabela de hist\u00f3rico(criada no post anterior) com dados fict\u00edcios para dois \u00edndices.<\/p>\n<p>&#8211;Segue novamente o script para a cria\u00e7\u00e3o da tabela:<\/p>\n<p>CREATE TABLE [dbo].[Hitorico_Fragmentacao_Indice](<br \/>\n[Id_Hitorico_Fragmentacao_Indice] [int] IDENTITY(1,1) NOT NULL,<br \/>\n[Dt_Referencia] [datetime] NULL,<br \/>\n[Nm_Servidor] [varchar](20) NULL,<br \/>\n[Nm_Database] [varchar](20) NULL,<br \/>\n[Nm_Tabela] [varchar](50) NULL,<br \/>\n[Nm_Indice] [varchar](70) NULL,<br \/>\n[Avg_Fragmentation_In_Percent] [numeric](5, 2) NULL,<br \/>\n[Page_Count] [int] NULL,<br \/>\n[Fill_Factor] [tinyint] NULL)<br \/>\nINSERT INTO\u00a0Hitorico_Fragmentacao_Indice(Dt_Referencia,Nm_Servidor,<br \/>\nNm_Database,Nm_Tabela,Nm_Indice,Avg_Fragmentation_In_Percent,<br \/>\nPage_Count,Fill_Factor)<br \/>\nselect getdate()-3,&#8217;FABRICIONOTE&#8217;,&#8217;FabricioLima&#8217;,&#8217;Teste_Fragmentacao&#8217;,<br \/>\n&#8216;SK01_Teste_Fragmentacao&#8217;,5.60,1500,90<\/p>\n<p>INSERT INTO\u00a0Hitorico_Fragmentacao_Indice(Dt_Referencia,<br \/>\nNm_Servidor,Nm_Database,Nm_Tabela,Nm_Indice,Avg_Fragmentation_In_Percent, Page_Count,Fill_Factor)<br \/>\nselect getdate()-2,&#8217;FABRICIONOTE&#8217;,&#8217;FabricioLima&#8217;,&#8217;Teste_Fragmentacao&#8217;,<br \/>\n&#8216;SK01_Teste_Fragmentacao&#8217;,\u00a08.67,1500,90<\/p>\n<p>INSERT INTO\u00a0Hitorico_Fragmentacao_Indice(Dt_Referencia,<br \/>\nNm_Servidor,Nm_Database,Nm_Tabela,Nm_Indice,Avg_Fragmentation_In_Percent,<br \/>\nPage_Count,Fill_Factor)<br \/>\nselect getdate()-1,&#8217;FABRICIONOTE&#8217;,&#8217;FabricioLima&#8217;,&#8217;Teste_Fragmentacao&#8217;,<br \/>\n&#8216;SK01_Teste_Fragmentacao&#8217;,10.78,1500,90<\/p>\n<p>INSERT INTO\u00a0Hitorico_Fragmentacao_Indice(Dt_Referencia,<br \/>\nNm_Servidor,Nm_Database,Nm_Tabela,Nm_Indice,Avg_Fragmentation_In_Percent,<br \/>\nPage_Count,Fill_Factor)<br \/>\nselect getdate()-3,&#8217;FABRICIONOTE&#8217;,&#8217;FabricioLima&#8217;,&#8217;Teste_Fragmentacao&#8217;,<br \/>\n&#8216;SK02_Teste_Fragmentacao&#8217;,15.60,1500,90<\/p>\n<p>INSERT INTO\u00a0Hitorico_Fragmentacao_Indice(Dt_Referencia,<br \/>\nNm_Servidor,Nm_Database,Nm_Tabela,Nm_Indice,Avg_Fragmentation_In_Percent,<br \/>\nPage_Count,Fill_Factor)<br \/>\nselect getdate()-2,&#8217;FABRICIONOTE&#8217;,&#8217;FabricioLima&#8217;,&#8217;Teste_Fragmentacao&#8217;,<br \/>\n&#8216;SK02_Teste_Fragmentacao&#8217;,18.67,1500,90<\/p>\n<p>INSERT INTO\u00a0Hitorico_Fragmentacao_Indice(Dt_Referencia,<br \/>\nNm_Servidor,Nm_Database,Nm_Tabela,Nm_Indice,Avg_Fragmentation_In_Percent,<br \/>\nPage_Count,Fill_Factor)<br \/>\nselect getdate()-1,&#8217;FABRICIONOTE&#8217;,&#8217;FabricioLima&#8217;,&#8217;Teste_Fragmentacao&#8217;,<br \/>\n&#8216;SK02_Teste_Fragmentacao&#8217;,23.78,1500,90<\/p>\n<p>Verificando os valores que foram inseridos:<\/p>\n<p>SELECT Dt_Referencia,Nm_Indice,Avg_Fragmentation_In_Percent Fragmentacao<br \/>\nFROM Hitorico_Fragmentacao_Indice<br \/>\nORDER BY Dt_Referencia<\/p>\n<p>Temos como resultado:<\/p>\n<p style=\"text-align: center;\"><a href=\"https:\/\/www.fabriciolima.net\/blog\/wp-content\/uploads\/2011\/02\/Tabela-Historico-Fragmentacao.jpg\" target=\"_blank\"><img loading=\"lazy\" decoding=\"async\" class=\"size-medium wp-image-485  aligncenter\" title=\"Tabela Historico Fragmentacao\" src=\"https:\/\/www.fabriciolima.net\/blog\/wp-content\/uploads\/2011\/02\/Tabela-Historico-Fragmentacao-300x90.jpg\" alt=\"\" width=\"373\" height=\"133\" \/><\/a><\/p>\n<p>Como pode ser verificado no select acima, simulei uma poss\u00edvel fragmenta\u00e7\u00e3o de dois \u00edndices durante 3 dias.<\/p>\n<p>Com a query abaixo podemos verificar a fragmenta\u00e7\u00e3o dos \u00edndices em um determinado per\u00edodo, como por exemplo, no \u00ednicio do m\u00eas, no fim do m\u00eas, no m\u00eas inteiro, no ano todo e etc.<\/p>\n<p>SELECT\u00a0 A.Nm_Database, A.Nm_Tabela, A.Nm_Indice,<br \/>\nSUM(B.Avg_Fragmentation_In_Percent &#8211; A.Avg_Fragmentation_In_Percent) Total_Fragmentacao<br \/>\nFROM Hitorico_Fragmentacao_Indice A (nolock)<br \/>\njoin Hitorico_Fragmentacao_Indice B (nolock) on A.Nm_Indice = B.Nm_Indice<br \/>\nand A.Nm_Tabela = B.Nm_Tabela and A.Nm_Database = B.Nm_Database<br \/>\nand A.Avg_Fragmentation_In_Percent &lt; B.Avg_Fragmentation_In_Percent<br \/>\nand cast(floor(cast(A.Dt_Referencia+1 as float)) as datetime) = cast(floor(cast(B.Dt_Referencia as float)) as datetime)<br \/>\nWHERE\u00a0 A.page_count &gt; 1000 &#8212; Eliminar \u00edndices pequenos<br \/>\nand A.Dt_Referencia &gt;= &#8216;20110223&#8217; and A.Dt_Referencia &lt; &#8216;20110227&#8217;<br \/>\nGROUP BY A.Nm_Database,A.Nm_Tabela,A.Nm_Indice<br \/>\nORDER BY 4 DESC<\/p>\n<p>Segue o resultado:<\/p>\n<p style=\"text-align: center;\"><a href=\"https:\/\/www.fabriciolima.net\/blog\/wp-content\/uploads\/2011\/02\/Query-Fillfactor1.jpg\" target=\"_blank\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-medium wp-image-487\" title=\"Query Fillfactor\" src=\"https:\/\/www.fabriciolima.net\/blog\/wp-content\/uploads\/2011\/02\/Query-Fillfactor1-300x31.jpg\" alt=\"\" width=\"320\" height=\"47\" \/><\/a><\/p>\n<p>Vemos agora sumarizadamente que o \u00edndice SK02_Teste_Fragmentacao se fragmentou 8,18% e o \u00edndice SK01_Teste_Fragmentacao se fragmentou 5.18% durante 3 dias. Reparem que eu\u00a0adicionei uma cl\u00e1usula no join (A.Avg_Fragmentation_In_Percent &lt; B.Avg_Fragmentation_In_Percent) para n\u00e3o incluir na query o dia que a fragmenta\u00e7\u00e3o de um \u00edndice diminuir, que \u00e9 o que acontece quando\u00a0\u00e9 realizado\u00a0um REORGANIZE ou um REBUILD no \u00edndice.<\/p>\n<p>Assim voc\u00ea identifica facilmente os \u00edndices que possuem uma maior fragmenta\u00e7\u00e3o e pode alterar o fillfactor desses \u00edndices individualmente, ou aumentar a frequ\u00eancia com que esses \u00edndices s\u00e3o\u00a0desfragmentado.\u00a0Com esse\u00a0procedimento\u00a0tamb\u00e9m temos\u00a0ganhos de performance e espa\u00e7o em disco, pois\u00a0identificamos os \u00edndices que pouco se fragmentam durante um certo per\u00edodo(1 m\u00eas por exemplo) e , com isso,\u00a0esses \u00edndices podem ter seu fillfactor aumentado para economizar espa\u00e7o em disco e aumentar o desempenho do ambiente.<\/p>\n<p>Foi com essa rotina que alterei o valor do fillfactor de quase todos os \u00edndices das minhas principais tabelas, economizando um grande espa\u00e7o em disco (mais de 20 GB)\u00a0e aumentando a performance do meu banco de dados, pois quanto maior for o fillfactor de um \u00edndice, mais registros s\u00e3o armazenados em uma p\u00e1gina desse \u00edndice, o que ocasiona um n\u00famero menor de p\u00e1ginas no tamanho do mesmo, ocupando menos espa\u00e7o na mem\u00f3ria e aumentando o desempenho de todo o ambiente.<\/p>\n<p>Tamb\u00e9m tive que diminiur o fillfactor de alguns \u00edndices para diminuir a fragmenta\u00e7\u00e3o e tamb\u00e9m o n\u00famero de page split das p\u00e1ginas desses \u00edndices.<\/p>\n<p>Ent\u00e3o, caso voc\u00ea seja respons\u00e1vel por um ambiente de banco de dados, monitorar a fragmenta\u00e7\u00e3o dos seus \u00edndices pode te ajudar a ter um grande ganho de performance.<\/p>\n<p><b>Gostou desse Post?<\/b><\/p>\n<p>Cadastre seu e-mail para receber novos Posts e curta minha <a href=\"https:\/\/www.facebook.com\/FabricioLimaSolucoesemBancodeDados\/\" target=\"_blank\">P\u00e1gina no Facebook<\/a> para receber Dicas de Leituras e Eventos sobre SQL Server.<\/p>\n<p>Abra\u00e7os,<\/p>\n<p>Fabr\u00edcio Lima<\/p>\n<p>MCITP \u2013 Database Administrator<\/p>\n<p>Consultor e Instrutor SQL Server<\/p>\n<p>Trabalha com SQL Server desde 2006<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Fala Pessoal, Voc\u00ea que \u00e9 um DBA, algum dia j\u00e1 deve ter feito essa pergunta para algu\u00e9m ou para o google. A resposta deve ter sido que n\u00e3o existe uma receita de bolo para definir o valor do fillfactor de um \u00edndice, seu valor depende do ambiente ser OLTP (Online Transaction Processing) ou OLAP (Online [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_exactmetrics_skip_tracking":false,"_exactmetrics_sitenote_active":false,"_exactmetrics_sitenote_note":"","_exactmetrics_sitenote_category":0,"footnotes":"","jetpack_post_was_ever_published":false},"categories":[3,280],"tags":[18,190,191,93,23,185,186,189,192,215,184,110,187,89,188,49,33,50,34,35,193,40],"class_list":["post-484","post","type-post","status-publish","format-standard","hentry","category-administracao-de-bd","category-virtual-pass-br","tag-checklist","tag-checklist-diario","tag-checklist-do-banco-de-dados","tag-create-table","tag-dba","tag-desfragmentacao-de-um-indice","tag-desfragmentar-um-indice","tag-dm_db_index_physical_stats","tag-fill-factor","tag-fillfactor-ideal-para-um-indice","tag-fragmentacao-de-indices","tag-indice","tag-monitoramento-fragmentacao","tag-rebuild","tag-reorganize","tag-sql","tag-sql-server","tag-sql-server-2005","tag-sql-server-2008","tag-sql-server-2008-r2","tag-tamanho-fill-factor","tag-tuning"],"jetpack_featured_media_url":"","jetpack-related-posts":[{"id":440,"url":"https:\/\/fabriciolima.net\/blog\/2011\/02\/16\/monitorando-a-fragmentacao-dos-indices\/","url_meta":{"origin":484,"position":0},"title":"Monitorando a fragmenta\u00e7\u00e3o dos \u00edndices","author":"Fabr\u00edcio Lima","date":"16 de fevereiro de 2011","format":false,"excerpt":"Um dos grandes problemas que temos com rela\u00e7\u00e3o a performance \u00e9 devido a fragmenta\u00e7\u00e3o de nossos \u00edndices. Nesse post mostro como criar uma rotina para monitorar a fragmenta\u00e7\u00e3o dos \u00edndices do Banco de Dados e diminuir essa fragmenta\u00e7\u00e3o.","rel":"","context":"Em &quot;Administra\u00e7\u00e3o de Banco de Dados&quot;","block_context":{"text":"Administra\u00e7\u00e3o de Banco de Dados","link":"https:\/\/fabriciolima.net\/blog\/category\/sql-server\/administracao-de-bd\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/www.fabriciolima.net\/blog\/wp-content\/uploads\/2011\/02\/Fragmentacao_Indice-1.png?resize=350%2C200&ssl=1","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/www.fabriciolima.net\/blog\/wp-content\/uploads\/2011\/02\/Fragmentacao_Indice-1.png?resize=350%2C200&ssl=1 1x, https:\/\/i0.wp.com\/www.fabriciolima.net\/blog\/wp-content\/uploads\/2011\/02\/Fragmentacao_Indice-1.png?resize=525%2C300&ssl=1 1.5x, https:\/\/i0.wp.com\/www.fabriciolima.net\/blog\/wp-content\/uploads\/2011\/02\/Fragmentacao_Indice-1.png?resize=700%2C400&ssl=1 2x"},"classes":[]},{"id":1147,"url":"https:\/\/fabriciolima.net\/blog\/2012\/01\/31\/1-ano-de-fabriciolima-net\/","url_meta":{"origin":484,"position":1},"title":"1 Ano de FabricioLima.net","author":"Fabr\u00edcio Lima","date":"31 de janeiro de 2012","format":false,"excerpt":"Fala Pessoal, No dia 26\/01\/2012 o blog fabriciolima.net completou um ano de vida. Tive momentos de des\u00e2nimo, mas pouco tempo depois j\u00e1 estava empolgado para escrever novamente. Eu tenho uns 3 contadores de visitas ao Blog e cada um tem um valor diferente. Entretanto, como Google \u00e9 Google, vou utilizar\u2026","rel":"","context":"Em &quot;Carreira&quot;","block_context":{"text":"Carreira","link":"https:\/\/fabriciolima.net\/blog\/category\/carreira\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/www.fabriciolima.net\/blog\/wp-content\/uploads\/2012\/01\/InfoGerais.png?resize=350%2C200&ssl=1","width":350,"height":200},"classes":[]},{"id":9431,"url":"https:\/\/fabriciolima.net\/blog\/2018\/10\/08\/azure-sql-database-monitorando-a-fragmentacao-dos-indices\/","url_meta":{"origin":484,"position":2},"title":"Azure SQL Database &#8211; Monitorando a Fragmenta\u00e7\u00e3o dos \u00cdndices","author":"Fabr\u00edcio Lima","date":"8 de outubro de 2018","format":false,"excerpt":"\u00a0 Fala Pessoal, Continuando a s\u00e9rie de posts sobre\u00a0Azure SQL Database, dessa vez vamos criar uma rotina para monitorar a fragmenta\u00e7\u00e3o dos nossos \u00edndices. No SQL Azure Database, nossos \u00edndices continuam se fragmentando e o DBA\\DEV que administra essa base de dados continua com a miss\u00e3o de desfragmentar esses \u00edndices\u2026","rel":"","context":"Em &quot;Azure SQL Database&quot;","block_context":{"text":"Azure SQL Database","link":"https:\/\/fabriciolima.net\/blog\/category\/azure-sql-database\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/fabriciolima.net\/blog\/wp-content\/uploads\/2018\/09\/AzureSerie06.png?resize=350%2C200&ssl=1","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/fabriciolima.net\/blog\/wp-content\/uploads\/2018\/09\/AzureSerie06.png?resize=350%2C200&ssl=1 1x, https:\/\/i0.wp.com\/fabriciolima.net\/blog\/wp-content\/uploads\/2018\/09\/AzureSerie06.png?resize=525%2C300&ssl=1 1.5x"},"classes":[]},{"id":2575,"url":"https:\/\/fabriciolima.net\/blog\/2013\/12\/14\/5-motivos-para-quem-utiliza-o-protheus-totvs-contratar-um-dba-sql-server\/","url_meta":{"origin":484,"position":3},"title":"5 motivos para quem utiliza o Protheus (Totvs) contratar um DBA SQL Server","author":"Fabr\u00edcio Lima","date":"14 de dezembro de 2013","format":false,"excerpt":"Ol\u00e1 Pessoal, Trabalho com administra\u00e7\u00e3o de banco de dados SQL Server Protheus desde 2009 em um ambiente que considero de grande porte: Base de Dados de 300 GB completamente compactada \u00e0 n\u00edvel de p\u00e1gina, caso contr\u00e1rio j\u00e1 estaria passando de 1 TB de dados. (update em 28\/09\/2015 - 500 GB\u2026","rel":"","context":"Em &quot;Administra\u00e7\u00e3o de Banco de Dados&quot;","block_context":{"text":"Administra\u00e7\u00e3o de Banco de Dados","link":"https:\/\/fabriciolima.net\/blog\/category\/sql-server\/administracao-de-bd\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/www.fabriciolima.net\/blog\/wp-content\/uploads\/2013\/12\/ConstraintProtheus.png?resize=350%2C200&ssl=1","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/www.fabriciolima.net\/blog\/wp-content\/uploads\/2013\/12\/ConstraintProtheus.png?resize=350%2C200&ssl=1 1x, https:\/\/i0.wp.com\/www.fabriciolima.net\/blog\/wp-content\/uploads\/2013\/12\/ConstraintProtheus.png?resize=525%2C300&ssl=1 1.5x, https:\/\/i0.wp.com\/www.fabriciolima.net\/blog\/wp-content\/uploads\/2013\/12\/ConstraintProtheus.png?resize=700%2C400&ssl=1 2x"},"classes":[]},{"id":6982,"url":"https:\/\/fabriciolima.net\/blog\/2017\/05\/01\/criando-um-e-mail-de-checklist-diario-no-sql-server\/","url_meta":{"origin":484,"position":4},"title":"Criando um E-mail de CheckList Di\u00e1rio no SQL Server","author":"Fabr\u00edcio Lima","date":"1 de maio de 2017","format":false,"excerpt":"Update dia 22\/09\/2019: Veja nesse post uma nova vers\u00e3o para a cria\u00e7\u00e3o desse Checklist para seu BD SQL Server junto com outros 40 alertas: http:\/\/www.fabriciolima.net\/blog\/2019\/09\/22\/passo-a-passo-de-como-criar-40-alertas-para-monitorar-seu-sql-server\/ \u00a0 \u00a0 Ol\u00e1 Pessoal, No dia 07\/03\/2010 eu fiz meu primeiro post para esse blog: Apresenta\u00e7\u00e3o Contudo, foi no dia 24\/03\/2010 que eu comecei a\u2026","rel":"","context":"Em &quot;Administra\u00e7\u00e3o de Banco de Dados&quot;","block_context":{"text":"Administra\u00e7\u00e3o de Banco de Dados","link":"https:\/\/fabriciolima.net\/blog\/category\/sql-server\/administracao-de-bd\/"},"img":{"alt_text":"checklist","src":"https:\/\/i0.wp.com\/www.fabriciolima.net\/blog\/wp-content\/uploads\/2014\/01\/checklist.jpg?resize=350%2C200&ssl=1","width":350,"height":200},"classes":[]},{"id":8435,"url":"https:\/\/fabriciolima.net\/blog\/2017\/12\/11\/melhorando-a-performance-de-consultas-no-totvs-protheus-parte-1\/","url_meta":{"origin":484,"position":5},"title":"Melhorando a Performance de Consultas no Totvs Protheus &#8211; Parte 1","author":"Fabr\u00edcio Lima","date":"11 de dezembro de 2017","format":false,"excerpt":"Fala Pessoal, No meu dia a dia de Consultor SQL Server, atendo muitos clientes com Totvs Protheus e SQL Server. Inclusive j\u00e1 compartilhei algumas experi\u00eancias com voc\u00eas aqui no Blog: 5 motivos para quem utiliza o Protheus (Totvs) contratar um DBA SQL Server Migrando um SQL Server 2008 Totvs Protheus\u2026","rel":"","context":"Em &quot;Administra\u00e7\u00e3o de Banco de Dados&quot;","block_context":{"text":"Administra\u00e7\u00e3o de Banco de Dados","link":"https:\/\/fabriciolima.net\/blog\/category\/sql-server\/administracao-de-bd\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/www.fabriciolima.net\/blog\/wp-content\/uploads\/2017\/12\/queryprotheysparte1_1.png?resize=350%2C200&ssl=1","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/www.fabriciolima.net\/blog\/wp-content\/uploads\/2017\/12\/queryprotheysparte1_1.png?resize=350%2C200&ssl=1 1x, https:\/\/i0.wp.com\/www.fabriciolima.net\/blog\/wp-content\/uploads\/2017\/12\/queryprotheysparte1_1.png?resize=525%2C300&ssl=1 1.5x, https:\/\/i0.wp.com\/www.fabriciolima.net\/blog\/wp-content\/uploads\/2017\/12\/queryprotheysparte1_1.png?resize=700%2C400&ssl=1 2x, https:\/\/i0.wp.com\/www.fabriciolima.net\/blog\/wp-content\/uploads\/2017\/12\/queryprotheysparte1_1.png?resize=1050%2C600&ssl=1 3x"},"classes":[]}],"post_mailing_queue_ids":[],"_links":{"self":[{"href":"https:\/\/fabriciolima.net\/blog\/wp-json\/wp\/v2\/posts\/484","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/fabriciolima.net\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/fabriciolima.net\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/fabriciolima.net\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/fabriciolima.net\/blog\/wp-json\/wp\/v2\/comments?post=484"}],"version-history":[{"count":0,"href":"https:\/\/fabriciolima.net\/blog\/wp-json\/wp\/v2\/posts\/484\/revisions"}],"wp:attachment":[{"href":"https:\/\/fabriciolima.net\/blog\/wp-json\/wp\/v2\/media?parent=484"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/fabriciolima.net\/blog\/wp-json\/wp\/v2\/categories?post=484"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/fabriciolima.net\/blog\/wp-json\/wp\/v2\/tags?post=484"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}