Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

Jak wyświetlić listę przestarzałych funkcji w wystąpieniu programu SQL Server za pomocą T-SQL

W SQL Server możesz użyć sys.dm_os_performance_counters widok dynamicznego zarządzania systemem, aby zwrócić listę funkcji oznaczonych jako przestarzałe w bieżącej instancji SQL Server.

Aby zwrócić tylko przestarzałe funkcje, przefiltruj widok tylko do obiektu SQLServer:Deprecated Features.

Widok zawiera również licznik, który wyświetla liczbę przypadków napotkania każdej przestarzałej funkcji od czasu ostatniego uruchomienia programu SQL Server. Może to być pomocne w ustaleniu, czy Twoja aplikacja nadal korzysta z przestarzałych funkcji.

Uruchomienie tego na SQL Server wymaga VIEW SERVER STATE pozwolenie.

Przykład 1 – Podstawowe użycie

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

Kiedy uruchamiam to na mojej instancji SQL Server 2019, otrzymuję 254 wiersze, więc nie będę ich tutaj wymieniać. Na mojej instancji SQL Server 2017 otrzymuję 253 wiersze.

Jeśli zawęź wyniki do dwóch konkretnych wierszy, mogę otrzymać coś takiego:

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

Wynik:

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

Witryna firmy Microsoft zawiera pełną listę przestarzałych funkcji silnika bazy danych w programie SQL Server 2017 wraz z zalecanymi działaniami, które należy podjąć w przypadku dowolnej funkcji oznaczonej jako przestarzała. Lista jest taka sama jak w przypadku SQL Server 2016.

Przykład 2 – Korzystanie z widoku za pośrednictwem aplikacji

Jeśli używasz sys.dm_os_performance_counters widoku w aplikacji, należy unikać używania symbolu wieloznacznego gwiazdki (* ), aby zwrócić wszystkie kolumny z widoków i funkcji dynamicznego zarządzania systemem (zgodnie z zaleceniami firmy Microsoft). W takich przypadkach, jeśli chcesz zwrócić wszystkie kolumny, lepiej podać nazwę każdej kolumny w zapytaniu.

Dlatego możemy zmienić poprzedni przykład na następujący:

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

Firma Microsoft zaleca, aby usługi Azure SQL Data Warehouse i Parallel Data Warehouse zwracały dodatkową kolumnę o nazwie pdw_node_id , więc o tym też należy pamiętać.

Przykład 3 – Wypełnienie

Pierwsze trzy kolumny używają typu danych nchar(128) . Może to spowodować dopełnienie dużej ilości białych znaków po prawej stronie tekstu.

Aby wyeliminować tę dodatkową spację, możesz użyć RTRIM() funkcja (lub TRIM() funkcja, jeśli wolisz) w pierwszych trzech kolumnach:

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

Dokumentacja Microsoft

Oto linki do odpowiedniej dokumentacji w witrynie Microsoft:

  • Dokumentacja dla sys.dm_os_performance_counters zobacz
  • Omówienie obiektów i liczników, które mogą być używane przez Monitor systemu do monitorowania aktywności na komputerach z instancją SQL Server, zobacz Użyj obiektów SQL Server.
  • Przegląd widoków dynamicznego zarządzania systemem.
  • Przestarzałe funkcje aparatu bazy danych w SQL Server 2017
  • Przestarzałe funkcje aparatu bazy danych w SQL Server 2016 (identyczne z listą SQL Server 2017)

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Ukryte funkcje SQL Server

  2. Zabawne tweety o życiu DBA

  3. Zachowanie ORDER BY w SELECT INTO

  4. @@ROWCOUNT — Uzyskaj liczbę wierszy, których dotyczy ostatnia instrukcja w SQL Server

  5. Różnica między odczytem zatwierdzonym a odczytem powtarzalnym