• Let's assume you can get all that information.

    You have conflicting needs: you don't want to slow down the login process, but you also don't want to store full string descriptions for everything for the entire history

    You could consider a two-level system: the initial logging captures everything with full strings. Then another process periodically pulls that data into a permanent history table, assigning identifiers in place of strings as required. Then the initial log data is deleted.

    This allows you to have a minimal effect on logins but still save space and enhance analysis by assigning codes later.

    SQL DBA,SQL Server MVP(07, 08, 09) A socialist is someone who will give you the shirt off *someone else's* back.