• you now have a composite PK, which isn't ideal, and joining to facts will always require 2 fields in the join clause.

    the PK is now bigint + datetime, which is 8+8 bytes, double the amount of space than just a PK on the bigint alone.

    you are building 'intelligence' into your PK - this should never be. your PK should be 'dumb', with no business value / logic.

    i suggest you drop this SK field, use your PK as autoincrement and make it the SK, which joins to your FK in your fact table.