sql >> Databáze >  >> RDS >> Sqlserver

Jak vypsat seznam zastaralých funkcí v instanci SQL Server pomocí T-SQL

V SQL Server můžete použít sys.dm_os_performance_counters zobrazení dynamické správy systému, aby se vrátil seznam funkcí označených jako zastaralé v aktuální instanci serveru SQL Server.

Chcete-li vrátit pouze zastaralé funkce, filtrujte zobrazení pouze na objekt SQLServer:Zastaralé funkce.

Zobrazení také obsahuje počítadlo, které uvádí, kolikrát byla každá zastaralá funkce nalezena od posledního spuštění serveru SQL Server. To může být užitečné pro zjištění, zda vaše aplikace stále používá nějaké zastaralé funkce.

Spuštění na SQL Server vyžaduje VIEW SERVER STATE povolení.

Příklad 1 – Základní použití

SELECT *
FROM sys.dm_os_performance_counters   
WHERE object_name = 'SQLServer:Deprecated Features';

Když to spustím na své instanci SQL Server 2019, dostanu 254 řádků, takže je zde nebudu uvádět. Na mé instanci SQL Server 2017 dostávám 253 řádků.

Pokud zúžím výsledky pouze na dva konkrétní řádky, mohl bych získat něco takového:

SELECT *
FROM sys.dm_os_performance_counters   
WHERE object_name = 'SQLServer:Deprecated Features'
AND instance_name LIKE '%timestamp%';

Výsledek:

+-------------------------------+----------------+------------------------------------+--------------+-------------+
| 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       |
+-------------------------------+----------------+------------------------------------+--------------+-------------+

Web společnosti Microsoft obsahuje úplný seznam zastaralých funkcí databázového stroje v SQL Server 2017 spolu s doporučenými akcemi, které byste měli provést u jakékoli funkce označené k ukončení podpory. Seznam je stejný jako pro SQL Server 2016.

Příklad 2 – Použití zobrazení prostřednictvím aplikace

Pokud používáte sys.dm_os_performance_counters zobrazení v aplikaci, neměli byste používat zástupný znak hvězdička (* ) vrátit všechny sloupce ze zobrazení a funkcí dynamické správy systému (jak doporučuje společnost Microsoft). V takových případech, pokud chcete vrátit všechny sloupce, je lepší do dotazu zahrnout název každého sloupce.

Proto bychom mohli změnit předchozí příklad na následující:

SELECT
  object_name, 
  counter_name, 
  instance_name, 
  cntr_value, 
  cntr_type
FROM sys.dm_os_performance_counters   
WHERE object_name = 'SQLServer:Deprecated Features';

Microsoft doporučuje, aby Azure SQL Data Warehouse a Parallel Data Warehouse vracely další sloupec s názvem pdw_node_id , takže je také třeba mít na paměti.

Příklad 3 – Výplň

První tři sloupce používají datový typ nchar(128) . To může způsobit, že se napravo od textu vyplní mnoho mezer.

Chcete-li odstranit tyto mezery navíc, můžete použít RTRIM() funkce (nebo TRIM() funkce, chcete-li) v prvních třech sloupcích:

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';

Dokumentace Microsoft

Zde jsou odkazy na příslušnou dokumentaci na webu společnosti Microsoft:

  • Dokumentace pro sys.dm_os_performance_counters zobrazit
  • Přehled objektů a čítačů, které může nástroj System Monitor použít ke sledování aktivity v počítačích s instancí SQL Server, naleznete v části Použití objektů SQL Server.
  • Přehled zobrazení dynamické správy systému.
  • Zastaralé funkce databázového stroje v SQL Server 2017
  • Zastaralé funkce databázového stroje v SQL Server 2016 (identické se seznamem SQL Server 2017)

  1. MySQL, zřetězit dva sloupce

  2. Škálování PostgreSQL pomocí fondů Connection Poolers a Load Balancers

  3. 2 způsoby, jak přidat znak procenta k číslu v SQLite

  4. Jak nastavit pojmenovaná časová pásma v MariaDB