Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

Как да изброите остарелите функции в екземпляр на SQL сървър с помощта на T-SQL

В SQL Server можете да използвате sys.dm_os_performance_counters изглед за динамично управление на системата, за да върне списък с функциите, определени като отхвърлени в текущия екземпляр на SQL Server.

За да върнете само остарелите функции, филтрирайте изгледа само до обекта SQLServer:Deprecated Features.

Изгледът включва също брояч, който изброява колко пъти е била срещана всяка отхвърлена функция от последното стартиране на SQL Server. Това може да бъде полезно за установяване дали приложението ви все още използва оттеглени функции.

Изпълнението на това на SQL Server изисква VIEW SERVER STATE разрешение.

Пример 1 – Основна употреба

SELECT *FROM sys.dm_os_performance_counters WHERE object_name ='SQLServer:Остаряли функции';

Когато го стартирам на моя екземпляр на SQL Server 2019, получавам 254 реда, така че няма да ги изброявам тук. В моя екземпляр на SQL Server 2017 получавам 253 реда.

Ако стесня резултатите само до два конкретни реда, може да получа нещо подобно:

SELECT *FROM sys.dm_os_performance_counters WHERE object_name ='SQLServer:Остаряли функции'И instance_name КАТО '%timestamp%';

Резултат:

+------------------------------+-------------- --+-----------------------------------+---------- ----+------------+| име_обект | име на брояч | име_на_екземпляр | cntr_value | cntr_type ||------------------------------+-------------- -+-----------------------------------+----------- ---+------------|| SQLServer:Оттеглени функции | Използване | INSERT NULL в колони TIMESTAMP | 0 | 65792 || SQLServer:Оттеглени функции | Използване | TIMESTAMP | 1 | 65792 |+-------------------------------+-------------- -+-----------------------------------+----------- ---+------------+

Уебсайтът на Microsoft има пълен списък с оттеглени функции на двигателя за бази данни в SQL Server 2017, заедно с препоръчани действия, които трябва да предприемете за всяка функция, маркирана за оттегляне. Списъкът е същият като този за SQL Server 2016.

Пример 2 – Използване на изгледа чрез приложение

Ако използвате sys.dm_os_performance_counters преглед в приложение, трябва да избягвате използването на заместващия знак на звездичка (* ), за да върне всички колони от изгледи и функции за динамично управление на системата (както е препоръчано от Microsoft). В такива случаи, ако искате да върнете всички колони, по-добре е да включите всяко име на колона в заявката.

Следователно бихме могли да променим предишния пример на следното:

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

Microsoft съветва Azure SQL Data Warehouse и Parallel Data Warehouse да връщат допълнителна колона, наречена pdw_node_id , така че това също трябва да имате предвид.

Пример 3 – Допълване

Първите три колони използват тип данни nchar(128) . Това може да доведе до подпълване на много празно пространство отдясно на текста.

За да премахнете това допълнително празно пространство, можете да използвате RTRIM() функция (или TRIM() функция, ако предпочитате) в първите три колони:

SELECT RTRIM(ime_object) AS обект, RTRIM(counter_name) AS Counter, RTRIM(instance_name) AS екземпляр, cntr_value, cntr_typeFROM sys.dm_os_performance_counters WHERE object_name ='SQLServer:Deprecated Features';Документация на Microsoft 

Ето връзки към съответната документация на уебсайта на Microsoft:

  • Документация за sys.dm_os_performance_counters преглед
  • За общ преглед на обектите и броячите, които могат да се използват от System Monitor за наблюдение на активността в компютри, работещи с екземпляр на SQL Server, вижте Използване на обекти на SQL Server.
  • Общ преглед на изгледите за динамично управление на системата.
  • Оттеглените функции на Database Engine в SQL Server 2017
  • Оттеглените функции на Database Engine в SQL Server 2016 (идентично на списъка на 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. SQL Server 2008:как да дам привилегии на потребителско име?

  2. Как CAST() работи в SQL Server

  3. Какво е @@SERVICENAME в SQL Server?

  4. Как мога да се свържа със Sql сървър от Mac с PHP PDO?

  5. INT срещу уникален идентификатор за полето ID в базата данни