Pular para o conteúdo principal

Separação de Discos SQLServer

 Alguns clientes solicitam boas práticas na hora de instanciar o SQL Server em servidor Windows.

Alocar os arquivos de dados (MDF/NDF), logs de transação (LDF) e TempDB em volumes distintos ( idealmente em discos físicos ou LUNs separados)  melhora significativamente o desempenho de I/O, facilita o gerenciamento (monitoramento de espaço, backups) e aumenta a resiliência contra falhas. Essa abordagem resulta em um ambiente mais organizado, controlável e performático.








Referências da Microsoft e Artigos Relevantes:

Aqui estão alguns links úteis que abordam as melhores práticas de configuração de armazenamento para SQL Server:

  1. Storage Top 10 Best Practices (Microsoft - Inglês): Um artigo clássico, embora um pouco mais antigo, ainda muito relevante sobre as principais práticas recomendadas para armazenamento.

  2. Server storage configuration (Microsoft Learn - Inglês): Parte da documentação oficial, aborda a configuração de armazenamento no contexto de desempenho.

  3. Performance recommendations for SQL Server TempDB database (Microsoft Learn - Inglês): Focado especificamente nas recomendações para o TempDB, que frequentemente se beneficia de discos dedicados e rápidos.

  4. SQL Server Best Practices – Disk Partitioning Strategies (SQLShack - Inglês): Um artigo detalhado de uma fonte respeitada na comunidade SQL, abordando estratégias de particionamento de disco.

  5. SQL Server – Boas Práticas de Instalação e Configuração – Parte 1: Discos (Fabiano Amorim - Português): Um artigo em português de um especialista reconhecido na comunidade SQL Server brasileira.

Postagens mais visitadas deste blog

Recursividade Minha Linda! Estrutura Produtos Protheus SG1

Fato! Depois que você conhece recursividade em sua vida tudo fica mais leve (rss... ) a recursividade pode ser infinita (pode não ta!) se for infinita vai dar problema, não pode. Mas a recursividade nos ajuda a deixar nosso sistema mais flexível e dinâmico para montar uma série de regras de negócio. Hoje vou falar exatamente da SG1, tabela TOTVS Microsiga Protheus que é utilizada para montar a estrutura de um produto dentro PCP (Planejamento e Controle de Produção). Isso séria algo que a recursividade iria ajudar. Na SG1 temos o campos G1_COD (Pai) e G1_COMP (Filho). G1_COD->G1_COMP->G1_COD->G1_COMP->G1_COD->G1_COMP Seria assim o fluxo da informação. Sem mais delongas, abaixo vou deixar o script para MSSQL para apresentar esses dados. Inté! WITH ESTRUT( CODIGO, COD_PAI, COD_COMP, QTD, PERDA, DT_INI, DT_FIM ,TRT ,RECNO, NIVEL ) AS ( SELECT G1_COD PAI, G1_COD, G1_COMP, G1_QUANT, G1_PERDA, G1_INI, G1_FIM,G1_TRT,SG1.R_E_C_N_O_, 1 AS NIVEL FR...

SB9 Protheus x Fechamentos incorretos (Sem endereço ou lote)

Uebá!!! Montei essa query um tempo atrás para localizar fechamento incorreto no protheus, o fechamento acontece na SB9, que é feito todo mês. Let's Share! https://centraldeatendimento.totvs.com/hc/pt-br/articles/360006558492-MP-SIGAEST-Roteiro-para-a-realiza%C3%A7%C3%A3o-da-virada-de-saldos-no-estoque-MATA280 SELECT * FROM ( SELECT B9_FILIAL,B9_COD,B9_LOCAL,B9_DATA,B9_QINI, --ULTIMO FECHAMENTO ANTES DO MES ATUAL ( SELECT ISNULL(B9_QINI,0) FROM SB9050 SB9X WHERE SB9X.B9_COD =SB9.B9_COD AND SB9X.B9_LOCAL = SB9.B9_LOCAL AND SB9X.D_E_L_E_T_ = ' ' AND MONTH(SB9X.B9_DATA) = MONTH(DATEADD(month,-1,convert(datetime,SB9.B9_DATA,103))) AND YEAR(SB9X.B9_DATA) = YEAR(DATEADD(month,-1,convert(datetime,SB9.B9_DATA,103))) --SELECT * FROM SF4050 WHERE F4_CODIGO = '618' )-( --MOVIMENTACAO DO ESTOQUE SELECT ISNULL(SUM(CASE WHEN LEFT(SD3.D3_CF,1)='R' THEN SD3.D3_QUANT ELSE SD3.D3_QUANT * -1 END),0) FROM S...

Cadastro de funções ADVPL

FWDirRemove( cDir, nType, lComplete, lKillFiles ) Função para remover diretórios, com a vantagem de remover somente o ultimo nível ou todo o caminho. cDir                   Diretório a ser removido lComplete          Remove todo o caminho (.T.) ou apenas o ultimo nível (.F.) lKillFiles             Remove os arquivos antes de tentar remover o diretório FWMakeDir( cDir, lShowMsg ) Função para criar diretório com seus subdiretórios, com a vantagem de criar todo o caminho. cDir                    Diretório a ser criado lShowMsg          Exibe ou não mensagem caso não consiga criar o diretório FwNoAccent( cString ) Retira acentos de uma string cString ...