sql >> Database teknologi >  >> RDS >> Sqlserver

Sådan viser du de forældede funktioner i en SQL Server-instans ved hjælp af T-SQL

I SQL Server kan du bruge sys.dm_os_performance_counters system dynamisk administrationsvisning for at returnere en liste over de funktioner, der er udpeget som forældede i den aktuelle forekomst af SQL Server.

For kun at returnere de forældede funktioner skal du filtrere visningen til kun SQLServer:Deprecated Features-objektet.

Visningen indeholder også en tæller, der viser antallet af gange, hver forældet funktion er stødt på, siden SQL Server sidst startede. Dette kan være nyttigt til at identificere, om din applikation stadig bruger nogen forældede funktioner eller ej.

At køre dette på SQL Server kræver VIEW SERVER STATE tilladelse.

Eksempel 1 – Grundlæggende brug

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

Når jeg kører det på min SQL Server 2019-instans, får jeg 254 rækker, så jeg vil ikke liste dem her. På min SQL Server 2017-instans får jeg 253 rækker.

Hvis jeg indsnævrer resultaterne til kun to specifikke rækker, kan jeg få noget som dette:

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

Resultat:

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

Microsofts websted har en komplet liste over forældede databasemotorfunktioner i SQL Server 2017, sammen med anbefalede handlinger, du bør tage for enhver funktion, der er markeret til udfasning. Listen er den samme som for SQL Server 2016.

Eksempel 2 – Brug af visningen via en applikation

Hvis du bruger sys.dm_os_performance_counters visning i et program, bør du undgå at bruge jokertegnet for stjerne (* ) for at returnere alle kolonner fra systemets dynamiske administrationsvisninger og -funktioner (som anbefalet af Microsoft). I sådanne tilfælde, hvis du ønsker at returnere alle kolonner, er det bedre at inkludere hvert kolonnenavn i forespørgslen.

Derfor kunne vi ændre det foregående eksempel til følgende:

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

Microsoft anbefaler, at Azure SQL Data Warehouse og Parallel Data Warehouse returnerer en ekstra kolonne kaldet pdw_node_id , så det er også noget at huske på.

Eksempel 3 – Padding

De første tre kolonner bruger datatypen nchar(128) . Dette kan medføre, at en masse mellemrum udfyldes til højre for teksten.

For at fjerne dette ekstra mellemrum, kan du bruge RTRIM() funktionen (eller TRIM() funktion, hvis du foretrækker det) på de første tre kolonner:

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

Microsoft-dokumentation

Her er links til relevant dokumentation på Microsofts websted:

  • Dokumentation for sys.dm_os_performance_counters se
  • For en oversigt over de objekter og tællere, der kan bruges af System Monitor til at overvåge aktivitet på computere, der kører en forekomst af SQL Server, se Brug SQL Server-objekter.
  • Oversigt over System Dynamic Management Views.
  • Forældede databasemotorfunktioner i SQL Server 2017
  • Forældede databasemotorfunktioner i SQL Server 2016 (identisk med SQL Server 2017-listen)

  1. JDBC-forbindelses standard autoCommit-adfærd

  2. Sådan udskiftes en del af en streng i SQL

  3. skråstreg før hvert citatproblem

  4. Eksporter SQLite-database til en CSV-fil