Sqlserver
 sql >> Teknologi Basis Data >  >> RDS >> Sqlserver

Cara Tercepat untuk Menemukan Fitur Usang yang Masih Digunakan di Instance SQL Server (Contoh T-SQL)

Di SQL Server, sys.dm_os_performance_counters tampilan manajemen dinamis sistem mengembalikan penghitung kinerja yang dikelola oleh server.

Salah satu dari banyak hal yang dapat Anda lakukan dengan sys.dm_os_performance_counters adalah mengembalikan daftar fitur yang tidak digunakan lagi dalam contoh SQL Server saat ini. Anda juga dapat menggunakan daftar ini untuk melihat berapa kali fitur usang telah digunakan sejak SQL Server dimulai.

Ini mungkin cara tercepat untuk mengetahui apakah Anda menggunakan fitur yang tidak digunakan lagi di SQL Server.

Tampilan mengembalikan baris per penghitung kinerja yang dikelola oleh server. Objek SQLServer:Deprecated Features menyediakan penghitung untuk memantau fitur yang ditetapkan sebagai usang. Ia memiliki cntr_value kolom, yang menyediakan hitungan penggunaan yang mencantumkan berapa kali fitur usang ditemukan sejak SQL Server terakhir kali dimulai.

Oleh karena itu, dengan menjalankan kueri terhadap tampilan ini, kami dapat mengembalikan semua fitur yang tidak digunakan lagi beserta hitungan berapa kali setiap fitur ditemukan sejak SQL Server terakhir kali dimulai.

Contoh 1 – Mengembalikan semua Fitur Usang yang Ditemukan Sejak SQL Server Startup

Oleh karena itu, kami dapat menggunakan kueri berikut untuk menemukan semua fitur usang yang ditemukan sejak SQL Server terakhir kali dimulai, bersama dengan berapa kali setiap item ditemukan:

SELECT
  RTRIM(instance_name) 'Feature', 
  cntr_value 'Usage Count'
FROM sys.dm_os_performance_counters   
WHERE object_name = 'SQLServer:Deprecated Features'
AND cntr_value > 0;

Hasil:

+-----------------------------------+---------------+
| Feature                           | Usage Count   |
|-----------------------------------+---------------|
| String literals as column aliases | 1             |
| TIMESTAMP                         | 1             |
| numbered_procedures               | 1             |
| sysdatabases                      | 3             |
| sp_db_vardecimal_storage_format   | 1             |
| XP_API                            | 2             |
+-----------------------------------+---------------+

Di sini saya menggunakan RTRIM() fungsi (Anda juga bisa menggunakan TRIM() ) untuk memangkas ruang putih di sebelah kanan fitur. Saya melakukan ini karena instance_name kolom menggunakan nchar(128) tipe data, yang menyebabkan kolom diisi hingga 128 karakter. Dengan memangkas spasi, contoh sekarang dapat masuk ke halaman web tanpa memerlukan pengguliran horizontal.

Contoh 2 – Mengembalikan Fitur berdasarkan Nama

Jika Anda memiliki fitur tertentu yang Anda minati, Anda selalu dapat mencarinya berdasarkan nama:

SELECT 
  TRIM(instance_name) 'Feature', 
  cntr_value 'Usage Count'
FROM sys.dm_os_performance_counters   
WHERE object_name = 'SQLServer:Deprecated Features'
AND instance_name LIKE '%timestamp%';

Hasil:

+------------------------------------+---------------+
| Feature                            | Usage Count   |
|------------------------------------+---------------|
| INSERT NULL into TIMESTAMP columns | 0             |
| TIMESTAMP                          | 1             |
+------------------------------------+---------------+

Detail Lebih Lanjut tentang Setiap Fitur yang Tidak Digunakan Lagi

Metode di atas adalah cara cepat yang bagus untuk melihat apakah fitur usang masih digunakan dalam aplikasi Anda. Satu kelemahannya adalah ia tidak memberikan banyak informasi tentang apa yang harus dilakukan, atau bahkan pernyataan SQL mana yang menyertakan fitur usang, apalagi pengguna mana yang menjalankannya.

Anda dapat menggunakan sesi acara yang diperpanjang untuk mengembalikan lebih banyak informasi, seperti pernyataan SQL yang menyinggung, pengguna yang menjalankannya, waktu dijalankan, dan banyak lagi. Anda bahkan dapat menangkap semuanya dalam file log sehingga Anda dapat merujuknya nanti. Lihat Menggunakan Peristiwa yang Diperpanjang untuk Mencatat Fitur yang Tidak Digunakan Lagi di Instance SQL Server sebagai contoh.

Lihat juga artikel Microsoft Deprecated Database Engine Features di SQL Server 2017 untuk rekomendasi tentang cara menangani setiap item yang tidak digunakan lagi. Daftar itu sama persis dengan daftar untuk SQL Server 2016.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Di kolom apa indeks berkerumun harus diletakkan?

  2. Bagaimana cara memperluas nilai yang dipisahkan koma menjadi baris terpisah menggunakan SQL Server 2005?

  3. Contoh kehidupan nyata, kapan harus menggunakan OUTER / CROSS APPLY dalam SQL

  4. Cara sederhana untuk mengubah urutan kolom dan baris dalam SQL?

  5. Menggunakan kolom urutan pengurutan dalam tabel database