Pular para o conteúdo principal

Postagem em destaque

BlackTDN :: LeetCode :: Comparando Implementações Harbour e TLPP para o Desafio Longest Palindromic Substring

_Créditos das imagens: ChatGPT_ ### LeetCode :: Comparando Implementações Harbour e TLPP para o Desafio Longest Palindromic Substring Resolver o problema do [Longest Palindromic Substring](https://leetcode.com/problems/longest-palindromic-substring/description/) é um exercício clássico de programação, que desafia desenvolvedores a encontrar a maior substring palindrômica dentro de uma string. Recentemente, exploramos soluções tanto em Harbour quanto em TLPP (Total Language Protheus Programming). Neste artigo, comparamos as implementações nessas duas linguagens, destacando suas semelhanças, diferenças e funcionalidades específicas. #### Implementações em Harbour ##### Versão 5.1 Essa solução utiliza a técnica de expansão a partir do centro do palíndromo. Cada caractere ou par de caracteres consecutivos é considerado um possível "centro". O algoritmo expande em ambas as direções enquanto os caracteres forem iguais, retornando o maior palíndromo encontrado. ##### Versão 5....

BlackTDN :: MSSQL :: Identificando e Removendo Tabelas Vazias no Ambiente de Teste do Sistema ERP TOTVS Microsiga Protheus

# Identificando e Removendo Tabelas Vazias no Ambiente de Teste do Sistema ERP TOTVS Microsiga Protheus

No universo da tecnologia e dos sistemas empresariais, a organização e manutenção de bancos de dados desempenham um papel crucial. O sistema ERP (Enterprise Resource Planning) da TOTVS Microsiga Protheus é uma das principais soluções utilizadas por empresas para gerenciar recursos e informações. Nesse contexto, é fundamental garantir que o banco de dados do Protheus esteja otimizado e livre de informações desnecessárias.

Neste artigo, apresentamos um script SQL, para MSSQL, que seleciona todas as tabelas vazias em uma base de teste do sistema ERP da TOTVS Microsiga Protheus e gera instruções para eliminá-las.

```sql
-- Este script SQL foi desenvolvido para ambiente de teste. Execute com responsabilidade.
WITH t AS (
       SELECT t.TABLE_SCHEMA
			 ,t.TABLE_NAME
         FROM INFORMATION_SCHEMA.TABLES t
        WHERE SUBSTRING(t.TABLE_NAME, 4, 3) = '990'
          AND LEFT(t.TABLE_NAME, 3) NOT IN ('SXP', 'SXK', 'SXT', 'SXV')
)
  SELECT 'DROP TABLE [' + t.TABLE_SCHEMA + '].[' + t.TABLE_NAME + ']' AS QDROP
   FROM sys.partitions p
RIGHT JOIN t ON OBJECT_NAME(OBJECT_ID)=t.TABLE_NAME
  WHERE OBJECT_NAME(OBJECT_ID)=t.TABLE_NAME
      AND OBJECTPROPERTY(OBJECT_ID, 'ISUSERTABLE') = 1
      AND SUBSTRING(OBJECT_NAME(OBJECT_ID), 4, 3) = '990'
      AND LEFT(OBJECT_NAME(OBJECT_ID), 3) NOT IN ('SXP', 'SXK', 'SXT', 'SXV')
      AND SUBSTRING(t.TABLE_NAME, 4, 3) = '990'
      AND LEFT(t.TABLE_NAME, 3) NOT IN ('SXP', 'SXK', 'SXT', 'SXV')
      AND p.ROWS = 0
GROUP BY  t.TABLE_SCHEMA
         ,t.TABLE_NAME
ORDER BY t.TABLE_NAME
```
*(sys.partitions)*

Este script SQL executa uma série de verificações para identificar as tabelas que estão vazias e atendem a critérios específicos. Primeiramente, ele procura por tabelas cujos nomes têm '990' na quarta, quinta e sexta posições, o que pode ser uma convenção no sistema Protheus. Além disso, ele não exclui tabelas que começam com 'SXP', 'SXK', 'SXT', ou 'SXV': presumivelmente tabelas do sistema que não devem ser removidas.

Em seguida, a consulta verifica se essas tabelas vazias são realmente tabelas de usuário (não tabelas do sistema) e se possuem zero registros. Se todas essas condições forem atendidas, a consulta gera uma instrução SQL para remover a tabela.

Isso facilita o trabalho de administradores de banco de dados e desenvolvedores do sistema Protheus, permitindo-lhes identificar e remover tabelas vazias que não contribuem para o funcionamento eficiente do sistema, liberando recursos e espaço em disco.

Lembre-se de que, antes de executar uma instrução `DROP TABLE`, é crucial fazer backup dos dados, realizar testes em um ambiente de teste e garantir que a exclusão da tabela vazia seja realmente segura e desejada. A manutenção adequada do banco de dados é essencial para um desempenho consistente e eficiente do sistema ERP Protheus.

----

*O ChatGPT colaborou com esta publicação*

Comentários

Postagens mais visitadas