I've been commissioned to work on foreign keys. More specifically, on the problem that when foreign keys are verified, they sometimes obtain locks that are stronger than really needed. This causes some operations to block unnecessarily and, perhaps more aggravating, some other operations to deadlock.
This problem has been known for a very long time, and it affects many users to varying degrees. The most recent detailed discussion about this …