Sdílet prostřednictvím


Přehled rozšiřitelnosti pravidel analýzy kódu

Pravidla analýzy kódu informují o návrhu, pojmenování a upozornění na výkon ve vašem databázovém kódu Transact-SQL. Pokud předdefinovaná pravidla analýzy kódu nezahrnují pokrytí konkrétního problému T-SQL nebo antipatternu, který chcete automaticky rozpoznat, můžete vytvořit vlastní pravidla analýzy kódu databáze.

Můžete například vytvořit vlastní pravidlo, které se vyhne použití příkazu WAITFOR DELAY, jak je znázorněno v Autor vlastních pravidel analýzy kódu. Chcete-li vytvořit vlastní pravidla analýzy kódu databáze, použijte třídy v oboru názvů CodeAnalysis.

Tento přehled popisuje základní architekturu mezi různými komponentami pravidel analýzy kódu databáze.

Komponenty pravidel analýzy kódu databáze

Následující diagram znázorňuje zpracování komponent pravidel analýzy kódu databáze:

snímek obrazovky s tokem zpracování analýzy kódu databáze

Při použití funkce pravidel analýzy kódu databáze se všechna pravidla načtou a použijí se podle toho, jak jste je nakonfigurovali v projektu. Další informace naleznete v tématu Postupy: Povolení a zakázání konkrétních pravidel pro statickou analýzu databázového kódu. Správce rozšíření také načte všechna sestavení vlastních pravidel, která jste vytvořili a zaregistrovali.

Vlastní třída pravidla analýzy kódu dědí z SqlCodeAnalysisRule. Třída vlastního pravidla má přístup k užitečným objektům prostřednictvím kontextu provádění pravidla. Mezi tyto objekty patří:

  • Metadata o samotném pravidlu.
  • Dac.Model.TSqlModel představující schéma databáze, včetně všech prvků modelu, vztahů mezi nimi a všemi vlastnostmi prvků.
  • Pro pravidla, která prověřují konkrétní prvky, Dac.Model.TSqlObject představující prvek schématu v modelu je zahrnut v kontextu.
  • Mnoho objektů schématu má také ScriptDom reprezentaci, ke které lze přistupovat prostřednictvím tohoto kontextu. Jedná se o reprezentaci prvku založeného na AST, který může být užitečný při pokusu o zobrazení potenciálních problémů se syntaxí, jako je přítomnost SelectStarExpression.

V případě jakýchkoli problémů zjištěných pravidlem se vytvoří objekt Dac.CodeAnalysis.SqlRuleProblem. Při vytváření tohoto SqlRuleProblem objektu se příslušné Dac.Model.TSqlObject a případně ScriptDom element reprezentace předávají do konstruktoru a slouží k určení umístění problému v souborech zdrojového kódu. Na konci analýzy se všechny tyto problémy předají Správci chyb a zobrazí se v seznamu chyb.

Začlenění vlastních pravidel do projektu SQL

S projekty SQL ve stylu sady Microsoft.Build.Sql SDK zahrnete do projektu vlastní pravidla analýzy kódu přidáním odkazu na balíček, který obsahuje pravidla. Následující příklad ukazuje odkaz na balíček vlastního pravidla analýzy kódu.

<ItemGroup>
  <PackageReference Include="Your.CustomCode.AnalysisRules" Version="1.2.3" />
</ItemGroup>

Zjistěte více o referencích balíčku pravidel analýzy kódu v projektu SQL v referencích balíčků .