{"id":4763,"date":"2025-07-04T14:43:55","date_gmt":"2025-07-04T17:43:55","guid":{"rendered":"https:\/\/powertuning.com.br\/?p=4763"},"modified":"2025-07-04T14:43:55","modified_gmt":"2025-07-04T17:43:55","slug":"sql-server-2025-em-public-preview-destaques","status":"publish","type":"post","link":"https:\/\/powertuning.com.br\/blog\/sql-server-2025-em-public-preview-destaques\/","title":{"rendered":"SQL Server 2025 em Public Preview: Destaques"},"content":{"rendered":"<p class=\"article-editor-paragraph article-editor-content__has-focus\">O Public Preview do SQL Server 2025 foi liberado e j\u00e1 fizemos v\u00e1rios testes nele. Eu (Rodrigo Gomes) tive a oportunidade de participar do Private Preview e dei v\u00e1rios feedbacks, e estava muito ansioso para que o Public Preview fosse liberado para poder contar as v\u00e1rias novidades e mostrar um pouco do que vem por a\u00ed!<\/p>\n<p class=\"article-editor-paragraph\">Esta vers\u00e3o est\u00e1 marcada por muitas novidades, principalmente para desenvolvedores, al\u00e9m, de vir com suporte a opera\u00e7\u00f5es relacionadas a IA (Intelig\u00eancia Artificial). Esta \u00faltima, sem d\u00favidas, \u00e9 a grande novidade da vers\u00e3o. Segue o link para baixar o SQL Server 2025: <a class=\"article-editor-link article-editor-link\" href=\"https:\/\/aka.ms\/getsqlserver2025\" rel=\"noopener noreferrer\">https:\/\/aka.ms\/getsqlserver2025<\/a><\/p>\n<p class=\"article-editor-paragraph\">Antes de falarmos das novidades t\u00e9cnicas, deixe-me apresentar a nova logo, que achei simplesmente genial:<\/p>\n<p class=\"article-editor-paragraph\"><img loading=\"lazy\" decoding=\"async\" data-attachment-id=\"4765\" data-permalink=\"https:\/\/powertuning.com.br\/blog\/sql-server-2025-em-public-preview-destaques\/attachment\/1751553854720\/\" data-orig-file=\"https:\/\/powertuning.com.br\/blog\/wp-content\/uploads\/2025\/07\/1751553854720.png\" data-orig-size=\"165,131\" data-comments-opened=\"0\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"1751553854720\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/powertuning.com.br\/blog\/wp-content\/uploads\/2025\/07\/1751553854720.png\" class=\"alignnone wp-image-4765 \" src=\"https:\/\/powertuning.com.br\/blog\/wp-content\/uploads\/2025\/07\/1751553854720.png\" alt=\"\" width=\"220\" height=\"175\" \/><\/p>\n<p class=\"article-editor-paragraph\">Eu acho que foi a mais criativa de todas as vers\u00f5es e que melhor aproveitou o famoso \u00edcone de banco de dados representado pelos discos empilhados.<\/p>\n<p class=\"article-editor-paragraph\">Al\u00e9m disso, j\u00e1 fizemos <strong>duas lives<\/strong> para falar sobre algumas novidades que ser\u00e3o citadas nesse post. Confere l\u00e1 e se inscreva no <strong>Canal da Power Tuning<\/strong> para ficar por dentro das pr\u00f3ximas lives tamb\u00e9m!<\/p>\n<p class=\"article-editor-paragraph\"><strong>Power Live 07 &#8211; Novidades do SQL Server 2025 na pr\u00e1tica &#8211; Parte 1<\/strong><\/p>\n<p class=\"article-editor-paragraph\"><a class=\"article-editor-link article-editor-link\" href=\"https:\/\/www.youtube.com\/watch?v=XbcENZysqhQ&amp;list=PLZZcZLEIKFuIPXlB20Nbp5tL5g7nx2Br0\" rel=\"noopener noreferrer\">https:\/\/www.youtube.com\/watch?v=XbcENZysqhQ&amp;list=PLZZcZLEIKFuIPXlB20Nbp5tL5g7nx2Br0<\/a><\/p>\n<p class=\"article-editor-paragraph\"><strong>Power Live 08 &#8211; Novidades do SQL Server 2025 na pr\u00e1tica &#8211; Parte 2<\/strong><\/p>\n<p class=\"article-editor-paragraph\"><a class=\"article-editor-link article-editor-link\" href=\"https:\/\/www.youtube.com\/watch?v=kdLFVzr8gKA&amp;list=PLZZcZLEIKFuIPXlB20Nbp5tL5g7nx2Br0\" rel=\"noopener noreferrer\">https:\/\/www.youtube.com\/watch?v=kdLFVzr8gKA&amp;list=PLZZcZLEIKFuIPXlB20Nbp5tL5g7nx2Br0<\/a><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" data-attachment-id=\"4766\" data-permalink=\"https:\/\/powertuning.com.br\/blog\/sql-server-2025-em-public-preview-destaques\/attachment\/1751553886058\/\" data-orig-file=\"https:\/\/powertuning.com.br\/blog\/wp-content\/uploads\/2025\/07\/1751553886058.png\" data-orig-size=\"453,173\" data-comments-opened=\"0\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"1751553886058\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/powertuning.com.br\/blog\/wp-content\/uploads\/2025\/07\/1751553886058.png\" class=\"alignnone wp-image-4766 size-full\" src=\"https:\/\/powertuning.com.br\/blog\/wp-content\/uploads\/2025\/07\/1751553886058.png\" alt=\"\" width=\"453\" height=\"173\" srcset=\"https:\/\/powertuning.com.br\/blog\/wp-content\/uploads\/2025\/07\/1751553886058.png 453w, https:\/\/powertuning.com.br\/blog\/wp-content\/uploads\/2025\/07\/1751553886058-300x115.png 300w\" sizes=\"auto, (max-width: 453px) 100vw, 453px\" \/><\/p>\n<p class=\"article-editor-paragraph article-editor-content__has-focus\">Segue tamb\u00e9m o link com os scripts que foram utilizados nas lives:<\/p>\n<p class=\"article-editor-paragraph\"><a class=\"article-editor-link article-editor-link\" href=\"https:\/\/github.com\/rrg92\/sqlserver-lib\/tree\/main\/apresentacoes\/250604-PowerLive-Sql2025\" rel=\"noopener noreferrer\">https:\/\/github.com\/rrg92\/sqlserver-lib\/tree\/main\/apresentacoes\/250604-PowerLive-Sql2025<\/a><\/p>\n<p class=\"article-editor-paragraph\">Tamb\u00e9m j\u00e1 testamos o <a class=\"article-editor-link article-editor-link\" href=\"https:\/\/poweralerts.com.br\/\" rel=\"noopener noreferrer\"><strong>Power Alerts<\/strong><\/a> e est\u00e1 funcionando normalmente no <strong>SQL Server 2025<\/strong>! WOW!<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" data-attachment-id=\"4767\" data-permalink=\"https:\/\/powertuning.com.br\/blog\/sql-server-2025-em-public-preview-destaques\/attachment\/1751553954113\/\" data-orig-file=\"https:\/\/powertuning.com.br\/blog\/wp-content\/uploads\/2025\/07\/1751553954113.png\" data-orig-size=\"301,96\" data-comments-opened=\"0\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"1751553954113\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/powertuning.com.br\/blog\/wp-content\/uploads\/2025\/07\/1751553954113.png\" class=\"alignnone wp-image-4767 \" src=\"https:\/\/powertuning.com.br\/blog\/wp-content\/uploads\/2025\/07\/1751553954113.png\" alt=\"\" width=\"392\" height=\"125\" \/><\/p>\n<p class=\"article-editor-paragraph article-editor-content__has-focus\">Finalmente, vamos falar sobre as novidades do SQL Server 2025. Bora!<\/p>\n<p class=\"article-editor-paragraph\"><strong>Instala\u00e7\u00e3o: Novas Edi\u00e7\u00f5es<\/strong><\/p>\n<p class=\"article-editor-paragraph\">\u00a0Vamos come\u00e7ar por algumas mudan\u00e7as que voc\u00ea vai notar no instalador interativo.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" data-attachment-id=\"4768\" data-permalink=\"https:\/\/powertuning.com.br\/blog\/sql-server-2025-em-public-preview-destaques\/attachment\/1751554019414\/\" data-orig-file=\"https:\/\/powertuning.com.br\/blog\/wp-content\/uploads\/2025\/07\/1751554019414.png\" data-orig-size=\"339,138\" data-comments-opened=\"0\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"1751554019414\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/powertuning.com.br\/blog\/wp-content\/uploads\/2025\/07\/1751554019414.png\" class=\"alignnone wp-image-4768 \" src=\"https:\/\/powertuning.com.br\/blog\/wp-content\/uploads\/2025\/07\/1751554019414.png\" alt=\"\" width=\"474\" height=\"193\" srcset=\"https:\/\/powertuning.com.br\/blog\/wp-content\/uploads\/2025\/07\/1751554019414.png 339w, https:\/\/powertuning.com.br\/blog\/wp-content\/uploads\/2025\/07\/1751554019414-300x122.png 300w\" sizes=\"auto, (max-width: 474px) 100vw, 474px\" \/><\/p>\n<p class=\"article-editor-paragraph article-editor-content__has-focus\">A come\u00e7ar pela instala\u00e7\u00e3o, voc\u00ea vai perceber <strong>duas novas edi\u00e7\u00f5es<\/strong>: <strong>Enterprise Developer<\/strong>\u00a0 e <strong>Standard Developer<\/strong>. Ambas s\u00e3o <strong>edi\u00e7\u00f5es gratuitas<\/strong> do SQL Server, que at\u00e9 as vers\u00f5es anteriores voc\u00ea conhecia apenas como <strong>&#8220;developer&#8221;<\/strong>. Mas, a partir do 2025, agora voc\u00ea pode instalar uma edi\u00e7\u00e3o developer com as <strong>mesmas limita\u00e7\u00f5es da edi\u00e7\u00e3o Standard<\/strong>.<\/p>\n<p class=\"article-editor-paragraph\">Isso \u00e9 bem \u00fatil quando voc\u00ea precisa testar se sua aplica\u00e7\u00e3o vai funcionar bem com a edi\u00e7\u00e3o Standard. At\u00e9 o SQL Server 2022, se voc\u00ea quisesse garantir isso, teria que instalar um SQL Server Standard licenciado, ou seja, teria que j\u00e1 ter a licen\u00e7a e testar. Mas agora, antes que voc\u00ea possa decidir comprar o standard, voc\u00ea pode test\u00e1-lo gratuitamente.<\/p>\n<p class=\"article-editor-paragraph\">Ent\u00e3o, para resumir, as novas op\u00e7\u00f5es s\u00e3o:<\/p>\n<ul class=\"article-editor-bullet-list\">\n<li class=\"article-editor-list-item\">\n<p class=\"article-editor-paragraph\"><strong>Standard Developer:<\/strong> SQL gratuito para testes, com as mesmas limita\u00e7\u00f5es da edi\u00e7\u00e3o Standard.<\/p>\n<\/li>\n<li class=\"article-editor-list-item\">\n<p class=\"article-editor-paragraph\"><strong>Enterprise Developer:<\/strong> SQL gratuito para testes, mas sem limita\u00e7\u00f5es, igual a edi\u00e7\u00e3o Enterprise.<\/p>\n<\/li>\n<\/ul>\n<div class=\"article-editor-horizontal-rule__container\" contenteditable=\"false\">\n<hr class=\"article-editor-horizontal-rule\" \/>\n<div class=\"article-editor-horizontal-rule__delete-button-container\"><\/div>\n<\/div>\n<p class=\"article-editor-paragraph\"><strong>Integra\u00e7\u00e3o com API Rest:<\/strong><\/p>\n<p class=\"article-editor-paragraph\">Uma nova procedure est\u00e1 dispon\u00edvel: <strong>sp_invoke_external_rest_endpoint<\/strong>.<\/p>\n<p class=\"article-editor-paragraph\">Essa procedure <strong>permite que voc\u00ea chame API atrav\u00e9s de URL usando o protocolo HTTPS<\/strong>.\u00a0 Para ter uma ideia do potencial, veja como facilmente eu carrego os posts de um blog wordpress em uma tabela do SQL:<\/p>\n<pre class=\"article-editor-code-block\"><code>declare @PostsJson nvarchar(max)\r\n\r\nexec sp_invoke_external_rest_endpoint \r\n\t'https:\/\/thesqltimes.com\/blog\/wp-json\/wp\/v2\/posts?_fields=id,title,excerpt,tags,link&amp;per_page=10'\r\n\t,@response = @PostsJson output\r\n\t,@method = 'GET'\r\n \r\ndrop table if exists posts;\r\n \r\nselect  *\r\ninto posts\r\nfrom\r\nopenjson(@PostsJson,'$.result') with (\r\n\tid int\r\n\t,titulo nvarchar(500) '$.title.rendered'\r\n\t,resumo nvarchar(1000) '$.excerpt.rendered'\r\n\t,link varchar(500)\r\n)\r\n \r\nselect * from posts<\/code><\/pre>\n<p class=\"article-editor-paragraph\">Para <strong>habilitar<\/strong> essa procedure, voc\u00ea deve usar a <strong>sp_configure<\/strong>:<\/p>\n<pre class=\"article-editor-code-block\"><code>EXEC sp_configure 'external rest endpoint enabled',1\r\nRECONFIGURE;<\/code><\/pre>\n<p class=\"article-editor-paragraph\">Al\u00e9m disso, voc\u00ea tamb\u00e9m pode configurar autentica\u00e7\u00e3o usando o comando <strong>CREATE DATABASE SCOPED CREDENTIAL<\/strong> e especificando no par\u00e2metro <strong>@credential<\/strong> da procedure.<\/p>\n<p class=\"article-editor-paragraph\">Para mais informa\u00e7\u00f5es: <a class=\"article-editor-link article-editor-link\" href=\"https:\/\/learn.microsoft.com\/en-us\/sql\/relational-databases\/system-stored-procedures\/sp-invoke-external-rest-endpoint-transact-sql?view=fabric&amp;viewFallbackFrom=sql-server-ver17&amp;tabs=request-headers\" rel=\"noopener noreferrer\">sp_invoke_external_rest_endpoint (Transact-SQL) &#8211; SQL Server | Microsoft Learn<\/a><\/p>\n<div class=\"article-editor-horizontal-rule__container\" contenteditable=\"false\">\n<hr class=\"article-editor-horizontal-rule\" \/>\n<div class=\"article-editor-horizontal-rule__delete-button-container\"><\/div>\n<\/div>\n<p class=\"article-editor-paragraph\"><strong>AI: Novo data type e fun\u00e7\u00f5es<\/strong><\/p>\n<p class=\"article-editor-paragraph\">Esta vers\u00e3o vai trazer o suporte a <strong>embeddings<\/strong>, que permite fazer buscas eficientes de texto usando IA. <strong>Um novo tipo de dados chamado \u201cvector\u201d<\/strong> foi criado e com ele voc\u00ea vai poder armazenar os embeddings,<strong> que \u00e9 uma estrutura de dados gerada por modelos de AI<\/strong>.\u00a0 E ent\u00e3o, usando fun\u00e7\u00f5es como <strong>VECTOR_DISTANCE<\/strong> ou <strong>VECTOR_SEARCH<\/strong>, voc\u00ea pode fazer as buscas e compara\u00e7\u00f5es. Eu j\u00e1 tinha escrito um post bem detalhado sobre isso e agora voc\u00ea pode testar os scripts no seu Public Preview: <a class=\"article-editor-link article-editor-link\" href=\"https:\/\/iatalk.ing\/ia-sql-server-embeddings\/\" rel=\"noopener noreferrer\">IA no SQL Server: O que s\u00e3o embeddings \u2013 IA Talking \ud83e\udd16<\/a><\/p>\n<p class=\"article-editor-paragraph\">Aqui est\u00e1 um pequeno exemplo de como voc\u00ea pode <strong>gerar embeddings usando a OpenAI<\/strong>:<\/p>\n<pre class=\"article-editor-code-block\"><code>-- crie uma database master key\r\ncreate master key encryption by password = 'EscolhaUmaSenhaForteESecreta';\r\n \r\n-- Substitua APIKEY pela api key que gera no portal!\r\n-- Gere api keys em https:\/\/platform.openai.com\/api-keys\r\ncreate database scoped credential [https:\/\/api.openai.com]\r\nwith Identity = 'HTTPEndpointHeaders', SECRET = '{\"Authorization\":\"Bearer APIKEY\"}'\r\n \r\n-- Esses 2 comandos acimas voce precisa fazer apenas 1x\r\n \r\n-- crie a defini\u00e7\u00e3o do modelo de IA\r\nif exists(select * From sys.external_models where name = 'Openai')\r\ndrop external model Openai;\r\n \r\ncreate external model Openai -- de um nome de sua escolha!\r\nwith (\r\n\tLOCATION = 'https:\/\/api.openai.com\/v1\/embeddings'\r\n\t,API_FORMAT = 'OpenAI'\r\n\t,MODEL_TYPE = EMBEDDINGS\r\n\t,MODEL = 'text-embedding-3-small'\r\n\t,CREDENTIAL = [https:\/\/api.openai.com]\r\n)\r\n \r\n-- cria uma coluna para receber os embeddings!\r\nalter table posts add embeddings vector(1536)\r\n \r\n-- atualiza\r\nupdate posts set embeddings = AI_GENERATE_EMBEDDINGS(resumo use model Openai )\r\n \r\n-- faz uma busca!\r\ndeclare @Busca vector(1536) =  AI_GENERATE_EMBEDDINGS('performance' use model Openai )\r\n \r\nselect top 3\r\n\t*\r\n\t,CosineDistance = vector_distance('cosine',@Busca,embeddings)\r\nfrom\r\n\tposts\r\norder by\r\n\tCosineDistance<\/code><\/pre>\n<p class=\"article-editor-paragraph\">Note que no script acima, usamos diversos <strong>novos elementos<\/strong> <strong>relacionados ao suporte de IA<\/strong> no SQL Server:<\/p>\n<ul class=\"article-editor-bullet-list\">\n<li class=\"article-editor-list-item\">\n<p class=\"article-editor-paragraph\">Novo tipo de dados <strong>vector.<\/strong><\/p>\n<\/li>\n<li class=\"article-editor-list-item\">\n<p class=\"article-editor-paragraph\">Fun\u00e7\u00e3o <strong>VECTOR_DISTANCE<\/strong>, para comparar os vectors.<\/p>\n<\/li>\n<li class=\"article-editor-list-item\">\n<p class=\"article-editor-paragraph\">Comando <strong>CREATE EXTERNAL MODEL<\/strong>.<\/p>\n<\/li>\n<li class=\"article-editor-list-item\">\n<p class=\"article-editor-paragraph\">Fun\u00e7\u00e3o <strong>AI_GENERATE_EMBEDDINGS<\/strong>.<\/p>\n<\/li>\n<\/ul>\n<p class=\"article-editor-paragraph\">H\u00e1 outras novas fun\u00e7\u00f5es al\u00e9m dessas, e voc\u00ea pode explorar no link do final do post.<\/p>\n<div class=\"article-editor-horizontal-rule__container\" contenteditable=\"false\">\n<hr class=\"article-editor-horizontal-rule\" \/>\n<div class=\"article-editor-horizontal-rule__delete-button-container\"><\/div>\n<\/div>\n<p class=\"article-editor-paragraph\"><strong>JSON: Novas fun\u00e7\u00f5es e tipos de dados<\/strong><\/p>\n<p class=\"article-editor-paragraph\">As novidades n\u00e3o ficaram s\u00f3 na parte de IA. Tamb\u00e9m temos muitas novidades relacionadas a <strong>JSON<\/strong>, por exemplo: nova fun\u00e7\u00e3o <strong>JSON_ARRAYAGG<\/strong>.<\/p>\n<p class=\"article-editor-paragraph\">Al\u00e9m disso, <strong>temos um novo tipo de dados chamado \u201cjson\u201d<\/strong>. At\u00e9 o SQL Server 2022, o json era armazenado como <strong>string<\/strong>, e com esse novo tipo, passou a ganhar uma <strong>estrutura bin\u00e1ria pr\u00f3pria<\/strong>, semelhante ao que j\u00e1 faz o <strong>postgreSQL<\/strong>.<\/p>\n<p class=\"article-editor-paragraph\">E, n\u00e3o para por a\u00ed, junto com o tipo de dados, ganhamos tamb\u00e9m um novo tipo de \u00edndice: <strong>CREATE JSON INDEX<\/strong>. Agora, <strong>voc\u00ea pode indexar os campos json<\/strong> e fazer buscas usando novas fun\u00e7\u00f5es, que podem se beneficiar dos \u00edndices.<\/p>\n<pre class=\"article-editor-code-block\"><code>declare @PostsJson nvarchar(max)\r\n\r\nexec sp_invoke_external_rest_endpoint \r\n\t'https:\/\/thesqltimes.com\/blog\/wp-json\/wp\/v2\/posts?_fields&amp;per_page=100'\r\n\t,@response = @PostsJson output\r\n\t,@method = 'GET'\r\n \r\ndrop table if exists posts;\r\ncreate table posts(id int primary key, js json);\r\n \r\ninsert into posts\r\nselect \r\n\t*\r\nfrom\r\nopenjson(@PostsJson,'$.result') with (\r\n\tid int,\r\n\tjs nvarchar(max) '$' as json\r\n)\r\n \r\ncreate json index ixJson on posts(js)\r\n \r\nselect * from  posts where JSON_CONTAINS(js,'100-scripts-de-dba','$.slug') = 1<\/code><\/pre>\n<p><img loading=\"lazy\" decoding=\"async\" data-attachment-id=\"4769\" data-permalink=\"https:\/\/powertuning.com.br\/blog\/sql-server-2025-em-public-preview-destaques\/attachment\/1751554585895\/\" data-orig-file=\"https:\/\/powertuning.com.br\/blog\/wp-content\/uploads\/2025\/07\/1751554585895.png\" data-orig-size=\"471,249\" data-comments-opened=\"0\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"1751554585895\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/powertuning.com.br\/blog\/wp-content\/uploads\/2025\/07\/1751554585895.png\" class=\"alignnone wp-image-4769 \" src=\"https:\/\/powertuning.com.br\/blog\/wp-content\/uploads\/2025\/07\/1751554585895.png\" alt=\"\" width=\"533\" height=\"282\" srcset=\"https:\/\/powertuning.com.br\/blog\/wp-content\/uploads\/2025\/07\/1751554585895.png 471w, https:\/\/powertuning.com.br\/blog\/wp-content\/uploads\/2025\/07\/1751554585895-300x159.png 300w\" sizes=\"auto, (max-width: 533px) 100vw, 533px\" \/><\/p>\n<p class=\"article-editor-paragraph article-editor-content__has-focus\"><strong>REGEX: Finalmente o poder das express\u00f5es regulares<\/strong><\/p>\n<p class=\"article-editor-paragraph\">Finalmente temos a oportunidade de usar <strong>express\u00f5es regulares dentro do SQL Server sem precisar de CLR<\/strong>. Usar express\u00f5es regulares \u00e9 uma forma bem poderosa de <strong>buscar padr\u00f5es de texto<\/strong>, bem <strong>parecido com o comando LIKE<\/strong>.\u00a0 Por exemplo, essas duas queries fazem a mesma coisa (buscar textos que terminam com um d\u00edgito e qualquer coisa que n\u00e3o seja um d\u00edgito), mas uma usa LIKE a outra REGEX:<\/p>\n<pre class=\"article-editor-code-block\"><code>select titulo from posts where titulo like N'%[0-9][^0-9]'\r\nselect titulo from posts where REGEXP_COUNT(titulo,'\\d[^\\d]$') &gt; 0<\/code><\/pre>\n<p><img loading=\"lazy\" decoding=\"async\" data-attachment-id=\"4770\" data-permalink=\"https:\/\/powertuning.com.br\/blog\/sql-server-2025-em-public-preview-destaques\/attachment\/1751554920316\/\" data-orig-file=\"https:\/\/powertuning.com.br\/blog\/wp-content\/uploads\/2025\/07\/1751554920316.png\" data-orig-size=\"500,277\" data-comments-opened=\"0\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"1751554920316\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/powertuning.com.br\/blog\/wp-content\/uploads\/2025\/07\/1751554920316.png\" class=\"alignnone wp-image-4770 \" src=\"https:\/\/powertuning.com.br\/blog\/wp-content\/uploads\/2025\/07\/1751554920316.png\" alt=\"\" width=\"628\" height=\"348\" srcset=\"https:\/\/powertuning.com.br\/blog\/wp-content\/uploads\/2025\/07\/1751554920316.png 500w, https:\/\/powertuning.com.br\/blog\/wp-content\/uploads\/2025\/07\/1751554920316-300x166.png 300w\" sizes=\"auto, (max-width: 628px) 100vw, 628px\" \/><\/p>\n<p>Mas, <strong>com regex, conseguimos criar express\u00f5es bem mais complexas<\/strong>. Por exemplo, se eu quiser encontrar todos os artigos cujo t\u00edtulo termina com d\u00edgitos, mas sem espa\u00e7os antes do primeiro d\u00edgito:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" data-attachment-id=\"4771\" data-permalink=\"https:\/\/powertuning.com.br\/blog\/sql-server-2025-em-public-preview-destaques\/attachment\/1751554934340\/\" data-orig-file=\"https:\/\/powertuning.com.br\/blog\/wp-content\/uploads\/2025\/07\/1751554934340.png\" data-orig-size=\"551,235\" data-comments-opened=\"0\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"1751554934340\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/powertuning.com.br\/blog\/wp-content\/uploads\/2025\/07\/1751554934340.png\" class=\"alignnone wp-image-4771 \" src=\"https:\/\/powertuning.com.br\/blog\/wp-content\/uploads\/2025\/07\/1751554934340.png\" alt=\"\" width=\"635\" height=\"271\" srcset=\"https:\/\/powertuning.com.br\/blog\/wp-content\/uploads\/2025\/07\/1751554934340.png 551w, https:\/\/powertuning.com.br\/blog\/wp-content\/uploads\/2025\/07\/1751554934340-300x128.png 300w\" sizes=\"auto, (max-width: 635px) 100vw, 635px\" \/><\/p>\n<p class=\"article-editor-paragraph\">Fazer isso com LIKE \u00e9 quase imposs\u00edvel ou voc\u00ea vai ter que quebrar em muitas express\u00f5es.<\/p>\n<p class=\"article-editor-paragraph article-editor-content__has-focus\">E n\u00e3o para por a\u00ed\u2026 Se eu quiser trazer exatamente esses casamentos, basta usar <strong>REGEXP_MATCHES<\/strong>:<\/p>\n<pre class=\"article-editor-code-block article-editor-content__has-focus\"><code>select \r\n\ttitulo\r\n\t,m.*\r\nfrom\r\n\tposts p\r\ncross apply\r\n\tREGEXP_MATCHES(p.titulo,'[^\\s\\d]\\d+$') m<\/code><\/pre>\n<p><img loading=\"lazy\" decoding=\"async\" data-attachment-id=\"4772\" data-permalink=\"https:\/\/powertuning.com.br\/blog\/sql-server-2025-em-public-preview-destaques\/attachment\/1751554961659\/\" data-orig-file=\"https:\/\/powertuning.com.br\/blog\/wp-content\/uploads\/2025\/07\/1751554961659.png\" data-orig-size=\"602,348\" data-comments-opened=\"0\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"1751554961659\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/powertuning.com.br\/blog\/wp-content\/uploads\/2025\/07\/1751554961659.png\" class=\"alignnone wp-image-4772 size-full\" src=\"https:\/\/powertuning.com.br\/blog\/wp-content\/uploads\/2025\/07\/1751554961659.png\" alt=\"\" width=\"602\" height=\"348\" srcset=\"https:\/\/powertuning.com.br\/blog\/wp-content\/uploads\/2025\/07\/1751554961659.png 602w, https:\/\/powertuning.com.br\/blog\/wp-content\/uploads\/2025\/07\/1751554961659-300x173.png 300w\" sizes=\"auto, (max-width: 602px) 100vw, 602px\" \/><\/p>\n<p class=\"article-editor-paragraph article-editor-content__has-focus\">Legal n\u00e9? Demorou, mas chegou!<\/p>\n<p class=\"article-editor-paragraph\">Eu sou suspeito demais para falar de Regex, porque eu simplesmente AMO esse recurso, que est\u00e1 presente na grande maioria das linguagens e editores de texto, etc.<\/p>\n<p class=\"article-editor-paragraph\">Para mais informa\u00e7\u00f5es: <a class=\"article-editor-link article-editor-link\" href=\"https:\/\/learn.microsoft.com\/en-us\/sql\/relational-databases\/regular-expressions\/overview?view=sql-server-ver17\" rel=\"noopener noreferrer\">https:\/\/learn.microsoft.com\/en-us\/sql\/relational-databases\/regular-expressions\/overview?view=sql-server-ver17<\/a><\/p>\n<p class=\"article-editor-paragraph\">Se quiser aprender tudo sobre regex, com um conte\u00fado de alt\u00edssima qualidade, gratuito e em portugu\u00eas: <a class=\"article-editor-link article-editor-link\" href=\"https:\/\/aurelio.net\/regex\/\" rel=\"noopener noreferrer\">https:\/\/aurelio.net\/regex\/<\/a><\/p>\n<div class=\"article-editor-horizontal-rule__container\" contenteditable=\"false\">\n<hr class=\"article-editor-horizontal-rule\" \/>\n<div class=\"article-editor-horizontal-rule__delete-button-container\"><\/div>\n<\/div>\n<p class=\"article-editor-paragraph\"><strong>Melhorias no AlwaysON:<\/strong><\/p>\n<p class=\"article-editor-paragraph\">Na parte de <strong>alta disponibilidade<\/strong>, temos uma lista grande de coisas novas no <strong>AlwaysON<\/strong>.\u00a0 Destaco um log melhorado no <strong>health check timeout<\/strong>, que <strong>agora<\/strong> <strong>inclui alguns<\/strong> <strong>contadores do<\/strong> <strong>perfmon<\/strong>, o que pode ser \u00fatil para voc\u00ea entender como estava o ambiente pr\u00f3ximo de uma falha. Isso vai te ajudar a determinar, por exemplo, se o timeout foi causado por problemas nos recursos, com base nos valores da utiliza\u00e7\u00e3o que foram logados.<\/p>\n<p class=\"article-editor-paragraph\">Outra novidade \u00e9 que agora voc\u00ea vai poder fazer <strong>backup full e diferencial em r\u00e9plicas secund\u00e1rias!<\/strong> Voc\u00ea precisa habilitar algumas trace flags nas r\u00e9plicas onde quer fazer o backup e ent\u00e3o, \u00e9 s\u00f3 fazer! At\u00e9 o <strong>SQL Server 2022<\/strong>, s\u00f3 era poss\u00edvel fazer <strong>backup copy-only ou backup de log<\/strong> nas r\u00e9plicas secund\u00e1rias. Voc\u00ea receberia um erro semelhante a este se tentasse executar um backup full:<\/p>\n<pre class=\"article-editor-code-block\"><code>Msg 3059, Level 16, State 1, Line 3\r\nThis BACKUP or RESTORE command is not supported on a database mirror or secondary replica.\r\nMsg 3013, Level 16, State 1, Line 3\r\nBACKUP DATABASE is terminating abnormally.<\/code><\/pre>\n<p><img loading=\"lazy\" decoding=\"async\" data-attachment-id=\"4773\" data-permalink=\"https:\/\/powertuning.com.br\/blog\/sql-server-2025-em-public-preview-destaques\/attachment\/1751554993525\/\" data-orig-file=\"https:\/\/powertuning.com.br\/blog\/wp-content\/uploads\/2025\/07\/1751554993525.png\" data-orig-size=\"602,256\" data-comments-opened=\"0\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"1751554993525\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/powertuning.com.br\/blog\/wp-content\/uploads\/2025\/07\/1751554993525.png\" class=\"alignnone wp-image-4773 size-full\" src=\"https:\/\/powertuning.com.br\/blog\/wp-content\/uploads\/2025\/07\/1751554993525.png\" alt=\"\" width=\"602\" height=\"256\" srcset=\"https:\/\/powertuning.com.br\/blog\/wp-content\/uploads\/2025\/07\/1751554993525.png 602w, https:\/\/powertuning.com.br\/blog\/wp-content\/uploads\/2025\/07\/1751554993525-300x128.png 300w\" sizes=\"auto, (max-width: 602px) 100vw, 602px\" \/><\/p>\n<p>Agora, habilitando a <strong>trace flag 3262<\/strong> (ou <strong>3261 para backup diferencial<\/strong>), voc\u00ea pode fazer um backup FULL na secondary:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" data-attachment-id=\"4774\" data-permalink=\"https:\/\/powertuning.com.br\/blog\/sql-server-2025-em-public-preview-destaques\/attachment\/1751555010016\/\" data-orig-file=\"https:\/\/powertuning.com.br\/blog\/wp-content\/uploads\/2025\/07\/1751555010016.png\" data-orig-size=\"602,233\" data-comments-opened=\"0\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"1751555010016\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/powertuning.com.br\/blog\/wp-content\/uploads\/2025\/07\/1751555010016.png\" class=\"alignnone wp-image-4774 size-full\" src=\"https:\/\/powertuning.com.br\/blog\/wp-content\/uploads\/2025\/07\/1751555010016.png\" alt=\"\" width=\"602\" height=\"233\" srcset=\"https:\/\/powertuning.com.br\/blog\/wp-content\/uploads\/2025\/07\/1751555010016.png 602w, https:\/\/powertuning.com.br\/blog\/wp-content\/uploads\/2025\/07\/1751555010016-300x116.png 300w\" sizes=\"auto, (max-width: 602px) 100vw, 602px\" \/><\/p>\n<p class=\"article-editor-paragraph article-editor-content__has-focus\">O <strong>Query Store for Secondaries<\/strong>, que apareceu no SQL Server 2022, agora deixa de ser uma feature preview e passar a ser habilitada por padr\u00e3o. Em outras palavras, voc\u00ea n\u00e3o precisa mais adicionar a trace flag 12606 para habilit\u00e1-la. Pelo contr\u00e1rio, essa TF agora, desliga a feature. Ent\u00e3o, voc\u00ea deve remover a TF se quiser continuar usando.<\/p>\n<p class=\"article-editor-paragraph\">E ainda temos <strong>persisted statistics for readable secondaries<\/strong>, onde voc\u00ea pode se beneficiar de estat\u00edsticas que s\u00e3o criadas para as queries que rodam nas r\u00e9plicas secund\u00e1rias. At\u00e9 o SQL Server 2022, <strong>essas estat\u00edsticas eram tempor\u00e1rias<\/strong>, isto \u00e9, ficavam na tempdb do secund\u00e1rio. <strong>Ap\u00f3s um restart, perdia tudo!<\/strong> Como nem sempre pode ser as mesmas queries do prim\u00e1rio, isso traz um benef\u00edcio muito legal para os relat\u00f3rios! Essa feature usa o Query Store for secondaries para enviar a estat\u00edsticas para o banco principal e persisti-las. (<a class=\"article-editor-link article-editor-link\" href=\"https:\/\/learn.microsoft.com\/en-us\/sql\/relational-databases\/performance\/persisted-stats-secondary-replicas?view=sql-server-ver17\" rel=\"noopener noreferrer\">Persisted Statistics for Readable Secondary Replicas &#8211; SQL Server | Microsoft Learn<\/a><\/p>\n<p class=\"article-editor-paragraph\">Olha s\u00f3 o que muda na <strong>sys.stats<\/strong> quando essa feature \u00e9 usada:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" data-attachment-id=\"4775\" data-permalink=\"https:\/\/powertuning.com.br\/blog\/sql-server-2025-em-public-preview-destaques\/attachment\/1751555044886\/\" data-orig-file=\"https:\/\/powertuning.com.br\/blog\/wp-content\/uploads\/2025\/07\/1751555044886.png\" data-orig-size=\"602,136\" data-comments-opened=\"0\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"1751555044886\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/powertuning.com.br\/blog\/wp-content\/uploads\/2025\/07\/1751555044886.png\" class=\"alignnone wp-image-4775 size-full\" src=\"https:\/\/powertuning.com.br\/blog\/wp-content\/uploads\/2025\/07\/1751555044886.png\" alt=\"\" width=\"602\" height=\"136\" srcset=\"https:\/\/powertuning.com.br\/blog\/wp-content\/uploads\/2025\/07\/1751555044886.png 602w, https:\/\/powertuning.com.br\/blog\/wp-content\/uploads\/2025\/07\/1751555044886-300x68.png 300w\" sizes=\"auto, (max-width: 602px) 100vw, 602px\" \/><\/p>\n<p class=\"article-editor-paragraph article-editor-content__has-focus\">Perceba que agora <strong>temos 3 novas colunas<\/strong>: <strong>replica_role_id, replica_role_desc e replica_name<\/strong>.\u00a0 Essas colunas v\u00e3o te ajudar a saber de onde a estat\u00edstica veio. No caso da imagem acima, a estat\u00edstica foi gerada em uma r\u00e9plica secund\u00e1ria, especificamente uma chamada <strong>sql2<\/strong>.<\/p>\n<p class=\"article-editor-paragraph\">Isso traz <strong>muitos ganhos para clientes que possuem relat\u00f3rios nas inst\u00e2ncias secund\u00e1rias<\/strong>. Agora, ap\u00f3s eventuais restarts, as estat\u00edsticas que atendem esses relat\u00f3rios ser\u00e3o mantidas, e isso <strong>ajudar\u00e1 a evitar problemas de performance!<\/strong><\/p>\n<div class=\"article-editor-horizontal-rule__container\" contenteditable=\"false\">\n<hr class=\"article-editor-horizontal-rule\" \/>\n<div class=\"article-editor-horizontal-rule__delete-button-container\"><\/div>\n<\/div>\n<p class=\"article-editor-paragraph\"><strong>Backups<\/strong><\/p>\n<p class=\"article-editor-paragraph\">Agora temos dispon\u00edvel um novo <strong>algoritmo de compress\u00e3o<\/strong> <strong>de backups<\/strong> chamado <strong>\u201cZSTD\u201d.<\/strong><\/p>\n<pre class=\"article-editor-code-block\"><code>backup database Traces\r\nto disk = 'S:\\mssql\\A25\\Traces-ZSTD.bak'\r\nwith\r\n\tCOMPRESSION (ALGORITHM = ZSTD)\r\n\t,init\r\n\t,format<\/code><\/pre>\n<p class=\"article-editor-paragraph\"><strong>Controlando o Consumo do Tempdb<\/strong><\/p>\n<p class=\"article-editor-paragraph\">Uma outra novidade interessante \u00e9 poder configurar <strong>como o espa\u00e7o do tempdb vai ser utilizado<\/strong>, <strong>via Resource Governor<\/strong>. Isso com certeza pode ajudar cen\u00e1rios cr\u00edticos onde, por exemplo, uma aplica\u00e7\u00e3o legada tem problemas frequentes com consumo do tempdb, causando indisponibilidade da inst\u00e2ncia. Agora voc\u00ea pode limitar o quanto um usu\u00e1rio, ou grupos de usu\u00e1rios, podem consumir do tempdb.<\/p>\n<pre class=\"article-editor-code-block\"><code>CREATE WORKLOAD GROUP TempdbLimitada with (\r\n\tgroup_max_tempdb_data_mb = 100\r\n)\r\nGO<\/code><\/pre>\n<pre class=\"article-editor-code-block\"><code>Msg 1138, Level 17, State 1, Line 8\r\nCould not allocate a new page for database 'tempdb' because that would exceed the limit set for workload group 'TempdbLimitada'.<\/code><\/pre>\n<p><img loading=\"lazy\" decoding=\"async\" data-attachment-id=\"4776\" data-permalink=\"https:\/\/powertuning.com.br\/blog\/sql-server-2025-em-public-preview-destaques\/attachment\/1751555106991\/\" data-orig-file=\"https:\/\/powertuning.com.br\/blog\/wp-content\/uploads\/2025\/07\/1751555106991.png\" data-orig-size=\"542,185\" data-comments-opened=\"0\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"1751555106991\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/powertuning.com.br\/blog\/wp-content\/uploads\/2025\/07\/1751555106991.png\" class=\"alignnone wp-image-4776 size-full\" src=\"https:\/\/powertuning.com.br\/blog\/wp-content\/uploads\/2025\/07\/1751555106991.png\" alt=\"\" width=\"542\" height=\"185\" srcset=\"https:\/\/powertuning.com.br\/blog\/wp-content\/uploads\/2025\/07\/1751555106991.png 542w, https:\/\/powertuning.com.br\/blog\/wp-content\/uploads\/2025\/07\/1751555106991-300x102.png 300w\" sizes=\"auto, (max-width: 542px) 100vw, 542px\" \/><\/p>\n<p class=\"article-editor-paragraph article-editor-content__has-focus\"><strong>Nova Query Hint: ABORT_QUERY_EXECUTION<\/strong><\/p>\n<p class=\"article-editor-paragraph\">Uma nova <strong>query hint<\/strong> <strong>permite que voc\u00ea aborte a execu\u00e7\u00e3o de uma query<\/strong>.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" data-attachment-id=\"4777\" data-permalink=\"https:\/\/powertuning.com.br\/blog\/sql-server-2025-em-public-preview-destaques\/attachment\/1751555188346\/\" data-orig-file=\"https:\/\/powertuning.com.br\/blog\/wp-content\/uploads\/2025\/07\/1751555188346.png\" data-orig-size=\"602,131\" data-comments-opened=\"0\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"1751555188346\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/powertuning.com.br\/blog\/wp-content\/uploads\/2025\/07\/1751555188346.png\" class=\"alignnone wp-image-4777 size-full\" src=\"https:\/\/powertuning.com.br\/blog\/wp-content\/uploads\/2025\/07\/1751555188346.png\" alt=\"\" width=\"602\" height=\"131\" srcset=\"https:\/\/powertuning.com.br\/blog\/wp-content\/uploads\/2025\/07\/1751555188346.png 602w, https:\/\/powertuning.com.br\/blog\/wp-content\/uploads\/2025\/07\/1751555188346-300x65.png 300w\" sizes=\"auto, (max-width: 602px) 100vw, 602px\" \/><\/p>\n<p class=\"article-editor-paragraph article-editor-content__has-focus\">A princ\u00edpio, isso parece completamente sem utilidade, afinal, quem colocaria isso na sua pr\u00f3pria query, n\u00e3o \u00e9 mesmo? Mas, aqui \u00e9 o pulo do gato: voc\u00ea pode usar essa query hint com uma feature do <strong>Query Store<\/strong> que j\u00e1 existe desde as vers\u00f5es passadas: <strong>Query Store hints<\/strong>. Com isso, se voc\u00ea identificar uma query que n\u00e3o deveria rodar e consome muito recurso do ambiente, <strong>voc\u00ea pode adicionar esta hint e a query vai come\u00e7ar a dar erro, evitando o consumo<\/strong>. Isso \u00e9 bem \u00fatil em cen\u00e1rios onde existem <strong>aplica\u00e7\u00f5es legadas<\/strong> que podem impactar e o DBA n\u00e3o tem o poder imediato de parar, ou n\u00e3o se pode parar todas as queries, mas apenas algumas.<\/p>\n<pre class=\"article-editor-code-block\"><code> EXEC sys.sp_query_store_set_hints\r\n\t@query_id = 4,\r\n\t@query_hints = N'OPTION (USE HINT (''ABORT_QUERY_EXECUTION''))'<\/code><\/pre>\n<div class=\"article-editor-horizontal-rule__container\" contenteditable=\"false\">\n<hr class=\"article-editor-horizontal-rule\" \/>\n<div class=\"article-editor-horizontal-rule__delete-button-container\"><\/div>\n<\/div>\n<p class=\"article-editor-paragraph\"><strong>Seguran\u00e7a<\/strong><\/p>\n<p class=\"article-editor-paragraph\">H\u00e1 tamb\u00e9m muitas melhorias na parte de seguran\u00e7a, que v\u00e3o desde <strong>melhorias em caches<\/strong> at\u00e9 o <strong>suporte a nova vers\u00e3o do TDS (Tabular Data Stream)<\/strong>.\u00a0 Um destaque aqui \u00e9 quem j\u00e1 usa <strong>logins integrados do Azure AD<\/strong>, que apareceu no SQL Server 2022. Agora no SQL Server 2025 voc\u00ea consegue criar usu\u00e1rios com o <strong>mesmo displayName<\/strong> bastando diferenci\u00e1-los pelo novo par\u00e2metro <strong>OBJECT_ID<\/strong> do comando create login.\/user<\/p>\n<pre class=\"article-editor-code-block\"><code>CREATE LOGIN [login_name] \r\nFROM EXTERNAL PROVIDER   WITH OBJECT_ID = 'objectid'<\/code><\/pre>\n<div class=\"article-editor-horizontal-rule__container\" contenteditable=\"false\">\n<hr class=\"article-editor-horizontal-rule\" \/>\n<div class=\"article-editor-horizontal-rule__delete-button-container\"><\/div>\n<\/div>\n<p class=\"article-editor-paragraph\"><strong>Melhorias na Engine<\/strong><\/p>\n<p class=\"article-editor-paragraph\">H\u00e1 diversas melhorias na engine, como o <strong>Optimized Locking<\/strong>, que voc\u00ea pode habilitar por banco e <strong>tem por<\/strong> <strong>objetivo ajudar a reduzir bloqueios e lock escalation<\/strong>.<\/p>\n<p class=\"article-editor-paragraph\">Agora o <strong>ADR (Accelerated Database Recovery)<\/strong> pode ser <strong>habilitado<\/strong> tamb\u00e9m no <strong>tempdb<\/strong>.<\/p>\n<p class=\"article-editor-paragraph\">Outra novidade, finalmente <strong>voc\u00ea poder\u00e1 remover filegroups com In-Memory<\/strong>. Esse \u00e9 um problema que muita gente, especialmente quando faz testes, deve ter raiva: voc\u00ea n\u00e3o pode remover o filegroup que \u00e9 marcado com In Memory data. Pelo menos, n\u00e3o podia at\u00e9 o SQL Server 2022. No SQL Server 2025, voc\u00ea vai poder remover, desde que esteja vazio. Uma nova DMV est\u00e1 dispon\u00edvel para acompanhar o processo de remo\u00e7\u00e3o e desligamento da engine do In Memory:<\/p>\n<pre class=\"article-editor-code-block\"><code>select * from  sys.dm_db_xtp_undeploy_status;<\/code><\/pre>\n<p><img loading=\"lazy\" decoding=\"async\" data-attachment-id=\"4778\" data-permalink=\"https:\/\/powertuning.com.br\/blog\/sql-server-2025-em-public-preview-destaques\/attachment\/1751555449292\/\" data-orig-file=\"https:\/\/powertuning.com.br\/blog\/wp-content\/uploads\/2025\/07\/1751555449292.png\" data-orig-size=\"602,159\" data-comments-opened=\"0\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"1751555449292\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/powertuning.com.br\/blog\/wp-content\/uploads\/2025\/07\/1751555449292.png\" class=\"alignnone wp-image-4778 size-full\" src=\"https:\/\/powertuning.com.br\/blog\/wp-content\/uploads\/2025\/07\/1751555449292.png\" alt=\"\" width=\"602\" height=\"159\" srcset=\"https:\/\/powertuning.com.br\/blog\/wp-content\/uploads\/2025\/07\/1751555449292.png 602w, https:\/\/powertuning.com.br\/blog\/wp-content\/uploads\/2025\/07\/1751555449292-300x79.png 300w\" sizes=\"auto, (max-width: 602px) 100vw, 602px\" \/><\/p>\n<p class=\"article-editor-paragraph article-editor-content__has-focus\"><strong>Otimiza\u00e7\u00f5es na procedure \u201csp_executesql\u201d.<\/strong><\/p>\n<p class=\"article-editor-paragraph\">Melhorias na linguagem e fun\u00e7\u00f5es.<\/p>\n<p class=\"article-editor-paragraph\">Al\u00e9m das novas fun\u00e7\u00f5es de IA, JSON e Regex, o SQL Server 2025 traz algumas novidades no T-SQL, destacando:<\/p>\n<ul class=\"article-editor-bullet-list\">\n<li class=\"article-editor-list-item\">\n<p class=\"article-editor-paragraph\">Agora voc\u00ea <strong>pode concatenar strings usandos ||<\/strong>, que \u00e9 ANSI.<\/p>\n<\/li>\n<li class=\"article-editor-list-item\">\n<p class=\"article-editor-paragraph\">Nova <strong>fun\u00e7\u00e3o de agrega\u00e7\u00e3o<\/strong>: <strong>PRODUCT<\/strong>\u00a0 ( multiplica todos os dados do grupo ).<\/p>\n<\/li>\n<li class=\"article-editor-list-item\">\n<p class=\"article-editor-paragraph\"><strong>DATEADD suporta bigint<\/strong> (voc\u00ea adicionar, por exemplo, bilh\u00f5es de nano segundos para uma data).<\/p>\n<\/li>\n<li class=\"article-editor-list-item\">\n<p class=\"article-editor-paragraph\"><strong>BASE64_ENCODE e BASE64_DECODE<\/strong>. Antes do SQL Server 2025, era poss\u00edvel fazer isso usando um hack com XML.<\/p>\n<\/li>\n<li class=\"article-editor-list-item\">\n<p class=\"article-editor-paragraph\">H\u00e1 tamb\u00e9m fun\u00e7\u00f5es relacionadas a compara\u00e7\u00e3o <strong>Fuzzy<\/strong>, como por exemplo usando o algoritmo Jaro Winkler com JARO_Winkgler_simILARITY.<\/p>\n<\/li>\n<\/ul>\n<p class=\"article-editor-paragraph\">A lista \u00e9 grande\u2026 Ainda tem coisas como Mirror pro Fabric, \u2026 N\u00e3o d\u00e1 pra falar tudo agora, mas com certeza iremos abordando ao longo dos pr\u00f3ximos meses. Fica ligado nas redes da Power Tuning, pois podemos postar novos artigos ou anunciar lives para mostrar mais novidades.<\/p>\n<p class=\"article-editor-paragraph\">Por fim, se voc\u00ea quiser ver todos os detalhes, confira nesse link: <a class=\"article-editor-link article-editor-link\" href=\"https:\/\/learn.microsoft.com\/en-us\/sql\/sql-server\/what-s-new-in-sql-server-2025?view=sql-server-ver17#availability\" rel=\"noopener noreferrer\">What&#8217;s New in SQL Server 2025 &#8211; SQL Server | Microsoft Learn<\/a><\/p>\n<p class=\"article-editor-paragraph\">Obrigado e espero que tenha gostado desse post!<\/p>\n<p class=\"article-editor-paragraph\">Abra\u00e7o,<\/p>\n<p class=\"article-editor-paragraph\">Rodrigo Gomes<\/p>\n<p class=\"article-editor-paragraph\">Artigo desenvolvido por: Rodrigo Gomes (Head de Inova\u00e7\u00e3o).<\/p>\n","protected":false},"excerpt":{"rendered":"<p>O Public Preview do SQL Server 2025 foi liberado e j\u00e1 fizemos v\u00e1rios testes nele. Eu (Rodrigo Gomes) tive a oportunidade de participar do Private Preview e dei v\u00e1rios feedbacks, e estava muito ansioso para que o Public Preview fosse liberado para poder contar as v\u00e1rias novidades e mostrar um pouco do que vem por&hellip; <br \/> <a class=\"read-more\" href=\"https:\/\/powertuning.com.br\/blog\/sql-server-2025-em-public-preview-destaques\/\">Leia mais<\/a><\/p>\n","protected":false},"author":30,"featured_media":4779,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"content-type":"","_exactmetrics_skip_tracking":false,"_exactmetrics_sitenote_active":false,"_exactmetrics_sitenote_note":"","_exactmetrics_sitenote_category":0,"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[168,7,8,138,63],"tags":[418,278,572,577,582,581,573,571,135,574,580,570,22,569,578,575,548,579,576,568,583,584,533,521],"class_list":["post-4763","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-ia","category-noticias","category-palestras-e-eventos","category-power-alerts","category-sql-server","tag-inovacao","tag-alwayson","tag-api-rest-sql-server","tag-backup-sql-server","tag-base-de-dados","tag-desenvolvimento-sql","tag-embeddings","tag-ia-no-sql-server","tag-inteligencia-artificial","tag-json-sql-server","tag-microsoft-sql","tag-novidades-sql-server","tag-power-tuning","tag-public-preview","tag-query-store","tag-regex-sql-server","tag-rodrigo-gomes","tag-seguranca-sql-server","tag-sql-performance","tag-sql-server-2025","tag-sql-server-ai","tag-sql-server-tips","tag-t-sql","tag-tempdb"],"jetpack_featured_media_url":"https:\/\/powertuning.com.br\/blog\/wp-content\/uploads\/2025\/07\/CAPA-HOJE-BLOG.png","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/powertuning.com.br\/blog\/wp-json\/wp\/v2\/posts\/4763","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/powertuning.com.br\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/powertuning.com.br\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/powertuning.com.br\/blog\/wp-json\/wp\/v2\/users\/30"}],"replies":[{"embeddable":true,"href":"https:\/\/powertuning.com.br\/blog\/wp-json\/wp\/v2\/comments?post=4763"}],"version-history":[{"count":1,"href":"https:\/\/powertuning.com.br\/blog\/wp-json\/wp\/v2\/posts\/4763\/revisions"}],"predecessor-version":[{"id":4780,"href":"https:\/\/powertuning.com.br\/blog\/wp-json\/wp\/v2\/posts\/4763\/revisions\/4780"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/powertuning.com.br\/blog\/wp-json\/wp\/v2\/media\/4779"}],"wp:attachment":[{"href":"https:\/\/powertuning.com.br\/blog\/wp-json\/wp\/v2\/media?parent=4763"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/powertuning.com.br\/blog\/wp-json\/wp\/v2\/categories?post=4763"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/powertuning.com.br\/blog\/wp-json\/wp\/v2\/tags?post=4763"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}