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.