Bagikan melalui


Gambaran umum ekstensibilitas aturan analisis kode

Laporan aturan analisis kode yang disediakan tentang desain, penamaan, dan peringatan performa Transact-SQL dalam kode database Anda. Jika aturan analisis kode bawaan tidak menyertakan cakupan untuk masalah T-SQL tertentu atau antipattern yang ingin Anda deteksi secara otomatis, Anda dapat membuat aturan analisis kode database kustom.

Misalnya, Anda mungkin ingin membuat aturan kustom yang menghindari penggunaan pernyataan PENUNDAAN WAITFOR, seperti yang ditunjukkan dalam Penulis aturan analisis kode kustom. Untuk membuat aturan analisis kode database kustom, Anda menggunakan kelas di namespace CodeAnalysis .

Gambaran umum ini mencakup arsitektur dasar di antara berbagai komponen aturan analisis kode database.

Komponen aturan analisis kode database

Diagram berikut mengilustrasikan bagaimana komponen aturan analisis kode database diproses:

Cuplikan layar alur pemrosesan analisis kode database.

Saat Anda menggunakan fitur aturan analisis kode database, semua aturan dimuat dan digunakan sesuai dengan cara Anda mengonfigurasinya dalam proyek Anda. Untuk informasi selengkapnya, lihat Cara: Mengaktifkan dan Menonaktifkan Aturan Tertentu untuk Analisis Statis Kode Database. Pengelola Ekstensi juga memuat rakitan aturan kustom apa pun yang Anda buat dan daftarkan.

Kelas aturan analisis kode kustom mewarisi dari SqlCodeAnalysisRule. Kelas aturan kustom dapat mengakses objek yang berguna melalui konteks eksekusi aturannya. Objek-objek ini meliputi:

  • Metadata tentang aturan itu sendiri.
  • yang Dac.Model.TSqlModel mewakili skema database, termasuk semua elemen model, hubungan antara ini dan properti elemen apa pun.
  • Untuk aturan yang memeriksa elemen Dac.Model.TSqlObject tertentu, mewakili elemen skema tersebut dalam model disertakan dalam konteks.
  • Banyak objek skema juga memiliki representasi ScriptDom , yang dapat diakses melalui konteks ini. Ini adalah representasi berbasis AST dari elemen yang dapat berguna saat mencoba melihat potensi masalah sintaks seperti kehadiran SelectStarExpression.

Untuk masalah apa pun yang Dac.CodeAnalysis.SqlRuleProblem ditemukan oleh aturan, objek dibuat. Saat membuat objek iniSqlRuleProblem, elemen representasi ScriptDom yang relevan Dac.Model.TSqlObject dan mungkin diteruskan ke konstruktor, dan ini digunakan untuk menentukan lokasi masalah dalam file kode sumber Anda. Di akhir analisis, semua masalah ini diteruskan ke Manajer Kesalahan dan ditampilkan di Daftar Kesalahan.

Menggabungkan aturan kustom dalam proyek SQL

Dengan proyek SQL gaya Microsoft.Build.Sql SDK, Anda menyertakan aturan analisis kode kustom dalam proyek dengan menambahkan referensi paket yang berisi aturan.