I've not done the research, but given that you most likely have an indexI won't argue the technical details of the concept. I can only offer the empirical results: a non-unique keyed physical file takes approximately 15% the time that a unique keyed physical takes to insert a row.
on this non-unique key anyway, wouldn't the added overhead for unique be
trivial. You're already maintaining the index, all you're adding is a
statement that says "if there's already a row in this index with this
key, throw". You had to find the right point in the index to insert the
non-unique key, so the page is already in memory.