{"id":8459,"date":"2018-01-08T22:58:36","date_gmt":"2018-01-09T00:58:36","guid":{"rendered":"http:\/\/www.fabriciolima.net\/?p=8459"},"modified":"2020-10-10T14:32:33","modified_gmt":"2020-10-10T17:32:33","slug":"melhorando-a-performance-de-consultas-no-totvs-protheus-parte-3","status":"publish","type":"post","link":"https:\/\/fabriciolima.net\/blog\/2018\/01\/08\/melhorando-a-performance-de-consultas-no-totvs-protheus-parte-3\/","title":{"rendered":"Melhorando a Performance de Consultas no Totvs Protheus &#8211; Parte 3"},"content":{"rendered":"<p><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-8676 aligncenter\" src=\"https:\/\/www.fabriciolima.net\/blog\/wp-content\/uploads\/2018\/01\/NetFlix3.png\" alt=\"\" width=\"608\" height=\"368\" srcset=\"https:\/\/fabriciolima.net\/blog\/wp-content\/uploads\/2018\/01\/NetFlix3.png 1117w, https:\/\/fabriciolima.net\/blog\/wp-content\/uploads\/2018\/01\/NetFlix3-300x181.png 300w, https:\/\/fabriciolima.net\/blog\/wp-content\/uploads\/2018\/01\/NetFlix3-1024x619.png 1024w, https:\/\/fabriciolima.net\/blog\/wp-content\/uploads\/2018\/01\/NetFlix3-768x464.png 768w, https:\/\/fabriciolima.net\/blog\/wp-content\/uploads\/2018\/01\/NetFlix3-700x423.png 700w, https:\/\/fabriciolima.net\/blog\/wp-content\/uploads\/2018\/01\/NetFlix3-410x248.png 410w, https:\/\/fabriciolima.net\/blog\/wp-content\/uploads\/2018\/01\/NetFlix3-100x60.png 100w, https:\/\/fabriciolima.net\/blog\/wp-content\/uploads\/2018\/01\/NetFlix3-275x166.png 275w, https:\/\/fabriciolima.net\/blog\/wp-content\/uploads\/2018\/01\/NetFlix3-20x12.png 20w\" sizes=\"auto, (max-width: 608px) 100vw, 608px\" \/><\/p>\n<p>Fala pessoal,<\/p>\n<p>Antes de lerem esse post, caso ainda n\u00e3o tenham lido os anteriores, sugiro que fa\u00e7am para seguirem a linha de racioc\u00ednio:<\/p>\n<ul>\n<li><a href=\"https:\/\/www.fabriciolima.net\/blog\/2017\/12\/11\/melhorando-a-performance-de-consultas-no-totvs-protheus-parte-1\/\" target=\"_blank\" rel=\"noopener noreferrer\">https:\/\/www.fabriciolima.net\/blog\/2017\/12\/11\/melhorando-a-performance-de-consultas-no-totvs-protheus-parte-1\/<\/a><\/li>\n<li><a href=\"https:\/\/www.fabriciolima.net\/blog\/2017\/12\/18\/melhorando-a-performance-de-consultas-no-totvs-protheus-parte-2\/\" target=\"_blank\" rel=\"noopener noreferrer\">https:\/\/www.fabriciolima.net\/blog\/2017\/12\/18\/melhorando-a-performance-de-consultas-no-totvs-protheus-parte-2\/<\/a><\/li>\n<\/ul>\n<p>Pegando mais uma quey no Traces de queries demoradas. Durante a semana, essa query apareceu v\u00e1rias vezes demorando mais de <strong>3 segundos<\/strong>. Contudo, no fim de semana, ao rodar ela sem concorr\u00eancia, ela est\u00e1 instant\u00e2nea.<\/p>\n<p><strong>Nesse caso eu fa\u00e7o o que Fabricio? Ignoro?<\/strong><\/p>\n<p><strong>N\u00e3o<\/strong>. Vi que tem \u00edndices triviais nessa query que n\u00e3o existem, ent\u00e3o vamos criar para reduzir a quantidade de leituras dela:<\/p>\n<pre class=\"lang:tsql decode:true\">SELECT   C6_NUM ,\r\n         C6_QTDVEN ,\r\n         C6_NOTA ,\r\n         C6_CLI ,\r\n         C6_PRCVEN ,\r\n         C5_EMISSAO ,\r\n         C5_YSTATUS ,\r\n         C5_VEND1\r\nFROM     SC6080 SC6 ,\r\n         SC5080 SC5\r\nWHERE    C6_FILIAL = C5_FILIAL\r\n         AND C5_NUM = C6_NUM\r\n         AND C6_PRODUTO = 'BHASJHSU654556'\r\n         AND C6_FILIAL = '01'\r\n         AND SC6.D_E_L_E_T_ = ''\r\n         AND SC5.D_E_L_E_T_ = ''\r\nORDER BY C5_EMISSAO ,\r\n         C6_NUM;<\/pre>\n<p>Segue o plano dessa query:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\" wp-image-8462 aligncenter\" src=\"https:\/\/www.fabriciolima.net\/blog\/wp-content\/uploads\/2017\/12\/queryprotheysparte3_1.png\" alt=\"\" width=\"771\" height=\"328\" srcset=\"https:\/\/fabriciolima.net\/blog\/wp-content\/uploads\/2017\/12\/queryprotheysparte3_1.png 1006w, https:\/\/fabriciolima.net\/blog\/wp-content\/uploads\/2017\/12\/queryprotheysparte3_1-300x128.png 300w, https:\/\/fabriciolima.net\/blog\/wp-content\/uploads\/2017\/12\/queryprotheysparte3_1-768x327.png 768w, https:\/\/fabriciolima.net\/blog\/wp-content\/uploads\/2017\/12\/queryprotheysparte3_1-700x298.png 700w, https:\/\/fabriciolima.net\/blog\/wp-content\/uploads\/2017\/12\/queryprotheysparte3_1-410x174.png 410w, https:\/\/fabriciolima.net\/blog\/wp-content\/uploads\/2017\/12\/queryprotheysparte3_1-100x43.png 100w, https:\/\/fabriciolima.net\/blog\/wp-content\/uploads\/2017\/12\/queryprotheysparte3_1-275x117.png 275w, https:\/\/fabriciolima.net\/blog\/wp-content\/uploads\/2017\/12\/queryprotheysparte3_1-20x9.png 20w\" sizes=\"auto, (max-width: 771px) 100vw, 771px\" \/><\/p>\n<p>O SQL Server est\u00e1 fazendo <strong>Seek+lookup<\/strong> nas duas tabelas envolvidas (<strong>SC5080<\/strong> e <strong>SC6080<\/strong>).<\/p>\n<p>Levando em conta a <strong>Parte 1<\/strong> e <strong>Parte 2<\/strong> da s\u00e9rie Fabr\u00edcio, devemos tentar criar um \u00edndice apenas em\u00a0C6_PRODUTO para ver se j\u00e1 resolve a query?<\/p>\n<p>Veja bem&#8230;.<\/p>\n<p>Vamos criar para verem o que vai acontecer.<\/p>\n<pre class=\"lang:tsql decode:true\">create nonclustered index SC6080W01 on SC6080(C6_PRODUTO)with(FILLFACTOR=90,DATA_COMPRESSION=PAGE)<\/pre>\n<p>Ao criar o \u00edndice, <strong>o SQL Server n\u00e3o usou o \u00edndice<\/strong> e a query rodou com o mesmo plano de execu\u00e7\u00e3o anterior.<\/p>\n<p><strong>Oxente Fabr\u00edcio&#8230; venha c\u00e1&#8230; mas por que n\u00e3o usou? <\/strong><\/p>\n<p><em>obs.: Estou atendendo um cliente em Salvador hoje (08\/01) e peguei o sotaque.<\/em><\/p>\n<p>R: Porque essa query retorna mais de 2 mil linhas no resultado.<\/p>\n<p><strong>Gravem isso que \u00e9 muito importante<\/strong>: <em>Fazer um lookup em poucas linhas \u00e9 tranquilo, agora fazer um <strong>lookup<\/strong> em muitas linhas \u00e9 custoso e esse \u00e9 o motivo do SQL n\u00e3o querer usar o nosso \u00edndice por essa coluna \u00fanica.<\/em><\/p>\n<p>Como essa tabela n\u00e3o \u00e9 t\u00e3o grande e esse \u00edndice em produto tem tudo para ser bom por ser uma coluna bem seletiva, vamos criar um <strong>covered index<\/strong> (\u00edndice com todas as colunas necess\u00e1rias para executar essa query).<\/p>\n<pre class=\"lang:tsql decode:true\">create nonclustered index SC6080W01 on SC6080\r\n(C6_PRODUTO,C6_NUM,C6_FILIAL,D_E_L_E_T_ ) include(C6_NOTA,C6_CLI,C6_QTDVEN,C6_PRCVEN)\r\nwith(FILLFACTOR=90,DATA_COMPRESSION=PAGE)<\/pre>\n<p>A quantidade de leituras na tabela <strong>SC6080<\/strong> j\u00e1 reduziu para <strong>15 reads<\/strong> e a query ficou com esse plano:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-8463 aligncenter\" src=\"https:\/\/www.fabriciolima.net\/blog\/wp-content\/uploads\/2017\/12\/queryprotheysparte3_2.png\" alt=\"\" width=\"792\" height=\"294\" srcset=\"https:\/\/fabriciolima.net\/blog\/wp-content\/uploads\/2017\/12\/queryprotheysparte3_2.png 792w, https:\/\/fabriciolima.net\/blog\/wp-content\/uploads\/2017\/12\/queryprotheysparte3_2-300x111.png 300w, https:\/\/fabriciolima.net\/blog\/wp-content\/uploads\/2017\/12\/queryprotheysparte3_2-768x285.png 768w, https:\/\/fabriciolima.net\/blog\/wp-content\/uploads\/2017\/12\/queryprotheysparte3_2-700x260.png 700w, https:\/\/fabriciolima.net\/blog\/wp-content\/uploads\/2017\/12\/queryprotheysparte3_2-410x152.png 410w, https:\/\/fabriciolima.net\/blog\/wp-content\/uploads\/2017\/12\/queryprotheysparte3_2-100x37.png 100w, https:\/\/fabriciolima.net\/blog\/wp-content\/uploads\/2017\/12\/queryprotheysparte3_2-275x102.png 275w, https:\/\/fabriciolima.net\/blog\/wp-content\/uploads\/2017\/12\/queryprotheysparte3_2-20x7.png 20w\" sizes=\"auto, (max-width: 792px) 100vw, 792px\" \/><\/p>\n<p>&nbsp;<\/p>\n<p>Olhando os \u00edndices da tabela <strong>SC5080<\/strong>, j\u00e1 existe um \u00edndice na coluna <strong>C5_NUM<\/strong> criado por mim para alguma outra query nesse cliente, contudo esse \u00edndice s\u00f3 possui 4 colunas:<\/p>\n<pre class=\"lang:tsql decode:true \">C5_NUM, C5_FILIAL, C5_TIPO, D_E_L_E_T_<\/pre>\n<p>Como esse \u00edndice n\u00e3o tem todas as colunas que a query precisa, o SQL n\u00e3o est\u00e1 usando.<\/p>\n<p>Vamos adicionar todas as colunas da tabela <strong>SC5<\/strong> utilizada pela query para ver se agora o SQL vai usar meu \u00edndice:<\/p>\n<pre class=\"lang:tsql decode:true \">create nonclustered index SC5080W01 on SC5080\r\n(C5_NUM, C5_FILIAL, C5_TIPO, D_E_L_E_T_,C5_EMISSAO) include(C5_YSTATUS,C5_VEND1)\r\nwith(FILLFACTOR=90,DATA_COMPRESSION=PAGE)<\/pre>\n<p>Agora sim o SQL passou a usar os meus 2 \u00edndices para essa query:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-8464 aligncenter\" src=\"https:\/\/www.fabriciolima.net\/blog\/wp-content\/uploads\/2017\/12\/queryprotheysparte3_3.png\" alt=\"\" width=\"592\" height=\"222\" srcset=\"https:\/\/fabriciolima.net\/blog\/wp-content\/uploads\/2017\/12\/queryprotheysparte3_3.png 592w, https:\/\/fabriciolima.net\/blog\/wp-content\/uploads\/2017\/12\/queryprotheysparte3_3-300x113.png 300w, https:\/\/fabriciolima.net\/blog\/wp-content\/uploads\/2017\/12\/queryprotheysparte3_3-410x154.png 410w, https:\/\/fabriciolima.net\/blog\/wp-content\/uploads\/2017\/12\/queryprotheysparte3_3-100x38.png 100w, https:\/\/fabriciolima.net\/blog\/wp-content\/uploads\/2017\/12\/queryprotheysparte3_3-275x103.png 275w, https:\/\/fabriciolima.net\/blog\/wp-content\/uploads\/2017\/12\/queryprotheysparte3_3-20x8.png 20w\" sizes=\"auto, (max-width: 592px) 100vw, 592px\" \/><\/p>\n<p>&nbsp;<\/p>\n<p>Segue a diferen\u00e7a de leituras com a cria\u00e7\u00e3o dos \u00edndices:<\/p>\n<pre class=\"lang:tsql decode:true \">-- Antes dos \u00edndices\r\nTable 'SC5080'. Scan count 2319, logical reads 14538\r\nTable 'SC6080'. Scan count 1, logical reads 7121\r\n\r\n--Depois dos \u00edndices\r\nTable 'SC5080'. Scan count 2319, logical reads 7423\r\nTable 'SC6080'. Scan count 1, logical reads 15<\/pre>\n<p>Tabela <strong>SC5080<\/strong> rediziu <strong>7 mil reads<\/strong> e a tabela <strong>SC6080<\/strong> reduziu mais <strong>7 mil reads<\/strong>.<\/p>\n<p>N\u00e3o foi um ganho t\u00e3o grande quanto nos 2 casos anteriores, mas como s\u00e3o \u00edndices bons (<strong>PRODUTO<\/strong> e <strong>NUM<\/strong>), certamente esses \u00edndices devem ser utilizados para outras queries.<\/p>\n<p><strong>Lembrem disso:<\/strong> <em>Um \u00edndice por uma coluna boa, n\u00e3o vai ser utilizado s\u00f3 pela query que voc\u00ea est\u00e1 analisando, certamente ser\u00e1 utilizado por outras queries do sistema.<\/em><\/p>\n<p>\u00c9 isso ai pessoal, melhoramos mais uma query no Protheus.<\/p>\n<p>At\u00e9 a pr\u00f3xima an\u00e1lise.<\/p>\n<p>&nbsp;<\/p>\n<p><span style=\"color: #ff0000;\"><strong>Atualizado no dia 07\/10\/2020:<\/strong><\/span><\/p>\n<p>Publiquei um curso com 11 horas de dura\u00e7\u00e3o com toda minha experi\u00eancia de anos no assunto e de dezenas de clientes Protheus atendidos:<\/p>\n<p>Curso:\u00a0<a class=\"external-link wpel-icon-left\" href=\"https:\/\/cursos.powertuning.com.br\/course?courseid=melhorando-a-performance-de-consultas-no-totvs-protheus\" target=\"_blank\" rel=\"nofollow external noopener noreferrer\" data-wpel-link=\"external\">Melhorando a Performance de Consultas no Totvs Protheus<\/a><\/p>\n<p>Gravei uma aula gr\u00e1tis com 60 minutos de dura\u00e7\u00e3o sobre o que voc\u00ea deve aprender para melhorar a performance no Protheus:<\/p>\n<div class=\"fluid-width-video-wrapper\"><a href=\"https:\/\/www.youtube.com\/watch?v=BKmUa3aZn6s\" target=\"_blank\" rel=\"noopener noreferrer\">https:\/\/www.youtube.com\/watch?v=BKmUa3aZn6s<\/a><\/div>\n<div><\/div>\n<div><\/div>\n<p><b>Gostou desse Post?<\/b><\/p>\n<p>Curta, comente, compartilhe com os coleguinhas\u2026<\/p>\n<p>Assine meu canal no\u00a0<a class=\"external-link wpel-icon-left\" href=\"https:\/\/www.youtube.com\/channel\/UCeBRAO_LLrUdSrOXIywjzRA\" target=\"_blank\" rel=\"external noopener noreferrer nofollow\" data-wpel-link=\"external\">Youtube<\/a>\u00a0e curta minha\u00a0<a class=\"external-link wpel-icon-left\" href=\"https:\/\/www.facebook.com\/FabricioLimaSolucoesemBancodeDados\/\" target=\"_blank\" rel=\"external noopener noreferrer nofollow\" data-wpel-link=\"external\">P\u00e1gina no Facebook<\/a>\u00a0para receber Dicas de Leituras e Eventos sobre SQL Server.<\/p>\n<p>At\u00e9 a pr\u00f3xima.<\/p>\n<p>Abra\u00e7os,<\/p>\n<p>Fabr\u00edcio Lima<\/p>\n<p>Microsoft Data Platform MVP<\/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, Antes de lerem esse post, caso ainda n\u00e3o tenham lido os anteriores, sugiro que fa\u00e7am para seguirem a linha de racioc\u00ednio: https:\/\/www.fabriciolima.net\/blog\/2017\/12\/11\/melhorando-a-performance-de-consultas-no-totvs-protheus-parte-1\/ https:\/\/www.fabriciolima.net\/blog\/2017\/12\/18\/melhorando-a-performance-de-consultas-no-totvs-protheus-parte-2\/ Pegando mais uma quey no Traces de queries demoradas. Durante a semana, essa query apareceu v\u00e1rias vezes demorando mais de 3 segundos. Contudo, no fim de semana, ao rodar ela [&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,942,991,13,33,280],"tags":[15,1031,1032,1101,1099,1100,1097,1098,1096,1048,1044,1103,942,1102,1595,1054,23,1029,1030,1088,1089,1025,1026,1049,1045,110,1034,1033,1597,1016,1040,1019,1598,1035,1042,1023,1024,1596,1046,1021,1020,1039,1053,1022,1018,1059,1047,1041,1036,1052,1060,1038,1051,33,1057,1017,1015,1055,1050,1043],"class_list":["post-8459","post","type-post","status-publish","format-standard","hentry","category-administracao-de-bd","category-consultoria-sql-server","category-dba-remoto","category-querys-do-dia-a-dia","category-sql-server","category-virtual-pass-br","tag-banco-de-dados","tag-banco-protheus","tag-banco-totvs","tag-consultor-crm","tag-consultor-datasul","tag-consultor-microsiga","tag-consultor-protheus","tag-consultor-rm","tag-consultor-totvs","tag-consultoria-microsiga","tag-consultoria-protheus","tag-consultoria-rm","tag-consultoria-sql-server","tag-consultoria-totvs","tag-crm-datasul-datasul-erp","tag-datasul-totvs","tag-dba","tag-dba-protheus","tag-dba-totvs","tag-dica-banco-de-dados-protheus","tag-dicas-banco-de-dados-protheus","tag-erp","tag-erp-com-sql-server","tag-erp-microsiga","tag-erp-protheus","tag-indice","tag-lentidao-banco-de-dados","tag-lentidao-protheus","tag-lentidao-protheus-12","tag-microsiga","tag-microsiga-protheus","tag-microsiga-sql-server","tag-migracao-protheus-12","tag-performance-protheus","tag-protheus","tag-protheus-10","tag-protheus-11","tag-protheus-12","tag-protheus-microsiga","tag-protheus-microsoft-sql-server","tag-protheus-sql-server","tag-protheus-totvs","tag-rm-sistemas","tag-rm-sql-server","tag-siga","tag-sistema-crm","tag-sistema-microsiga","tag-sistema-protheus","tag-sistema-rm","tag-sistema-rm-totvs","tag-sistema-wms","tag-sistemas-de-gestao","tag-sistemas-erp","tag-sql-server","tag-suporte-totvs","tag-top-connect","tag-totvs","tag-totvs-datasul","tag-totvs-microsiga","tag-totvs-protheus"],"jetpack_featured_media_url":"","jetpack-related-posts":[{"id":20361,"url":"https:\/\/fabriciolima.net\/blog\/2025\/01\/07\/10-motivos-para-quem-usa-o-protheus-totvs-implementar-o-power-alerts\/","url_meta":{"origin":8459,"position":0},"title":"10 motivos para quem usa o Protheus (Totvs) implementar o Power Alerts","author":"Fabr\u00edcio Lima","date":"7 de janeiro de 2025","format":false,"excerpt":"Fala Pessoal, 12 anos atr\u00e1s escrevi esse post aqui no Blog e ele fez muito sucesso: https:\/\/www.fabriciolima.net\/blog\/2013\/12\/14\/5-motivos-para-quem-utiliza-o-protheus-totvs-contratar-um-dba-sql-server\/ Hoje fiz um atualizado no Blog da Power Tuning, mas agora com 10 motivos para quem usa o Protheus (Totvs) implementar o Power Alerts https:\/\/powertuning.com.br\/10-motivos-para-quem-usa-o-protheus-totvs-implementar-o-power-alerts\/ Leiam pois ficou muito bom. Abra\u00e7os, Fabr\u00edcio Lima\u2026","rel":"","context":"Em &quot;Sem categoria&quot;","block_context":{"text":"Sem categoria","link":"https:\/\/fabriciolima.net\/blog\/category\/sem-categoria\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/fabriciolima.net\/blog\/wp-content\/uploads\/2025\/01\/novo-post-blog-300x300.png?resize=350%2C200&ssl=1","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/fabriciolima.net\/blog\/wp-content\/uploads\/2025\/01\/novo-post-blog-300x300.png?resize=350%2C200&ssl=1 1x, https:\/\/i0.wp.com\/fabriciolima.net\/blog\/wp-content\/uploads\/2025\/01\/novo-post-blog-300x300.png?resize=525%2C300&ssl=1 1.5x"},"classes":[]},{"id":2881,"url":"https:\/\/fabriciolima.net\/blog\/2014\/03\/18\/importando-arquivos-dbf-protheus-totvs-para-o-sql-server\/","url_meta":{"origin":8459,"position":1},"title":"Importando arquivos DBF (Protheus Totvs) para o SQL Server","author":"Fabr\u00edcio Lima","date":"18 de mar\u00e7o de 2014","format":false,"excerpt":"Ol\u00e1 Pessoal, Realizando um trabalho com minha Consultoria Remota, o cliente precisava \u00a0importar arquivos no formato DBF para o SQL Server. Nativamente, n\u00e3o \u00e9 poss\u00edvel fazer essa importa\u00e7\u00e3o. Ap\u00f3s algumas pesquisas e testes, consegui realizar a importa\u00e7\u00e3o dos arquivos da seguinte forma: 1 - Download do\u00a0Microsoft Access Database Engine 2010\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":"","width":0,"height":0},"classes":[]},{"id":13849,"url":"https:\/\/fabriciolima.net\/blog\/2020\/10\/10\/novo-curso-imperdivel-melhorando-a-performance-de-consultas-no-totvs-protheus\/","url_meta":{"origin":8459,"position":2},"title":"[Novo Curso Imperd\u00edvel] Melhorando a Performance de Consultas no Totvs Protheus","author":"Fabr\u00edcio Lima","date":"10 de outubro de 2020","format":false,"excerpt":"Fala Pessoal, O grande dia chegou!!! O meu novo curso j\u00e1 est\u00e1 dispon\u00edvel na plataforma da Power Tuning: Melhorando a Performance de Consultas no Totvs Protheus At\u00e9 a pr\u00f3xima ter\u00e7a-feira (13\/10) temos aquele bom e velho voucher dispon\u00edvel: 25OFFPRIMEIRASEMANA S\u00e3o 11 horas de curso e tem certificado no final para\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\/2020\/10\/WhatsApp-Image-2020-10-12-at-08.36.34.jpeg?resize=350%2C200&ssl=1","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/www.fabriciolima.net\/blog\/wp-content\/uploads\/2020\/10\/WhatsApp-Image-2020-10-12-at-08.36.34.jpeg?resize=350%2C200&ssl=1 1x, https:\/\/i0.wp.com\/www.fabriciolima.net\/blog\/wp-content\/uploads\/2020\/10\/WhatsApp-Image-2020-10-12-at-08.36.34.jpeg?resize=525%2C300&ssl=1 1.5x, https:\/\/i0.wp.com\/www.fabriciolima.net\/blog\/wp-content\/uploads\/2020\/10\/WhatsApp-Image-2020-10-12-at-08.36.34.jpeg?resize=700%2C400&ssl=1 2x"},"classes":[]},{"id":8521,"url":"https:\/\/fabriciolima.net\/blog\/2018\/01\/23\/melhorando-a-performance-de-consultas-no-totvs-protheus-parte-5\/","url_meta":{"origin":8459,"position":3},"title":"Melhorando a Performance de Consultas no Totvs Protheus &#8211; Parte 5","author":"Fabr\u00edcio Lima","date":"23 de janeiro de 2018","format":false,"excerpt":"Fala pessoal, Antes de lerem esse post, caso ainda n\u00e3o tenham lido os anteriores, sugiro que fa\u00e7am para seguirem a linha de racioc\u00ednio: https:\/\/www.fabriciolima.net\/blog\/2017\/12\/11\/melhorando-a-performance-de-consultas-no-totvs-protheus-parte-1\/ https:\/\/www.fabriciolima.net\/blog\/2017\/12\/18\/melhorando-a-performance-de-consultas-no-totvs-protheus-parte-2\/ https:\/\/www.fabriciolima.net\/blog\/2018\/01\/08\/melhorando-a-performance-de-consultas-no-totvs-protheus-parte-3\/ https:\/\/www.fabriciolima.net\/blog\/2018\/01\/16\/melhorando-a-performance-de-consultas-no-totvs-protheus-parte-4\/ Hoje vamos analisar a query abaixo que estava demorando 28 segundos em um cliente e foi executada mais de 100 vezes em um\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\/2018\/01\/Netflix5-1.png?resize=350%2C200&ssl=1","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/www.fabriciolima.net\/blog\/wp-content\/uploads\/2018\/01\/Netflix5-1.png?resize=350%2C200&ssl=1 1x, https:\/\/i0.wp.com\/www.fabriciolima.net\/blog\/wp-content\/uploads\/2018\/01\/Netflix5-1.png?resize=525%2C300&ssl=1 1.5x"},"classes":[]},{"id":8450,"url":"https:\/\/fabriciolima.net\/blog\/2017\/12\/18\/melhorando-a-performance-de-consultas-no-totvs-protheus-parte-2\/","url_meta":{"origin":8459,"position":4},"title":"Melhorando a Performance de Consultas no Totvs Protheus &#8211; Parte 2","author":"Fabr\u00edcio Lima","date":"18 de dezembro de 2017","format":false,"excerpt":"Fala pessoal, Estamos aqui para o segundo post da nossa s\u00e9rie que tem um epis\u00f3dio novo a cada semana. Antes de lerem esse post, sugiro verem o anterior para que sigam a sequ\u00eancia correta da s\u00e9rie: Melhorando a Performance de Consultas no Totvs Protheus \u2013 Parte 1 Agora que j\u00e1\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\/NetFlix2.png?resize=350%2C200&ssl=1","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/www.fabriciolima.net\/blog\/wp-content\/uploads\/2017\/12\/NetFlix2.png?resize=350%2C200&ssl=1 1x, https:\/\/i0.wp.com\/www.fabriciolima.net\/blog\/wp-content\/uploads\/2017\/12\/NetFlix2.png?resize=525%2C300&ssl=1 1.5x"},"classes":[]},{"id":8718,"url":"https:\/\/fabriciolima.net\/blog\/2018\/02\/07\/melhorando-a-performance-de-consultas-no-totvs-protheus-parte-7\/","url_meta":{"origin":8459,"position":5},"title":"Melhorando a Performance de Consultas no Totvs Protheus &#8211; Parte 7","author":"Fabr\u00edcio Lima","date":"7 de fevereiro de 2018","format":false,"excerpt":"Fala pessoal, Como tudo que \u00e9 bom dura, pouco, esse \u00e9 o \u00faltimo epis\u00f3dio da nossa s\u00e9rie de artigos de Tuning de consultas no Totvs Protheus. Lembrando que essas dicas valem para queries de outros sistemas tamb\u00e9m. Antes de lerem esse post, caso ainda n\u00e3o tenham lido os anteriores, sugiro\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\/2018\/02\/fimnetflix.png?resize=350%2C200&ssl=1","width":350,"height":200},"classes":[]}],"post_mailing_queue_ids":[],"_links":{"self":[{"href":"https:\/\/fabriciolima.net\/blog\/wp-json\/wp\/v2\/posts\/8459","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=8459"}],"version-history":[{"count":8,"href":"https:\/\/fabriciolima.net\/blog\/wp-json\/wp\/v2\/posts\/8459\/revisions"}],"predecessor-version":[{"id":13843,"href":"https:\/\/fabriciolima.net\/blog\/wp-json\/wp\/v2\/posts\/8459\/revisions\/13843"}],"wp:attachment":[{"href":"https:\/\/fabriciolima.net\/blog\/wp-json\/wp\/v2\/media?parent=8459"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/fabriciolima.net\/blog\/wp-json\/wp\/v2\/categories?post=8459"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/fabriciolima.net\/blog\/wp-json\/wp\/v2\/tags?post=8459"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}