Naar de inhoud
CataloomGratis audit aanvragen
Wat het vindt

De elf auditchecks, met naam en toenaam

Deze staan hier compleet omdat het geen geheim is. Je kunt ze zelf schrijven. Wat je koopt is dat ze gebouwd, getest en elke maand gedraaid zijn, en dat er een verificatiestap achter zit.

  1. nondeterministic_update_from

    HOOG

    Een UPDATE ... FROM waarvan de bron niet aantoonbaar één rij per join-sleutel levert. SQL Server pakt er zwijgend een en geeft geen foutmelding.

    Dit is de duurste van de elf. Hij wordt statisch gevonden en daarna live bevestigd met een telquery. Nul conflicten vandaag betekent latent, meer dan nul betekent dat het nu al gebeurt.

  2. orphaned_references

    HOOG

    Views of procedures die verwijzen naar een object dat niet meer bestaat.

    Draait vaak jaren door zonder dat iemand het merkt, tot de tak wordt geraakt die hem echt aanroept.

  3. collation_join_conflict

    HOOG

    Een join tussen kolommen met verschillende collation.

    Levert een runtimefout of een impliciete conversie die het queryplan onderuit haalt. Dezelfde klasse als een nvarchar(max)-join-sleutel.

  4. mixed_collations

    INFO

    Kolommen met een andere collation dan de database-default.

    De aanloop naar het vorige punt, voordat het een fout wordt.

  5. trigger_cross_table_write

    HOOG

    Een trigger die naar een andere tabel schrijft dan die waar hij op zit.

    Onzichtbare zijeffecten. Je leest de procedure, je snapt hem, en er gebeurt toch iets anders.

  6. disabled_triggers

    INFO

    Triggers die bestaan maar uitgeschakeld zijn.

    Meestal ooit tijdelijk uitgezet. De vraag is of iemand nog weet waarom.

  7. triggers_present

    INFO

    Welke tabellen überhaupt triggers hebben.

    Niet fout, wel iets wat je wilt weten voordat je een laadproces aanpast.

  8. stale_objects

    HOOG

    Cruft op naampatroon plus leeftijd: _BAK, _Backup<datum>, _temp, _dd<datum>.

    Dit is de check die zes vergeten tabellen vond in een warehouse dat als goed onderhouden gold, waaronder een snapshot uit november 2024 die er veertien maanden later nog stond.

  9. dead_indexes

    INFO

    Indexen die wel onderhouden worden maar nooit gelezen.

    Kosten schrijftijd bij elke laadrun en leveren niets op.

  10. never_read_tables

    INFO

    Tabellen waar sinds de laatste herstart niets uit gelezen is.

    Met de Power BI-laag erbij wordt dit hard: geen enkele query en geen enkel rapport.

  11. tables_without_primary_key

    INFO

    Tabellen zonder primaire sleutel, met de stagingtabellen eruit gefilterd.

    Die filtering is de moeilijkste van de elf. Een vals positief kost een echte bevinding uit de betaalde laag, dus de exclusie is bewust voorzichtig.

En acht refactor-checks

Daarnaast zoekt Cataloom acht T-SQL anti-patronen op, rangschikt ze op de echte kosten uit de plancache of Query Store, en laat het model een herschrijving voorstellen. Die herschrijving wordt daarna read-only nagerekend: beide versies draaien, de resultaatsets worden vergeleken, en wat niet te controleren valt krijgt het label sandbox nodig in plaats van een gok.

Waarom die verificatie er is

Op een productiewarehouse leverde een voorgestelde herschrijving 2.699 rijen waar het origineel er 2.848 gaf. Bij review zag die herschrijving er correct uit. Alleen door beide te draaien en te tellen kwam het verschil boven water, en met een stabiele baseline eronder zodat het aantoonbaar geen ruis was.