По моему опыту, UUID, разбитый на два целых числа, все равно будет более эффективным, чем использование поля char. Однако разные БД реагируют по-разному. Сличение может иметь значение и там. При этом, как правило, во всех приложениях производительность гораздо больше "грешит", и я не думаю, что для многих приложений это было бы важным фактором. Вы должны будете судить себя исходя из того, насколько занятой станет эта часть вашего приложения? Вам нужен абсолютно быстрый запрос, возможно, по UUID? Разве 600 нс против 400 нс - большая разница для вас?
Если будет много ручного sql doen с db, то при наличии ключа, содержащего UUID из отдельных полей, воняет, когда вам нужно сделать вставку, и для него нет значения по умолчанию для db. Это также проблема с символами.
Если у вас есть уровень абстракции базы данных, то объединение нескольких полей таблицы для получения вашего UUID не должно быть большой проблемой.