In SQL Server puoi usare sys.dm_os_performance_counters
visualizzazione a gestione dinamica del sistema per restituire un elenco delle funzionalità designate come deprecate nell'istanza corrente di SQL Server.
Per restituire solo le funzionalità deprecate, filtra la visualizzazione solo sull'oggetto SQLServer:Deprecated Features.
La visualizzazione include anche un contatore che elenca il numero di volte in cui ogni funzionalità deprecata è stata rilevata dall'ultimo avvio di SQL Server. Questo può essere utile per identificare se la tua applicazione sta ancora utilizzando funzionalità obsolete.
L'esecuzione su SQL Server richiede VIEW SERVER STATE
permesso.
Esempio 1 – Utilizzo di base
SELECT * FROM sys.dm_os_performance_counters WHERE object_name = 'SQLServer:Deprecated Features';
Quando lo eseguo sulla mia istanza di SQL Server 2019, ottengo 254 righe, quindi non le elencherò qui. Nella mia istanza di SQL Server 2017, ottengo 253 righe.
Se restringo i risultati a due sole righe specifiche, potrei ottenere qualcosa del genere:
SELECT * FROM sys.dm_os_performance_counters WHERE object_name = 'SQLServer:Deprecated Features' AND instance_name LIKE '%timestamp%';
Risultato:
+-------------------------------+----------------+------------------------------------+--------------+-------------+ | 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 | +-------------------------------+----------------+------------------------------------+--------------+-------------+
Il sito Web Microsoft contiene un elenco completo delle funzionalità del motore di database obsolete in SQL Server 2017, insieme alle azioni consigliate da intraprendere per qualsiasi funzionalità contrassegnata per la deprecazione. L'elenco è lo stesso di SQL Server 2016.
Esempio 2:utilizzo della vista tramite un'applicazione
Se stai utilizzando sys.dm_os_performance_counters
vista in un'applicazione, dovresti evitare di utilizzare il carattere jolly asterisco (*
) per restituire tutte le colonne dalle viste e dalle funzioni di gestione dinamica del sistema (come consigliato da Microsoft). In questi casi, se vuoi restituire tutte le colonne, è meglio includere ogni nome di colonna all'interno della query.
Pertanto, potremmo modificare l'esempio precedente nel seguente:
SELECT object_name, counter_name, instance_name, cntr_value, cntr_type FROM sys.dm_os_performance_counters WHERE object_name = 'SQLServer:Deprecated Features';
Microsoft consiglia che Azure SQL Data Warehouse e Parallel Data Warehouse restituiscano una colonna aggiuntiva, denominata pdw_node_id
, quindi è qualcosa da tenere a mente.
Esempio 3:riempimento
Le prime tre colonne utilizzano un tipo di dati nchar(128) . Ciò potrebbe causare il riempimento di molti spazi bianchi a destra del testo.
Per eliminare questo spazio extra, puoi usare RTRIM()
funzione (o il TRIM()
funzione se preferisci) sulle prime tre colonne:
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';
Documentazione Microsoft
Di seguito sono riportati i collegamenti alla documentazione pertinente sul sito Web Microsoft:
- Documentazione per
sys.dm_os_performance_counters
visualizza - Per una panoramica degli oggetti e dei contatori che possono essere utilizzati da Monitor di sistema per monitorare l'attività nei computer che eseguono un'istanza di SQL Server, vedere Utilizzare gli oggetti di SQL Server.
- Panoramica delle viste di gestione dinamica del sistema.
- Funzionalità di Motore di database obsolete in SQL Server 2017
- Funzionalità di Motore di database obsolete in SQL Server 2016 (identiche all'elenco di SQL Server 2017)