No SQL Server, você pode usar o
sys.dm_os_performance_counters
exibição de gerenciamento dinâmico do sistema para retornar uma lista dos recursos designados como obsoletos na instância atual do SQL Server. Para retornar apenas os recursos preteridos, filtre a exibição apenas para o objeto SQLServer:Recursos preteridos.
A exibição também inclui um contador que lista o número de vezes que cada recurso preterido foi encontrado desde a última inicialização do SQL Server. Isso pode ser útil para identificar se seu aplicativo ainda está usando algum recurso obsoleto.
Executar isso no SQL Server requer
VIEW SERVER STATE
permissão. Exemplo 1 – Uso básico
SELECT * FROM sys.dm_os_performance_counters WHERE object_name = 'SQLServer:Deprecated Features';
Quando eu executo isso na minha instância do SQL Server 2019, recebo 254 linhas, então não vou listá-las aqui. Na minha instância do SQL Server 2017, recebo 253 linhas.
Se eu restringir os resultados a apenas duas linhas específicas, posso obter algo assim:
SELECT * FROM sys.dm_os_performance_counters WHERE object_name = 'SQLServer:Deprecated Features' AND instance_name LIKE '%timestamp%';
Resultado:
+-------------------------------+----------------+------------------------------------+--------------+-------------+ | object_name | counter_name | instance_name | cntr_value | cntr_type | |-------------------------------+----------------+------------------------------------+--------------+-------------| | SQLServer:Deprecated Features | Usage | INSERT NULL into TIMESTAMP columns | 0 | 65792 | | SQLServer:Deprecated Features | Usage | TIMESTAMP | 1 | 65792 | +-------------------------------+----------------+------------------------------------+--------------+-------------+
O site da Microsoft tem uma lista completa de recursos de mecanismo de banco de dados obsoletos no SQL Server 2017, juntamente com as ações recomendadas que você deve executar para qualquer recurso marcado para obsolescência. A lista é a mesma do SQL Server 2016.
Exemplo 2 – Usando a visualização por meio de um aplicativo
Se você estiver usando os
sys.dm_os_performance_counters
visualização em um aplicativo, você deve evitar usar o curinga asterisco (*
) para retornar todas as colunas das exibições e funções de gerenciamento dinâmico do sistema (conforme recomendado pela Microsoft). Nesses casos, se você quiser retornar todas as colunas, é melhor incluir o nome de cada coluna na consulta. Portanto, poderíamos alterar o exemplo anterior para o seguinte:
SELECT object_name, counter_name, instance_name, cntr_value, cntr_type FROM sys.dm_os_performance_counters WHERE object_name = 'SQLServer:Deprecated Features';
A Microsoft aconselha que o Azure SQL Data Warehouse e o Parallel Data Warehouse retornem uma coluna extra, chamada
pdw_node_id
, então isso é algo a ter em mente também. Exemplo 3 – Preenchimento
As três primeiras colunas usam um tipo de dados de nchar(128) . Isso pode fazer com que muitos espaços em branco sejam preenchidos à direita do texto.
Para eliminar este espaço em branco extra, você pode usar o
RTRIM()
função (ou a função TRIM()
função se preferir) nas três primeiras colunas:SELECT RTRIM(object_name) AS Object, RTRIM(counter_name) AS Counter, RTRIM(instance_name) AS Instance, cntr_value, cntr_type FROM sys.dm_os_performance_counters WHERE object_name = 'SQLServer:Deprecated Features';
Documentação da Microsoft
Aqui estão os links para a documentação relevante no site da Microsoft:
- Documentação para os
sys.dm_os_performance_counters
ver - Para obter uma visão geral dos objetos e contadores que podem ser usados pelo System Monitor para monitorar a atividade em computadores que executam uma instância do SQL Server, consulte Usar objetos do SQL Server.
- Visão geral das visualizações de gerenciamento dinâmico do sistema.
- Recursos do mecanismo de banco de dados obsoletos no SQL Server 2017
- Recursos do mecanismo de banco de dados obsoletos no SQL Server 2016 (idênticos à lista do SQL Server 2017)