{"id":19525,"date":"2024-05-22T17:22:47","date_gmt":"2024-05-22T20:22:47","guid":{"rendered":"https:\/\/www.fabriciolima.net\/?p=19525"},"modified":"2024-06-05T12:39:28","modified_gmt":"2024-06-05T15:39:28","slug":"azure-sql-copilot-01-identificando-locks-no-bd-perguntando-ao-copilot","status":"publish","type":"post","link":"https:\/\/fabriciolima.net\/blog\/2024\/05\/22\/azure-sql-copilot-01-identificando-locks-no-bd-perguntando-ao-copilot\/","title":{"rendered":"Azure SQL Copilot (#01) &#8211; Identificando Locks no BD apenas perguntando ao Copilot"},"content":{"rendered":"<p>Fala Pessoal,<\/p>\n<p>Hoje vou iniciar uma s\u00e9rie onde devo mostrar bastante coisa legal do <strong>Copilot para SQL<\/strong> que temos no Azure.<\/p>\n<p>Estou participando do Preview do Copilot para Azure SQL Database e dando feedbacks ao time de produto dos resultados que encontro.<\/p>\n<p>Ent\u00e3o vamos aos primeiros testes&#8230;<\/p>\n<p>Lock e CPU alta s\u00e3o respons\u00e1veis pela maioria das lentid\u00f5es que vemos no dia a dia nos clientes.<\/p>\n<p>Nesse artivo vou simular um lock e ver se o Copilot me ajuda na identifica\u00e7\u00e3o.<\/p>\n<p>Gerei um lock em uma base de dados de teste e perguntei ao Copilot: <strong>Eu tenho problema de performance na minha base de dados?<\/strong><\/p>\n<p>Ele me respondeu que o uso de CPU estava bem baixo, mas me avisou que eu tinha sim Lock no banco:<\/p>\n<p>&nbsp;<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\" wp-image-19526 aligncenter\" src=\"https:\/\/fabriciolima.net\/blog\/wp-content\/uploads\/2024\/05\/pergunta-pergormance-copilot-300x291.png\" alt=\"\" width=\"498\" height=\"483\" srcset=\"https:\/\/fabriciolima.net\/blog\/wp-content\/uploads\/2024\/05\/pergunta-pergormance-copilot-300x291.png 300w, https:\/\/fabriciolima.net\/blog\/wp-content\/uploads\/2024\/05\/pergunta-pergormance-copilot-410x397.png 410w, https:\/\/fabriciolima.net\/blog\/wp-content\/uploads\/2024\/05\/pergunta-pergormance-copilot-100x97.png 100w, https:\/\/fabriciolima.net\/blog\/wp-content\/uploads\/2024\/05\/pergunta-pergormance-copilot-275x267.png 275w, https:\/\/fabriciolima.net\/blog\/wp-content\/uploads\/2024\/05\/pergunta-pergormance-copilot-20x20.png 20w, https:\/\/fabriciolima.net\/blog\/wp-content\/uploads\/2024\/05\/pergunta-pergormance-copilot.png 584w\" sizes=\"auto, (max-width: 498px) 100vw, 498px\" \/><\/p>\n<p>&nbsp;<\/p>\n<p>Top demais em?<\/p>\n<p>Sem logar no SSMS ou rodar qualquer query pegamos quem est\u00e1 bloqueando quem e ele retorna inclusive a query envolvida no processo.<\/p>\n<p>Esse \u00e9 o lock que gerei para teste:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\" wp-image-19527 aligncenter\" src=\"https:\/\/fabriciolima.net\/blog\/wp-content\/uploads\/2024\/05\/simulacao-de-lock-300x72.png\" alt=\"\" width=\"496\" height=\"119\" srcset=\"https:\/\/fabriciolima.net\/blog\/wp-content\/uploads\/2024\/05\/simulacao-de-lock-300x72.png 300w, https:\/\/fabriciolima.net\/blog\/wp-content\/uploads\/2024\/05\/simulacao-de-lock-768x185.png 768w, https:\/\/fabriciolima.net\/blog\/wp-content\/uploads\/2024\/05\/simulacao-de-lock-700x169.png 700w, https:\/\/fabriciolima.net\/blog\/wp-content\/uploads\/2024\/05\/simulacao-de-lock-410x99.png 410w, https:\/\/fabriciolima.net\/blog\/wp-content\/uploads\/2024\/05\/simulacao-de-lock-100x24.png 100w, https:\/\/fabriciolima.net\/blog\/wp-content\/uploads\/2024\/05\/simulacao-de-lock-275x66.png 275w, https:\/\/fabriciolima.net\/blog\/wp-content\/uploads\/2024\/05\/simulacao-de-lock-20x5.png 20w, https:\/\/fabriciolima.net\/blog\/wp-content\/uploads\/2024\/05\/simulacao-de-lock.png 841w\" sizes=\"auto, (max-width: 496px) 100vw, 496px\" \/><\/p>\n<p>S\u00f3 isso a\u00ed j\u00e1 seria de uma baita ajuda principalmente para quem n\u00e3o sabe realizar esse tipo de valida\u00e7\u00e3o no SQL Server.<\/p>\n<p>&nbsp;<\/p>\n<p>Perguntando se existe um problema de performance, ele deu uma resposta certeira. Demora uns 30-40 segundos para ele responder mais ou menos.<\/p>\n<p>Contudo, ao perguntar diretamente sobre lock, ele se perdeu um pouco conforme abaixo.<\/p>\n<p>Gerei uma nova cadeia de Lock:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-19538\" src=\"https:\/\/fabriciolima.net\/blog\/wp-content\/uploads\/2024\/05\/valores-corretos-300x71.png\" alt=\"\" width=\"643\" height=\"152\" srcset=\"https:\/\/fabriciolima.net\/blog\/wp-content\/uploads\/2024\/05\/valores-corretos-300x71.png 300w, https:\/\/fabriciolima.net\/blog\/wp-content\/uploads\/2024\/05\/valores-corretos-768x181.png 768w, https:\/\/fabriciolima.net\/blog\/wp-content\/uploads\/2024\/05\/valores-corretos-700x165.png 700w, https:\/\/fabriciolima.net\/blog\/wp-content\/uploads\/2024\/05\/valores-corretos-410x97.png 410w, https:\/\/fabriciolima.net\/blog\/wp-content\/uploads\/2024\/05\/valores-corretos-100x24.png 100w, https:\/\/fabriciolima.net\/blog\/wp-content\/uploads\/2024\/05\/valores-corretos-275x65.png 275w, https:\/\/fabriciolima.net\/blog\/wp-content\/uploads\/2024\/05\/valores-corretos-20x5.png 20w, https:\/\/fabriciolima.net\/blog\/wp-content\/uploads\/2024\/05\/valores-corretos.png 927w\" sizes=\"auto, (max-width: 643px) 100vw, 643px\" \/><\/p>\n<p>Ao perguntar se tinha um problema de lock acontecendo ele entendeu deadlock:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\" wp-image-19536 aligncenter\" src=\"https:\/\/fabriciolima.net\/blog\/wp-content\/uploads\/2024\/05\/tenho-um-problema-de-lock-300x147.png\" alt=\"\" width=\"410\" height=\"201\" srcset=\"https:\/\/fabriciolima.net\/blog\/wp-content\/uploads\/2024\/05\/tenho-um-problema-de-lock-300x147.png 300w, https:\/\/fabriciolima.net\/blog\/wp-content\/uploads\/2024\/05\/tenho-um-problema-de-lock-410x200.png 410w, https:\/\/fabriciolima.net\/blog\/wp-content\/uploads\/2024\/05\/tenho-um-problema-de-lock-100x49.png 100w, https:\/\/fabriciolima.net\/blog\/wp-content\/uploads\/2024\/05\/tenho-um-problema-de-lock-275x134.png 275w, https:\/\/fabriciolima.net\/blog\/wp-content\/uploads\/2024\/05\/tenho-um-problema-de-lock-20x10.png 20w, https:\/\/fabriciolima.net\/blog\/wp-content\/uploads\/2024\/05\/tenho-um-problema-de-lock.png 530w\" sizes=\"auto, (max-width: 410px) 100vw, 410px\" \/><\/p>\n<p>&nbsp;<\/p>\n<p>Perguntei se tinha algum processo com wait de lock e nada tamb\u00e9m:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-19530 aligncenter\" src=\"https:\/\/fabriciolima.net\/blog\/wp-content\/uploads\/2024\/05\/do-i-have-a-update-lock-on-my-database-300x292.png\" alt=\"\" width=\"368\" height=\"358\" srcset=\"https:\/\/fabriciolima.net\/blog\/wp-content\/uploads\/2024\/05\/do-i-have-a-update-lock-on-my-database-300x292.png 300w, https:\/\/fabriciolima.net\/blog\/wp-content\/uploads\/2024\/05\/do-i-have-a-update-lock-on-my-database-410x400.png 410w, https:\/\/fabriciolima.net\/blog\/wp-content\/uploads\/2024\/05\/do-i-have-a-update-lock-on-my-database-100x97.png 100w, https:\/\/fabriciolima.net\/blog\/wp-content\/uploads\/2024\/05\/do-i-have-a-update-lock-on-my-database-275x268.png 275w, https:\/\/fabriciolima.net\/blog\/wp-content\/uploads\/2024\/05\/do-i-have-a-update-lock-on-my-database-20x20.png 20w, https:\/\/fabriciolima.net\/blog\/wp-content\/uploads\/2024\/05\/do-i-have-a-update-lock-on-my-database.png 550w\" sizes=\"auto, (max-width: 368px) 100vw, 368px\" \/><\/p>\n<p>Perguntei se tinha algum lock de update na minha database e ele entendeu deadlock de novo:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\" wp-image-19537 aligncenter\" src=\"https:\/\/fabriciolima.net\/blog\/wp-content\/uploads\/2024\/05\/update-lock-300x137.png\" alt=\"\" width=\"339\" height=\"155\" srcset=\"https:\/\/fabriciolima.net\/blog\/wp-content\/uploads\/2024\/05\/update-lock-300x137.png 300w, https:\/\/fabriciolima.net\/blog\/wp-content\/uploads\/2024\/05\/update-lock-410x187.png 410w, https:\/\/fabriciolima.net\/blog\/wp-content\/uploads\/2024\/05\/update-lock-100x46.png 100w, https:\/\/fabriciolima.net\/blog\/wp-content\/uploads\/2024\/05\/update-lock-275x126.png 275w, https:\/\/fabriciolima.net\/blog\/wp-content\/uploads\/2024\/05\/update-lock-20x9.png 20w, https:\/\/fabriciolima.net\/blog\/wp-content\/uploads\/2024\/05\/update-lock.png 547w\" sizes=\"auto, (max-width: 339px) 100vw, 339px\" \/><\/p>\n<p>Quando perguntei se tinha lock na tabela que estava sofrendo lock, finalmente ele achou e me retornou:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-19539 aligncenter\" src=\"https:\/\/fabriciolima.net\/blog\/wp-content\/uploads\/2024\/05\/colocando-a-tabela-que-ta-acontecendo-o-lock-ele-encontrou-172x300.png\" alt=\"\" width=\"260\" height=\"453\" srcset=\"https:\/\/fabriciolima.net\/blog\/wp-content\/uploads\/2024\/05\/colocando-a-tabela-que-ta-acontecendo-o-lock-ele-encontrou-172x300.png 172w, https:\/\/fabriciolima.net\/blog\/wp-content\/uploads\/2024\/05\/colocando-a-tabela-que-ta-acontecendo-o-lock-ele-encontrou-410x715.png 410w, https:\/\/fabriciolima.net\/blog\/wp-content\/uploads\/2024\/05\/colocando-a-tabela-que-ta-acontecendo-o-lock-ele-encontrou-100x174.png 100w, https:\/\/fabriciolima.net\/blog\/wp-content\/uploads\/2024\/05\/colocando-a-tabela-que-ta-acontecendo-o-lock-ele-encontrou-275x480.png 275w, https:\/\/fabriciolima.net\/blog\/wp-content\/uploads\/2024\/05\/colocando-a-tabela-que-ta-acontecendo-o-lock-ele-encontrou-11x20.png 11w, https:\/\/fabriciolima.net\/blog\/wp-content\/uploads\/2024\/05\/colocando-a-tabela-que-ta-acontecendo-o-lock-ele-encontrou.png 472w\" sizes=\"auto, (max-width: 260px) 100vw, 260px\" \/><\/p>\n<p>Eu n\u00e3o mostrei l\u00e1 em cima, mas reparem que ele ainda retorna informa\u00e7\u00f5es de como voc\u00ea pode analisar e resolver seu problema de lock. Evita seu tempo de pesquisar no google.<\/p>\n<p>Eu esperava que ele me desse informa\u00e7\u00f5es de lock sem ter que entrar no detalhe do nome da tabela. J\u00e1 passei o feedback para o time de produto e provavelmente daqui um tempo ele j\u00e1 passar\u00e1 a responder melhor.<\/p>\n<p>Aumentei o n\u00famero de locks para ver como ele iria mostrar:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-19528 aligncenter\" src=\"https:\/\/fabriciolima.net\/blog\/wp-content\/uploads\/2024\/05\/aumentei-o-lock-300x125.png\" alt=\"\" width=\"489\" height=\"204\" srcset=\"https:\/\/fabriciolima.net\/blog\/wp-content\/uploads\/2024\/05\/aumentei-o-lock-300x125.png 300w, https:\/\/fabriciolima.net\/blog\/wp-content\/uploads\/2024\/05\/aumentei-o-lock-768x320.png 768w, https:\/\/fabriciolima.net\/blog\/wp-content\/uploads\/2024\/05\/aumentei-o-lock-700x292.png 700w, https:\/\/fabriciolima.net\/blog\/wp-content\/uploads\/2024\/05\/aumentei-o-lock-410x171.png 410w, https:\/\/fabriciolima.net\/blog\/wp-content\/uploads\/2024\/05\/aumentei-o-lock-100x42.png 100w, https:\/\/fabriciolima.net\/blog\/wp-content\/uploads\/2024\/05\/aumentei-o-lock-275x115.png 275w, https:\/\/fabriciolima.net\/blog\/wp-content\/uploads\/2024\/05\/aumentei-o-lock-20x8.png 20w, https:\/\/fabriciolima.net\/blog\/wp-content\/uploads\/2024\/05\/aumentei-o-lock.png 866w\" sizes=\"auto, (max-width: 489px) 100vw, 489px\" \/><\/p>\n<p>E ele mostrou os processos bloqueados certinho:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\" wp-image-19532 aligncenter\" src=\"https:\/\/fabriciolima.net\/blog\/wp-content\/uploads\/2024\/05\/mensagem-agrupada-de-lock-300x267.png\" alt=\"\" width=\"406\" height=\"362\" srcset=\"https:\/\/fabriciolima.net\/blog\/wp-content\/uploads\/2024\/05\/mensagem-agrupada-de-lock-300x267.png 300w, https:\/\/fabriciolima.net\/blog\/wp-content\/uploads\/2024\/05\/mensagem-agrupada-de-lock-410x365.png 410w, https:\/\/fabriciolima.net\/blog\/wp-content\/uploads\/2024\/05\/mensagem-agrupada-de-lock-100x89.png 100w, https:\/\/fabriciolima.net\/blog\/wp-content\/uploads\/2024\/05\/mensagem-agrupada-de-lock-275x245.png 275w, https:\/\/fabriciolima.net\/blog\/wp-content\/uploads\/2024\/05\/mensagem-agrupada-de-lock-20x18.png 20w, https:\/\/fabriciolima.net\/blog\/wp-content\/uploads\/2024\/05\/mensagem-agrupada-de-lock.png 618w\" sizes=\"auto, (max-width: 406px) 100vw, 406px\" \/><\/p>\n<p>&nbsp;<\/p>\n<p>Mandei todos esses prints para o <a href=\"https:\/\/www.linkedin.com\/in\/joesack\/\" target=\"_blank\" rel=\"noopener\">Joe Sack<\/a> (sigam ele no linkedin), que \u00e9 o respons\u00e1vel pelo projeto do Copilot no Azure SQL e ele vai levar ao time de engenharia.<\/p>\n<p>Se mais para frente o Copilot responder corretamente sobre lock foi minha contribui\u00e7\u00e3o. kkkkkkkkkk<\/p>\n<p>De nada em galera.\u00a0 =)<\/p>\n<p>\u00c9 isso a\u00ed pessoal.<\/p>\n<p>\u00c9 s\u00f3 o come\u00e7o, ainda em testes e certamente as respostas v\u00e3o melhorando com o passar do tempo.<\/p>\n<p>Assim como os outros Copilots, esse de SQL ajudar\u00e1 bastante no dia a dia.<\/p>\n<p><strong>O Copilot\/IA n\u00e3o vai substituir uma pessoa, mas uma pessoa que saiba usar o Copilot\/IA vai aumentar sua produtividade e substituir uma pessoa que n\u00e3o sabe usar e produz menos.<\/strong><\/p>\n<p><strong>Esse \u00e9 o presente\/futuro que est\u00e1 se desenhando ai com a IA.<\/strong><\/p>\n<p>Quer ficar por dentro das novidades do mundo da IA e aprender junto com nosso Head de IA Rodrigo Ribeiro?<\/p>\n<ul>\n<li><a href=\"https:\/\/www.linkedin.com\/in\/rodrigoribeirogomes\/\" target=\"_blank\" rel=\"noopener\">Siga o Rodrigo no Linkedin<\/a><\/li>\n<\/ul>\n<p>O Rodrigo criou um instagram, blog e canal no youtube s\u00f3 para falar der IA, o IA Talking. N\u00e3o deixem de acompanhar:<\/p>\n<ul>\n<li><a href=\"https:\/\/www.youtube.com\/@IATalking\" target=\"_blank\" rel=\"noopener\">Canal IA Talking Youtube<\/a><\/li>\n<li><a href=\"https:\/\/iatalk.ing\/\" target=\"_blank\" rel=\"noopener\">Blog IA Talking<\/a><\/li>\n<li><a href=\"https:\/\/www.tiktok.com\/@iatalking\" target=\"_blank\" rel=\"noopener\">Tiktok @iatalking<\/a><\/li>\n<li><a href=\"https:\/\/www.instagram.com\/iatalking\/\" target=\"_blank\" rel=\"noopener\">Instagram @iatalking<\/a><\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<p>Gostaram?<\/p>\n<p>Querem fazer perguntas ao Copilot de SQL?<\/p>\n<p>Mandem ai nos coment\u00e1rios que eu fa\u00e7o para voc\u00eas e posto depois em novos artigos.<\/p>\n<p>At\u00e9 o pr\u00f3ximo artigo.<\/p>\n<p>Abra\u00e7os,<\/p>\n<p>Fabr\u00edcio Lima<\/p>\n<p>CEO na Fabr\u00edcio Lima Solu\u00e7\u00f5es em BD<\/p>\n<p>Microsoft Data Platform MVP<\/p>\n<p>Instagram:<a class=\"external-link wpel-icon-left\" href=\"https:\/\/www.instagram.com\/fabriciofrancalima\/\" target=\"_blank\" rel=\"noopener external noreferrer nofollow\" data-wpel-link=\"external\">@fabriciofrancalima<\/a><\/p>\n<p>Linkedin:\u00a0<a class=\"external-link wpel-icon-left\" href=\"https:\/\/www.linkedin.com\/in\/fabriciofrancalima\/\" target=\"_blank\" rel=\"noopener noreferrer external nofollow\" data-wpel-link=\"external\">https:\/\/www.linkedin.com\/in\/fabriciofrancalima\/<\/a><\/p>\n<p>Consultoria:\u00a0comercial@powertuning.com.br<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Fala Pessoal, Hoje vou iniciar uma s\u00e9rie onde devo mostrar bastante coisa legal do Copilot para SQL que temos no Azure. Estou participando do Preview do Copilot para Azure SQL Database e dando feedbacks ao time de produto dos resultados que encontro. Ent\u00e3o vamos aos primeiros testes&#8230; Lock e CPU alta s\u00e3o respons\u00e1veis pela maioria [&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":""},"categories":[1961,1960,1962],"tags":[],"class_list":["post-19525","post","type-post","status-publish","format-standard","hentry","category-copilot","category-ia","category-inteligencia-artificial"],"post_mailing_queue_ids":[],"_links":{"self":[{"href":"https:\/\/fabriciolima.net\/blog\/wp-json\/wp\/v2\/posts\/19525","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=19525"}],"version-history":[{"count":10,"href":"https:\/\/fabriciolima.net\/blog\/wp-json\/wp\/v2\/posts\/19525\/revisions"}],"predecessor-version":[{"id":19590,"href":"https:\/\/fabriciolima.net\/blog\/wp-json\/wp\/v2\/posts\/19525\/revisions\/19590"}],"wp:attachment":[{"href":"https:\/\/fabriciolima.net\/blog\/wp-json\/wp\/v2\/media?parent=19525"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/fabriciolima.net\/blog\/wp-json\/wp\/v2\/categories?post=19525"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/fabriciolima.net\/blog\/wp-json\/wp\/v2\/tags?post=19525"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}